9.18 [MySQL] 连接池.DBUtils工具.事务.分层思想

连接池

连接池简述及原理

原始:
在这里插入图片描述
连接池:
在这里插入图片描述

连接池简述及原理

DataSource 由厂商去实现
市面上常见的几种连接池:
DBCP连接池、C3p0连接池、Druid连接池(阿里)

DBCP连接池和c3p0连接池的对比:

Dbcp:效率高,但是安全性一般
C3p0:安全性很高,效率偏低

DBCP连接池

DBCP也是一个开源的连接池,是Apache Common成员之一,在企业开发中也比较常见,tomcat内置的连接池。

DBCP连接池目前市面上极为高效的连接池。
DBCP连接池一秒钟可以创建并传递10万个左右的连接对象。

DBCP安全性并不高,有可能在高速运转丢失连接数据

连接池的使用

导入jar包:
在这里插入图片描述
在这里插入图片描述

配置文件导入

配置文件名称:*.properties
配置文件位置:可存放任意目录,但开发建议src根目录
配置文件内容:properties尽量不要在eclipse中编写中文,容易乱码。如果需要写入中文,建议使用记事本修改内容,可以解决中文乱码问题
在这里插入图片描述

编写连接池工具

在这里插入图片描述
在这里插入图片描述

常见配置项

在这里插入图片描述
在这里插入图片描述
参考文档:
http://commons.apache.org/proper/commons-dbcp/configuration.html
在这里插入图片描述

C3P0连接池

C3P0开源免费的连接池!目前使用它的开源项目有:Spring、Hibernate(mybatis)等。
spring全家桶:spring、springmvc、springdata、springboot、springCloud
项目分成:(MVC模式)
Web:springmvc
业务层:service
dao层:专门和数据库打交道

使用第三方工具需要导入jar包,c3p0使用时还需要添加配置文件 c3p0-config.xml

导入jar包

在这里插入图片描述
在这里插入图片描述

配置文件引入

配置文件名称:c3p0-config.xml (固定)
配置文件位置:src (类路径)
在这里插入图片描述
在这里插入图片描述

编写连接池工具—命名配置

在这里插入图片描述

常见配置项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

DBUtils工具

DBUtils是java编程中的数据库操作实用工具,小巧简单实用。
DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。

Dbutils三个核心功能介绍

  1. QueryRunner中提供对sql语句操作的API.(CRUD增删改查)
  2. ResultSetHandler接口,用于定义select操作后,怎样封装结果集.
  3. DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法(事务)

导入一系列jar包:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
导入配置文件 放在src目录下:
在这里插入图片描述

DBUtils核心类-QueryRunner创建

  1. 自动模式:在这里插入图片描述
  2. 手动模式:
    在这里插入图片描述

使用DBUtils核心类完成数据更新操作

在这里插入图片描述
在这里插入图片描述

使用DBUtils核心类完成数据查询操作

在这里插入图片描述在这里插入图片描述
ResultSetHandler 结果集处理程序 ----定义好的接口
在这里插入图片描述
在这里插入图片描述

JavaBean

JavaBean是满足一个特殊格式的Java类。
作用:就是封装数据。
在这里插入图片描述

BeanHandler

应用:根据商品id查询商品、根据用户名密码查询用户
单表查询-封装伪表的第一行数据,会把伪表的第一行数据封装到一个JavaBean中。
在这里插入图片描述会直接使用伪表的字段名 和 setXxx 中 xxx进行对应。 setPid setPname setPrice
如果对应上,正常封装。
否则忽略该数据。
在这里插入图片描述

BeanListHandler

单表查询-封装所有查询数据
在这里插入图片描述
在这里插入图片描述

MapHandler

多表查询-封装整个伪表的第一条数据。封装成一个map集合 map<String,Object>
Key:字段名
Object:字段值
在这里插入图片描述
在这里插入图片描述

MapListHandler

多表查询-将整个伪表数据封装起来。 一行一个map, List
在这里插入图片描述
在这里插入图片描述

ScalarHandler

用于SQL语句运算返回并封装单值----Object
在这里插入图片描述
在这里插入图片描述

事务

事务的应用场景说明

在实际的业务开发中,有些业务操作要多次访问数据库。一个业务要发送多条SQL语句给数据库执行。需要将多次 访问数据库的操作视为一个整体来执行,要么所有的SQL语句全部执行成功。如果其中有一条SQL语句失败,就进行事务的回滚,所有的SQL语句全部执行失败。 例如: jack给tom转账,jack账号减钱,tom账号加钱

操作事务

MYSQL中可以有两种方式进行事务的操作:
自动提交事务:默认
手动提交事务:
在这里插入图片描述

手动提交事务使用步骤:

在这里插入图片描述

回滚点

概述:在某些成功的操作完成之后,后续的操作有可能成功有可能失败,但是不管成功还是失败,前面操作都已经成功, 可以在当前成功的位置设置一个回滚点。可以供后续失败操作返回到该位置,而不是返回所有操作,这个点称之为 回滚点。
设置回滚点语法:
savepoint 回滚点名字
回到回滚点语法:
rollback to 回滚点名字

事务的四大特性(ACID)

在这里插入图片描述

分层思想

在这里插入图片描述在这里插入图片描述

分层

包结构 包名:公司域名的倒写

Com.offcn.domain 实体层(用于封装数据)
Com.offcn.web 控制层(控制和页面数据交互的一层)
Com.offcn.service 业务层(专门写业务)
Com.offcn.dao 数据访问层(专门和数据库打交道)
Com.offcn.utils 专门存放工具类

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值