JDBC 事务开始(sqlserver2008)
1.插入主表一条语句
2.查询主表新插入一条语句的主键(Connection 未提交如何查询到?)
3.插入从表一条语句(connection 未提交如何获得外键值?)
事务结束如何解决?先谢谢~!
1.插入主表一条语句
2.查询主表新插入一条语句的主键(Connection 未提交如何查询到?)
3.插入从表一条语句(connection 未提交如何获得外键值?)
事务结束如何解决?先谢谢~!
解决方案 »
- ssh2写了一个修改,往修改的页面传值的时候总是报错,错误在下面
- 好难的关于javascript兼容的问题?使用的struts2提交
- struts2如何用客户端的js验证表单,如何改变错误信息提示的样式?
- 如何getHibernateTemplate().find方法取指定表中的前几条数据?
- 在myeclipse8.5+spring3.0的开发环境中,用jsp页面通过Javabean访问mysql数据库,出现如下错误,如何解决?
- Sql2000的JDBC错误,请帮忙阿
- 关于tomcat+eclipse+struts应用时出的一点问题
- 急切求助!
- (跪谢)-想要最简单的完整程序代码和编写思路(记事本)
- 关于界面风格问题,请进
- oracle导出数据报错。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
- 用hibernate和structs框架做时出现的错误,怎么解决呀
Connection.setAutoCommit(false)
1.插入主表一条语句
2.查询主表新插入一条语句的主键(Connection 未提交如何查询到?)
3.插入从表一条语句(connection 未提交如何获得外键值?)
事务结束
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager
.getConnection("jdbc:mysql://localhost/BBS?user=root&password=root"); //连接数据库
conn.setAutoCommit(false); //不自动提交
String sql = "insert into article values (null,0,?,?,?,now(),0)";
PreparedStatement pstat = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);//创建一个默认 PreparedStatement 对象,该对象能获取自动生成的键,适合insert语句
//(该语句能自动生成键值)autoGeneratedKeys - 指示是否应该返回自动生成的键的标志
Statement stat = conn.createStatement();pstat.setInt(1, -1);
pstat.setString(2,title);
pstat.setString(3,content);
pstat.executeUpdate();ResultSet rsKey = pstat.getGeneratedKeys(); //ResultSet 指示键值
rsKey.next();
int key = rsKey.getInt(1); //得到第一个键值
stat.executeUpdate("update article set rootid = " + key + " where id = " + key);conn.commit();
conn.setAutoCommit(true); //设回自动提交
如果表的主键是自增IDENTITY,可以使用MSSQL的内置函数SCOPE_IDENTITY(),我以前就采用了这种方法,比较简洁,但移植性差。