首页 > 数据库 >JDBC中的数据库事务实现

JDBC中的数据库事务实现

时间:2024-03-06 14:37:46浏览次数:22  
标签:事务 JDBC money 数据库 dao connection bankDao import

 1 package com.atsyc.api.transaction;
 2 
 3 //银行卡业务方法,调用dao方法
 4 
 5 import org.junit.Test;
 6 
 7 import java.sql.Connection;
 8 import java.sql.DriverManager;
 9 
10 /*
11  * TODO:
12  *      事物添加是在业务方法中
13  *      利用try catch代码块,开启事务和提交事务,还有事务回滚
14  *      将connection传入dao层即可,dao只负责使用,不要close();
15  */
16 
17 public class BankService {
18 
19     @Test
20     public void start() throws Exception {
21         transfer("user1","user2",500);
22     }
23 
24     public void transfer(String addAccount,String subAccount,int money) throws Exception {
25         BankDao bankDao = new BankDao();
26 
27         //一个事务的最基本要求,必须是同一个连接对象connection
28 
29         //一个转账方法属于一个事务(加钱,减钱)
30 
31         Class.forName("com.mysql.cj.jdbc.Driver");
32         Connection connection = DriverManager.getConnection("jdbc:mysql:///atsyc","root","Yican030615");
33 
34         try{
35             //开启事务(从业务层开启)
36 
37             //关闭事务提交
38             connection.setAutoCommit(false);
39 
40             //执行数据库动作
41             bankDao.add(addAccount,money,connection);
42             System.out.println("----------");
43             bankDao.sub(subAccount,money,connection);
44 
45             //事务提交
46             connection.commit();
47         }catch (Exception e) {
48             //事务回滚
49             connection.rollback();
50             //抛出异常信息
51             throw e;
52         }finally {
53             {
54                 connection.close();
55             }
56         }
57     }
58 }

 

标签:事务,JDBC,money,数据库,dao,connection,bankDao,import
From: https://www.cnblogs.com/IrVolcano/p/18056476

相关文章

  • 神通数据库异机恢复(主库不停机)
    1.主库上需要确保在归档模式[root@localhostbin]#./isql-hlocalhost-p2003-dHXLsysdbaSQL>selectlog_modefromv$database;LOG_MODE------------ARCHIVELOG(1row)若数据库不在归档模式,需要按照如下命令进行修改为归档模式mkdir-p/opt/ShenTong/archalterd......
  • mysql视图 触发器 事务 存储过程
    创建视图createviewemp2depasselectemp.*,dep.nameasdep_namefromempinnerjoindeponemp.dep_id=dep.id;   mysql>updateemp2depsetname="EGON"whereid=1;QueryOK,1rowaffected(0.05sec)Rowsmatched:1Changed:1Warnings:0......
  • MySQL 数据库巡检都有哪些内容
    一套正常运行的系统是一个复杂的系统工程,牵涉到主机、操作系统、网络、数据库、中间件、底层存储,还有系统的核心:应用。任何层面的故障都可能造成系统的不可用。今天聊一聊数据库层面的巡检问题。数据库巡检的目的:保障数据库的正常运行,保证数据的安全性,完整性、可靠性。这篇文章......
  • 神通数据库异机恢复
     1.主库上需要确保在归档模式[root@localhostbin]#./isql-hlocalhost-p2003-dHXLsysdbaSQL>selectlog_modefromv$database;LOG_MODE------------ARCHIVELOG(1row) 若数据库不在归档模式,需要按照如下命令进行修改为归档模式mkdir-p/opt/ShenTo......
  • Docker数据库容器(四)
    前言前面都以Nginx容器为例,介绍很Docker容器的运用。但是对于数据库的容器,在创建的时候却涉及到了Docker的环境变量设置,这个对于很多项目都是非常重要的。所以这里单独深入了解这类型的容器创建。一、创建这里以Mysql容器为例,用之前Nginx的创建方式来创建容器。~]#d......
  • Mysql数据库安全和备份
    一、用户权限认证Mysql通过用户认证机制来和业务系统建立连接通道,当认证成功后,还需要通过访问控制模块来进行相关的权限验证,只有两次验证都通过后,才能继续执行SQL语句操作,这个过程涉及用户管理和访问控制两个模块。用户管理模块用于管理登录用户信息、设置相关权限,Mysql......
  • .NET6 + EF Core + MySQL 创建实体和数据库、EFCore 数据迁移、属性导航
    一、创建asp.netcoreweb(MVC)项目二、导包Microsoft.EntityFrameworkCore.DesignMicrosoft.EntifyFrameworkCore.ToolsPomelo.EntityFrameworkCore.MySql三、创建实例这里创建了两个实例namespacedemo.Models{publicclassSupplier{[DatabaseGe......
  • Oceanbase数据库创建分区时报错
    报错信息:ERROR1044(42000):Accessdeniedforuser'root'@'%'todatabase'oceanbase'报错原因:由于OceanBase数据库中,oceanbase库是系统库,里面存放的是系统的很多表,所以不能进行操作,换个库即可,一般到test库下,执行操作......
  • 分布式事务解决方案详解
    1:分布式事务简介大多数场景下,我们的应用都只需要操作单一的数据库,这种情况下的事务称之为本地事务(LocalTransaction)。本地事务的ACID特性是数据库直接提供支持。本地事务应用架构如下所示:但是在微服务架构中,完成某一个业务功能可能需要横跨多个服务,操作多个数据库。这就涉......
  • 数据库
    首先下载安装MySQL和navicat(用于管理数据源)下载和安装MySQL-Wild-bokeyuan-博客园(cnblogs.com)navicat免费下载-Wild-bokeyuan-博客园(cnblogs.com)打开navicat有多种数据源可选 点击MySQL连接本地mysql数据源密码是MySQL的密码 点击此选项新建一个库,可......