Java操作数据库——在JDBC里使用事务
Java操作数据库——在JDBC里使用事务
摘要:本文主要学习了如何在JDBC里使用事务。
使用Connection的事务控制方法
当JDBC程序向数据库获得一个Connection对象时,默认情况下这个Connection对象会自动向数据库提交发送的SQL语句。若想关闭这种默认提交方式,让多条SQL在一个事务中执行,可使用JDBC提供的事务控制方法。
常用方法
查询自动提交的状态:boolean getAutoCommit() throws SQLException;
设置自动提交的状态:void setAutoCommit(boolean autoCommit) throws SQLException;
设置还原点:Savepoint setSavepoint() throws SQLException;
设置指定名称的还原点:Savepoint setSavepoint(String name) throws SQLException;
删除指定名称的还原点:void releaseSavepoint(Savepoint savepoint) throws SQLException;
提交:void commit() throws SQLException;
回滚:void rollback() throws SQLException;
回滚到指定名称的还原点:void rollback(Savepoint savepoint) throws SQLException;
查询隔离级别:int getTransactionIsolation() throws SQLException;
设置隔离级别:void setTransactionIsolation(int level) throws SQLException;
使用实例
public static void main(String[] args) {
Properties pros = new Properties();
try {
pros.load(TestConnection.class.getClassLoader().getResourceAsStream("jdbc.properties"));
} catch (IOException e) {
e.printStackTrace();
}
try {
Class.forName(pros.getProperty("driverClass"));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection conn = null;
PreparedStatement pstmt = null;
try {
String url = pros.getProperty("url");
String user = pros.getProperty("user");
String password = pros.getProperty("password");
conn = DriverManager.getConnection(url, user, password);
boolean status = conn.getAutoCommit();
System.out.println("AutoCommit = " + status);
conn.setAutoCommit(false);
pstmt = conn.prepareStatement("delete from student where id = 906");
pstmt.executeUpdate();
int e = 1 / 0;// 模拟出现异常
pstmt = conn.prepareStatement("delete from student where id = 907");
pstmt.executeUpdate();
conn.commit();// 手动提交,不能省略
} catch (Exception e) {
e.printStackTrace();
try {
conn.rollback();// 手动回滚,可以省略,系统会自动回滚
} catch (SQLException ex) {
ex.printStackTrace();
}
} finally {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Java操作数据库——在JDBC里使用事务的更多相关文章
- Java操作数据库——使用JDBC连接数据库
Java操作数据库——使用JDBC连接数据库 摘要:本文主要学习了如何使用JDBC连接数据库. 背景 数据持久化 数据持久化就是把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应 ...
- Java操作数据库之JDBC增删改查
1.java连接MySql数据库 代码区域: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...
- JDBC 数据库连接 Java操作数据库 jdbc快速入门
JDBC基本概念 Java DataBase Connectivity 数据库连接 java操作数据库 本质上(sun公司的程序员)定义的一套操作关系型数据库的规则 既接口 更新内容之前 代码 pa ...
- JDBC数据源(DataSource)数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用。
JDBC数据源(DataSource)的简单实现 数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用. 2.数据源提供了一种简单获取数据库连接的方式,并能在内部通 ...
- JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了
JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了 代码示例 转自 https://docs.oracle.com/javase/tutorial/jdbc/o ...
- Java操作数据库——手动实现数据库连接池
Java操作数据库——手动实现数据库连接池 摘要:本文主要学习了如何手动实现一个数据库连接池,以及在这基础上的一些改进. 部分内容来自以下博客: https://blog.csdn.net/soonf ...
- Java操作数据库——使用连接池连接数据库
Java操作数据库——使用连接池连接数据库 摘要:本文主要学习了如何使用JDBC连接池连接数据库. 传统方式和连接池方式 传统方式的步骤 使用传统方式在Java中使用JDBC连接数据库,完成一次数据库 ...
- java操作数据库:增删改查
不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...
- JavaSE学习总结(九)—— Java访问数据库(JDBC)
一.JDBC简介 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java ...
随机推荐
- 《Dotnet9》建站-本站使用的什么主题?
时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...
- LINUX网络传输的序列化和反序列化C++
来到公司实习,开始面向实习生有一个小项目,当然了,服务器就由我一个人来写了,1.0主要完成的使用纯C 写Linux下UDP的服务器框架,大部分还都是以前在学校做过的项目套用的,难度不大,经过跟大bos ...
- Linux配置免密登陆
可能很多新手在配置免密登陆的时候第一次会经常没有配成功,会报错. 在这里将为大家演示最简洁且能一次配置成功的教程 首先以3台机器为例: 192.168.3.102 master 192.168.3.1 ...
- 【GZOI 2019】特技飞行
Problem Description 公元 \(9012\) 年,Z 市的航空基地计划举行一场特技飞行表演.表演的场地可以看作一个二维平面直角坐标系,其中横坐标代表着水平位置,纵坐标代表着飞行高度. ...
- C#界面设计相关设置
1.Anchor属性设置 对需要设置的控件,如主窗体中的TextBox,设置Anchor为上下左右都停靠,就会实现随着窗体的变化而变化. 2.AutoScaleMode属性的用法:<转自:htt ...
- 多个 .NET 框架
目录 应用程序编程接口 C# 和 .NET 版本控制 .NET Standard 目前存在多个 .NET 框架. Microsoft 的宗旨是在最大范围的操作系统和硬件平台上提供 .NET 实现. 下 ...
- JS---案例:点击按钮设置div背景色渐变
案例:点击按钮设置div背景色渐变 背景色渐变:设置透明度 <div id="dv"></div> <input type="button& ...
- div拖拽效果 JQuery
<!DOCTYPE html> <html> <head> <meta name="description" content=" ...
- Linux下的密码破解
密码散列: 密码散列的$6 表示是:SHA512 这里我们使用hashcat 工具进行破解 ╰─ hashcat -m 1800 hash.txt /usr/share/wordlists/rocky ...
- 参加杭州 2019 AI Bootcamp有感与总结(2)
接上篇 参加杭州 2019 AI Bootcamp有感与总结(1) - repeatedly - 博客园 午餐畅谈的收获 先感谢主办方提供的午餐,中午午休的时候,大家聊了很多,或者说主要是听大佬谈.聊 ...