dbutils 和 事务
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’;
如何避免这种问题,把转账的操作使用事务进行处理。
- 1)A的钱要减少 UPDATE consumer SET money-500 WHERE name=‘A’;
二、在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 失败
学习笔记