JDBC管理事务_实现和数据库连接池_概述
JDBC管理事务_实现:
1.使用connection对象来管理事务
开启事务:setAutoCommit(boolean autoCommit):调用该方法设置参数为false,即开后事务
在执行sql之前开启事务
提交事务:commit()
当所有sql都执行完提交事务
回滚事务:rollback()
在catch中回滚事务
代码实现:
public static void main(String[] args) { Connection conn = null; PreparedStatement pre1 = null; PreparedStatement pre2 = null; try { // 1.获取连接 conn = JDBCUtils.getConnection(); // 开启事务 conn.setAutoCommit(false); // 2.定义sql // 2.1张三 - 500 String sql1 = "update account set balance = balance - ? where id = ?"; // 2.2李四 + 500 String sql2 = "update account set balance = balance + ? where id = ?"; // 3.获取sql执行对象 pre1 = conn.prepareStatement(sql1); pre2 = conn.prepareStatement(sql2); // 4.设置参数 pre1.setDouble(1,500); pre1.setInt(2,1); pre2.setDouble(1,500); pre2.setInt(2,2); // 5.执行sql pre1.executeUpdate(); // 手动制造异常 int i = 3/0; pre2.executeUpdate(); // 提交事务 conn.commit(); } catch (Exception e) { // 事务回滚 try { if (conn != null) { conn.rollback(); } } catch (SQLException es) { es.printStackTrace(); } e.printStackTrace(); } finally { // 释放资源 JDBCUtils.closeConnection(pre1,conn); JDBCUtils.closeConnection(pre2,null); } }
数据库连接池_概述:
概念:其实就是一个容器(集合),存放数据库连接的容器。
当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
好处∶
1.节约资源
2.用户访问高效
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix