java操作数据库时添加数据后怎么返回其主键并输出
publicbooleanaddVote(MainVoteDTOmainvotedto){booleanb=false;try{Stringsql="insertinto...
public boolean addVote(MainVoteDTO mainvotedto){ boolean b = false; try { String sql = "insert into mainvote values(null,?,?,?,?,?)"; conn = db.getConn(); ps = conn.prepareStatement(sql); ps.setString(1, mainvotedto.getVotename()); int i = ps.executeUpdate(); if(i>0){ b = true; System.out.println("在管理界面添加投票信息成功!!!"); }else{ b = false;
public boolean addVote(MainVoteDTO mainvotedto){
boolean b = false;
try {
String sql = "insert into mainvote values(null,?,?,?,?,?)";
conn = db.getConn();
ps = conn.prepareStatement(sql);
ps.setString(1, mainvotedto.getVotename());
ps.setString(2, mainvotedto.getVotetype());
ps.setString(3, mainvotedto.getVotegraph());
ps.setString(4, mainvotedto.getVoteactivatestate());
ps.setString(5, mainvotedto.getVoteparticularmessage());
int i = ps.executeUpdate();
if(i>0){
b = true;
System.out.println("在管理界面添加投票信息成功!!!");
}else{
b = false;
System.out.println("在管理界面添加投票信息失败!!!");
}
} catch (Exception e) {
e.printStackTrace();
}finally{
db.closeAll(conn, ps, rs);
}
return b;
} 展开
public boolean addVote(MainVoteDTO mainvotedto){
boolean b = false;
try {
String sql = "insert into mainvote values(null,?,?,?,?,?)";
conn = db.getConn();
ps = conn.prepareStatement(sql);
ps.setString(1, mainvotedto.getVotename());
ps.setString(2, mainvotedto.getVotetype());
ps.setString(3, mainvotedto.getVotegraph());
ps.setString(4, mainvotedto.getVoteactivatestate());
ps.setString(5, mainvotedto.getVoteparticularmessage());
int i = ps.executeUpdate();
if(i>0){
b = true;
System.out.println("在管理界面添加投票信息成功!!!");
}else{
b = false;
System.out.println("在管理界面添加投票信息失败!!!");
}
} catch (Exception e) {
e.printStackTrace();
}finally{
db.closeAll(conn, ps, rs);
}
return b;
} 展开
5个回答
展开全部
你可以先用sql语句查询出数据库的结构,就可以知道那个字段是主键。如果你插入的数据不包含主键,那么主键就是由数据库生成的,比如是自增序列或uuid,这时候需要从数据库中读取出来,你可以用刚才插入的数据作为条件查询,同时选择只取一条记录,当然这种方式也不是很可靠,尤其是高并发下;如果插入数据包含主键,那么返回值就在你插入数据的对应位置。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-12-19 · 知道合伙人软件行家
关注
展开全部
这个看需要 如果在高并发的情况下 你想通过java获取不现实 你想 id是数据库生成的 你java获取 必须有条件去查询吧?看上面有人说最大的id 这安全隐患太大了
所以如果你让id在数据库生成 而不是在java生成 还必须在插入的时候返回 那自己封装个存储过程吧
所以如果你让id在数据库生成 而不是在java生成 还必须在插入的时候返回 那自己封装个存储过程吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个表的主键是自增的吧,那么在数据库执行插入操作的时候数据库自动为这条记录设置主键的值,这个值可以在你判断插入成功的时候从数据库里读取出来
这个办法肯定是可行的,就是不知道有没有其他效率更高的方法
这个办法肯定是可行的,就是不知道有没有其他效率更高的方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
insert的时候设置主键可以么?用一个全局变量来保存id或者去读取最近的数据id,并且自增
更多追问追答
追问
我是在mainvote 这个表中添加一条数据,并且添加完成后,我想要直接返回刚才添加的那条数据中自动增长的id
追答
你查找表数据,按id降序排列,第一条数据部就是你要的么.?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参考JAVA 的API
Interface java.sql.Statement
int executeUpdate(String sql, int autoGeneratedKeys)
Executes the given SQL statement and signals the driver with the
given flag about whether the
auto-generated keys produced by this Statement object
should be made available for retrieval.
Interface java.sql.Statement
int executeUpdate(String sql, int autoGeneratedKeys)
Executes the given SQL statement and signals the driver with the
given flag about whether the
auto-generated keys produced by this Statement object
should be made available for retrieval.
追问
呵呵
,英文不懂啊,只看得懂代码
追答
sql要是insert语句
int key = statement.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);//
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询