JDBC事物的处理
2024-09-02 14:30:37
JDBC事物的处理:
概念:事务是指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。
数据库开启事务命令:
start transaction 开启事务
Rollback 回滚事务
Commit 提交事务
事物的使用:
JDBC控制事务语句
Connection.setAutoCommit(false); // 相当于mysql语句的start transaction
Connection.rollback(); // 相当于mysql语句的 rollback
Connection.commit(); // 相当于mysql语句的 commit
-----------------------------------------------------------------------------------
代码如下:
package com.aaa.demo1; import com.aaa.demo.JdbcUtils; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException; public class DemoTranscation {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
// 1 获取链接
try {
conn = JdbcUtils.getConnectio();
//2 开启事物
conn.setAutoCommit(false);
// 3 获取PreparedStatement
ps = conn.prepareStatement("UPDATE count SET money = money-? WHERE cname =?"); // 4 使用PreparedStatement 两次更新操作
ps.setDouble(1, 500);
ps.setString(2, "樱花落");
ps.executeUpdate();
System.out.println(111 / 0);
ps = conn.prepareStatement("UPDATE count SET money = money+? WHERE cname =?");
ps.setDouble(1, 500);
ps.setString(2, "洛天依");
ps.executeUpdate();
//提交事物 // System.out.println("转账成功");
//conn.commit(); } catch (Exception e) {
//事物回滚
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
System.out.println("转账失败");
} finally {
//关资源
JdbcUtils.close( conn,ps); } }
}
最新文章
- Python之路【第二篇】python基础 之基本数据类型
- asp.net中实现文件下载功能
- js-高级技术
- Nginx源码研究六:NGINX的配置文件分析
- PooledDataSource--mybatis-3-mybatis-3.2.3
- POJ 3076 Sudoku (dancing links)
- 使用python修改QQ密保(脚本)
- asp.net C# 实现微信接口权限开发类
- LVM挂载失败mount: you must specify the filesystem type
- 浅谈JavaScript的面向对象程序设计(二)
- DSAPI TreeView节点增删简化操作
- php7 闭包调用
- kernel笔记——内核编译与进程管理
- JAVA的DES加密解密在windows上测试一切正常,在linux上异常
- OpenStack构架简介
- 阿里巴巴Java开发规约及插件安装
- javascript事件绑定和普通事件的区别
- 如何在spring-boot web项目中启用swagger
- 由table理解display:table-cell
- 【Selenium-WebDriver自学】Selenium-IDE模式匹配(六)