请教高手,我在用jsp操作数据库插入一条数据到数据库是怎样返回新插入列的主键Id?
解决方案 »
- 请大家给我指点下,本人想做个搜索功能的系统
- 使用pdfbox获取pdf文件内容问题
- 在spring中IOC注入的实例可以使用Object类型去接收吗
- struts if标签test里的值 我想写成或者 怎么写
- 在Myeclipse下,编写的Servlet程序,有错!!头疼~~急~~~
- Tomcat连ORACLE 出现Io 异常: The Network Adapter could not establish the connection
- session中的问题
- 第五代编程语言是什么 有哪些用处
- 这样能实现定时刷新一个类吗?
- 迷失在struts流程中的人,有人能带我出去吗?
- 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() 查一下这个帮助吧。