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;
}
展开
 我来答
双丁洋尚15
2012-12-18 · TA获得超过254个赞
知道小有建树答主
回答量:576
采纳率:0%
帮助的人:95.6万
展开全部
你可以先用sql语句查询出数据库的结构,就可以知道那个字段是主键。如果你插入的数据不包含主键,那么主键就是由数据库生成的,比如是自增序列或uuid,这时候需要从数据库中读取出来,你可以用刚才插入的数据作为条件查询,同时选择只取一条记录,当然这种方式也不是很可靠,尤其是高并发下;如果插入数据包含主键,那么返回值就在你插入数据的对应位置。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a11e90
2012-12-19 · 知道合伙人软件行家
a11e90
知道合伙人软件行家
采纳数:473 获赞数:1702
qq交流群:208779755 博客:https://my.oschina.net/haitaohu

向TA提问 私信TA
展开全部
这个看需要 如果在高并发的情况下 你想通过java获取不现实 你想 id是数据库生成的 你java获取 必须有条件去查询吧?看上面有人说最大的id 这安全隐患太大了
所以如果你让id在数据库生成 而不是在java生成 还必须在插入的时候返回 那自己封装个存储过程吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nyoal
2012-12-18
知道答主
回答量:5
采纳率:0%
帮助的人:3.2万
展开全部
这个表的主键是自增的吧,那么在数据库执行插入操作的时候数据库自动为这条记录设置主键的值,这个值可以在你判断插入成功的时候从数据库里读取出来

这个办法肯定是可行的,就是不知道有没有其他效率更高的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f296ad8
2012-12-18 · TA获得超过142个赞
知道小有建树答主
回答量:347
采纳率:0%
帮助的人:149万
展开全部
insert的时候设置主键可以么?用一个全局变量来保存id或者去读取最近的数据id,并且自增
更多追问追答
追问
我是在mainvote 这个表中添加一条数据,并且添加完成后,我想要直接返回刚才添加的那条数据中自动增长的id
追答
你查找表数据,按id降序排列,第一条数据部就是你要的么.?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd9006
2012-12-18 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
参考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.
追问
呵呵
,英文不懂啊,只看得懂代码
追答
sql要是insert语句

int key = statement.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);//
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式