首页 > 数据库 >JDBC管理事务_实现和数据库连接池_概述

JDBC管理事务_实现和数据库连接池_概述

时间:2022-10-22 10:48:52浏览次数:50  
标签:事务 JDBC 数据库 连接池 sql null pre1 conn pre2

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.用户访问高效

 

标签:事务,JDBC,数据库,连接池,sql,null,pre1,conn,pre2
From: https://www.cnblogs.com/hungui/p/16815500.html

相关文章

  • JDBC管理事务概述以及实现
    JDBC管理事务-概述JDBC控制事务:1.事务:一个包含多个步骤的业务操作,如果这个业务操作被事务管理,则这多个步骤要么同时成功,要么同时失败2.操作:1.开启事务......
  • Activtiy启动流程到完成所有任务之间的数据库变化
    声明转载,怕删帖:先给出流程图,很简单的流程,就是3个UserTaskProcessDefinitionpd=repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).......
  • 安装MySQL数据库
    安装1.使用wget命令安装MySQL:https://www.cnblogs.com/zull123/p/10038299.html#yum安装出现"nomoremirrorstotry"时解决方法:yumcleanall;yummakecache;yum......
  • 数据库-jdbc的使用
    1、execute与executeUpdate异同点摘自相同点:execute与executeUpdate都可以执行增加,删除,修改的操作。packagejdbc;importjava.sql.Connection;importjava.sql......
  • SQL Server附加数据库*.mdf文件被拒绝访问解决方法
    方法一:修改权限法1打开要附加的数据库文件所在的文件夹,即扩展名为mdf的文件所在的文件夹,如下图所示:2右键单击mdf文件,选择“属性”,如下图所示:3单击“......
  • 数据库中DDL操作表
    数据库数据库中DDL操作表修改表修改表名:altertable表名renameto新的表名; 添加一列:altertable表名add列名数据类型;修改数据类型:altertable表名modify......
  • Linux/Ubuntu命令行登陆和退出postgres数据库
    1.登陆sudo-i-upostgrespostgres@eisen:~$psqlpsql(14.5(Ubuntu14.5-2.pgdg20.04+2),服务器12.12(Ubuntu12.12-0ubuntu0.20.04.1))输入"help"来获取帮助......
  • 【Oracle数据库】Oracle SQL*Plus环境下的简单操作
     OracleSQL*Plus环境与查询 (1)登录到Oracle   (2)helpindex查看Oracle有关命令   (3)创建登录表  (4)插入数据  (5)查询所有数据   (6)设置列的显示格式     ......
  • 华为云数据库 RDS for MySQL ,助力数字化企业安全发展​
    在云计算、大数据和人工智能高速发展的云2.0时代,传统的数据库已然难以适应海量信息数据、高计算高性能的计算级运行,不能搭配LAMP,不能适应WEB开发的要求。网络运营单位开始追......
  • JDBC事务管理和JDBC管理事物_概述
    JDBC事务管理:1.Preparedstatement:执行sql的对象1.sQL注入问题∶在拼接sql时,有一些sql的特殊关键字参与字符串的拼接。会造成安全性问题1.输入用户随便,输入密码:a'or......