请教高手,我在用jsp操作数据库插入一条数据到数据库是怎样返回新插入列的主键Id?
解决方案 »
- Exception accessing property uId for bean houseInfo: java.lang.NoSuchMethodException: Unknown proper
- Spring 3和hibernate 3整合的问题
- xfire 调用天气预报webservice exception 。。。。
- Spring里面有没有类似If语句的功能,能让用户更容易的修改配置?
- 怎样使用DispatchAction类调用多个Action方法(本人菜鸟,希望大家多多指教)
- sturts2 + spring2.5+dwr
- Struts的Action的一些属性的具体意思?
- 听君一句话胜读十本java书
- java登录文件系统错误
- WEBSphere和WEBService到底是啥关系??
- java.util.timer每天24点执行一段代码怎么做?
- 创建的boot目录被强制隐藏
PreparedStatement pstmt = DB.prepareStatement(conn, sql,Statement.RETURN_GENERATED_KEYS);
//statment.return_return_generated_keys是使pstmt执行中保存自动生成的字段.
pstmt.setInt(1,0);
pstmt.setInt(2,rootId);
pstmt.setString(3,title);
pstmt.setString(4,content);
pstmt.setInt(5,0);
pstmt.executeUpdate();
ResultSet rs = pstmt.getGeneratedKeys();//得到自动生成的id集;
rs.next();
rootId = rs.getInt(1);
Statement stmt = DB.createStmt(conn);
stmt.executeUpdate("update article set rootid = " + rootId + " where id=" + rootId);
select @@identity
第一种,在插入之前查询出之前最大的ID,然后在插入之后在最开始获取到的ID上加1
第二种,在插入之后再查询出最大的ID
以上两种方法都要求ID是自增的
而忽略了进行变更操作所在的范围约束。SCOPE_IDENTITY() 查一下这个帮助吧。