JDBC的事务。
来源:互联网 发布:美好的诗句 知乎 编辑:程序博客网 时间:2024/05/16 16:08
package cn.hikcn.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.PreparedStatement;/** * 关于JDBC的事务 * 1、JDBC默认情况下,在没有设置事务的前提下,事务采用的是默认自动提交,这种方式显然不符合现实的业务逻辑。 * 2、什么是自动提交?怎么理解这个自动提交? * 在JDBC中只要执行一条DML语句就提交一次。 * 3、怎么避免自动提交,怎么改成手动提交? * 显然在现实业务逻辑中,一个万众的事务是需要多条DML语句共同联合完成的。 * 需要将自动提交机制关闭,修改成手动提交。conn.setAutoCommit(false); * 当一个事务真正结束时候,手动提交。 conn.commit(); * 4、什么时候回滚? * 若执行过程中任何一步出现异常,应当回滚。conn.rollback(); */public class JdbcTest2 { public static void main(String[] args) { Connection conn = null; PreparedStatement ps = null; try{ //1、注册驱动 Class.forName("com.mysql.jdbc.Driver"); //2、获取连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3366/study", "root", "1234"); //开启事务 //关闭自动提交机制 conn.setAutoCommit(false);//不再支持自动提交 //3、获取预编译的数据库操作对象 String sql = "insert into info(username,password) values(?,?)"; ps = conn.prepareStatement(sql); //给问号赋值 ps.setString(1, "zhangsan"); ps.setString(2, "12345"); //4、执行sql语句【DML:insert update delete 】 int count = ps.executeUpdate(); //在给问号赋值 ps.setString(1, "zhangsan"); ps.setString(2, "12345"); count += ps.executeUpdate(); System.out.println(count); //事务若执行到此处,表示执行完成,应当手动提交 conn.commit(); }catch(Exception e){ //若在以上事务执行过程中发生异常,则回滚。 if(conn != null){ try { conn.rollback(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } e.printStackTrace(); }finally{ //6、释放资源 if(ps != null){ try { ps.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(conn != null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }}
0 0
- JDBC:JDBC的事务支持
- JDBC事务的例子
- JDBC的事务
- JDBC的事务收藏
- JDBC事务的定义
- 数据库的事务JDBC
- JDBC的事务控制
- JDBC的事务控制
- JDBC的事务控制
- JDBC的事务
- JDBC的事务
- JDBC事务的实现
- JDBC的事务
- JDBC的事务控制
- Java的JDBC事务
- JDBC 事务的隔离
- JDBC事务的管理
- JDBC的事务。
- 安装Mysql(rpm包安装)
- JAVA集合遍历
- 一次调用,两次返回--fork函数学习总结
- object c 数据持久化的方式
- 常用 Git 命令清单
- JDBC的事务。
- 链式队列
- 文章标题
- uva 539 The Settlers of Catan
- 43. Multiply Strings 大数
- 11多米诺骨牌(1)
- MONSTER童话系列——沒有名字的怪物
- java趣味编程100例第一章1-1打印金字塔图案
- 排序算法之冒泡排序法(C++实现)