事务

dbutils—开源的库

开源

  • 操作系统 Linux FreeBSD
  • 数据库 MySQL Redis
  • 编程语言 Java

dbutils是什么

Apache Commons组件中的一员,开源

能做什么

简化JDBC的操作

如何去做

DataSource—连接池
c3p0
dbcp
druid
1) 创建QueryRunner对象,如果不开启事务的情况下,需要用到连接池对象(c3p0,dbcp…)
准备SQL语句
参数
2) 发送SQL语句
|—update()----增删改的场合
|—query()----查询
Junit—单元测试—测试方法

代码

1) 准备工作
	c3p0----c3p0的Jar包,c3p0的配置文件
	mysql---mysql的jar包
	dbutils-dbutils的jar包
2) 代码

事务

MySQL

增删改查

技术
表里面的数据

一、什么是事务?

  • 一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。
  • 简单的认为就是把多个SQL语句组合在一起,要么都运行成功,要么都没有运行成功
  • 案例:
    转账 A,B两个用户,A转账给B 500元
    • 1)A的钱要减少 UPDATE consumer SET money-500 WHERE name=‘A’;
      意外
    • 2)B的钱要增加 UPDATE consumer SET money+500 WHERE name=‘B’;
      如何避免这种问题,把转账的操作使用事务进行处理。

二、在MySQL中如何处理事务

如果没有做特殊处理(单条SQL语句),MySQL是默认开启并提交事务的

  • 1)手动开启事务 START TRANSACTION;
    //多次增删改查
  • 2)提交 COMMIT;
  • 3)回滚 ROLLBACK;

三、事务的特性

  • 原子性—原子(基本粒子,不可再分)
  • 一致性
  • 隔离性
  • 持久性

四、在JDBC中如何处理事务

  • 前提:使用JDBC操作事务的前提,所有的操作都要使用同一个连接 java.sql.Connection类的对象
  • -1)开启事务 Auto–自动 Commit–提交
    setAutoCommit(false);
  • 2)提交
    commit();

  • 3)回滚
    rollback();

  • 需要用到的Jar包
    mysql, c3p0, dbutils

五、在dbutils中如何处理事务

六、在项目中如何处理事务

Connection—JDBC里面特有的类—Dao层

  • 高内聚 低耦合
    低内聚 高耦合

ThreadLocal----多线程-----Map—key,value----在当前线程存放内容,取出当前线程的内容
key—对应当前线程的ID
value—存放的内容

调试

1.加打印调试
2.单步调试–断点调试–单步。人为的控制程序一行一行的运行
断点:期望程序暂停的位置
箭头指示的行表示即将运行的行

客户端 JDBC 是什么 数据库的连接
能做什么 使用Java代码操作数据库
连接数据库 连接mysql服务器 准备四大参数
驱动名 com.mysql.Driver
url: jdbc:mysql://localhost:3306/数据库的名字
jdbc:mysql://IP地址:3306/数据库的名字
用户名:root
密码:123456
加载驱动
导入jar包
Class.forName(驱动名)
创建连接
Connerctin conn = Drermanger.getConnection(url,用户名,密码);
测试连接是否创建成功
打印输出conn 1 成功 0 失败

学习笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值