conn.setAutoCommit(false);设置事物手动提交
来源:互联网 发布:win7 壁纸 设置 软件 编辑:程序博客网 时间:2024/05/21 10:58
参数: autoCommit --》为 true表示启用自动提交模式;为 false表示禁用该模式
默认的话为自动提交,每当执行一个update ,delete或者insert的时候都会自动提交到数据库,无法回滚事务。
使用举例:
ConnectionsqlManager = SQLManager.getConnection();
//一般来说不用setAutoCommit(true),因为大部分的驱动默认是true;
sqlManager.setAutoCommit(true);
Statement stmt = sqlManager.createStatement();
***********
***********
当涉及事务处理时将setAutoCommit(false);
然后事务完后commit一下
如果设置sqlManager.setAutoCommit(false);的话,则在语句正常执行完毕后需要用sqlManager.commit()手动提交,如果在执行语句时出错的可以调用sqlManager.rollback()来回滚!
ConnectionsqlManager = SQLManager.getConnection();
//设置事物为手动提交;
sqlManager.setAutoCommit(false);
Statementstmt = sqlManager.createStatement();
*************
************
// 提交事物;
sqlManager.commit();
完整例子(添加角色,因为角色和账号之间存在中间表,所以需要设置)
public void addRole(Role role, String[] menuIds) {
Connection conn = null;
try {
// 获取数据库连接对象
conn = C3P0Util.getConnection();
// 设置事物手动提交
conn.setAutoCommit(false);
// 添加角色基本信息, 添加完成之后将新增角色ID设置到 role 对象当中,用于添加中间表时使用
roleDAO.add(role, conn);
// 添加角色菜单关联关系
roleDAO.addRoleToMenu(role.getId(), menuIds, conn);
// 提交事物;
conn.commit();
} catch (Exception e) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
e.printStackTrace();
} finally {
C3P0Util.close(conn, null, null);
}
}
true:sql命令的提交(commit)由驱动程序负责
false:sql命令的提交由应用程序负责,程序必须调用commit或者rollback方法
- conn.setAutoCommit(false);设置事物手动提交
- conn.setAutoCommit(false)
- conn.setAutoCommit(false);
- conn.setAutoCommit(true)和(false)的区别
- conn.setAutoCommit(true)和(false)的区别
- conn.setAutoCommit(true)和(false)的区别
- conn.setAutoCommit(true)和(false)的区别
- [Java] JDBC 06 批Transaction处理 -- conn.setAutoCommit(false); // 不让其自动提交 (很重要的知识点)
- Spring手动提交事物
- Spring JdbcTemplate的batchUpdate中,没有看到conn.setAutoCommit(false)的操作
- conn.setAutoCommit()介绍及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及作用
- conn.setAutoCommit()用法及…
- conn.setAutoCommit()用法及作用
- ECIF系统 校验一户多号是否成功
- Bootstrap FileInput多文件上传插件使用详解(包括Java代码)
- 自定义VIEW(学习笔记三)-基本图形的绘制
- html单元格导出excel图形环境问题
- 基数排序
- conn.setAutoCommit(false);设置事物手动提交
- 不同浏览器空格宽度不一样的解决方法
- Android图片加载库的封装实战
- native: tensorflow_jni.cc:153 Could not create TensorFlow Graph: Not found: Op type not registered '
- JSTL标签库
- SpringIOC容器接口
- springMVC多文件上传不同name的file
- SemaPhore的使用
- 自定义异常实战,java封装自定义异常