日期:2014-05-18  浏览次数:20617 次

关于数据库的一个小问题
如何获得   insert   后的结果集,因为那个表中有一个自增字段id,我想用它,insert   后再查这种办法觉得不大好,不知道还有没有什么好办法,大家指教一下。另外是不是只有   select   操作才返回结果集呢?

------解决方案--------------------
楼主的意思是说 查询出所刚刚插入的吗?
如果是这样的话在insert之前 先select max自增id+1 此时的数据就是你insert的数据

------解决方案--------------------
获得insert的id就是insert之前max(id)+1。
------解决方案--------------------
在insert 之前用 select max(i) from youtable ,

int curid =Integer.paseInt(rs.getInt(id))+1,

这样curid 就是你想要的结果了
------解决方案--------------------
你一定是用结果集来接收insert 的结果了,所以有那个错误提示“没有结果集产生”

插入后select max(id)
------解决方案--------------------
要结果集的话肯定得查询了 不从数据库查你去哪找啊
------解决方案--------------------
有什么特别操作吗?其实也是想知道最大id而已,从DB里取出就行
按照楼主的说法,可能会有多人同时操作,取出来的id也未必是自己刚才insert进DB里的记录。
^_^

------解决方案--------------------
已经很明了了,
在insert之前,先找出最大id
String maxsql = "SELECT MAX(ID) ID FROM table11 ";
ResultSet rs = stmt.executeQuery(maxsql);
int maxid = 1;

if(rs.next())
maxid = rs.getInt( "ID ")+1;

PreparedStatement pstmt = null;
String strSql = "INSERT INTO table11(ID,xx,yy,zz)VALUES(?,?,?,?) ";
pstmt=conn.prepareStatement(strSql);
pstmt.setInt(1,maxid);
.......