文章目录
- 连接池
- 连接池简述及原理
- 连接池简述及原理
- DBCP连接池
- 连接池的使用
- 配置文件导入
- 编写连接池工具
- 常见配置项
- C3P0连接池
- 导入jar包
- 配置文件引入
- 编写连接池工具---命名配置
- 常见配置项
- DBUtils工具
- DBUtils核心类-QueryRunner创建
- 使用DBUtils核心类完成数据更新操作
- 使用DBUtils核心类完成数据查询操作
- JavaBean
- BeanHandler
- BeanListHandler
- MapHandler
- MapListHandler
- ScalarHandler
- 事务
- 事务的应用场景说明
- 操作事务
- 手动提交事务使用步骤:
- 回滚点
- 事务的四大特性(ACID)
- 分层思想
- 分层
连接池
连接池简述及原理
原始:
连接池:
连接池简述及原理
DataSource 由厂商去实现
市面上常见的几种连接池:
DBCP连接池、C3p0连接池、Druid连接池(阿里)
DBCP连接池和c3p0连接池的对比:
Dbcp:效率高,但是安全性一般
C3p0:安全性很高,效率偏低
DBCP连接池
DBCP也是一个开源的连接池,是Apache Common成员之一,在企业开发中也比较常见,tomcat内置的连接池。
DBCP连接池目前市面上极为高效的连接池。
DBCP连接池一秒钟可以创建并传递10万个左右的连接对象。
DBCP安全性并不高,有可能在高速运转丢失连接数据
连接池的使用
导入jar包:
配置文件导入
配置文件名称:*.properties
配置文件位置:可存放任意目录,但开发建议src根目录
配置文件内容:properties尽量不要在eclipse中编写中文,容易乱码。如果需要写入中文,建议使用记事本修改内容,可以解决中文乱码问题
编写连接池工具
常见配置项
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三个核心功能介绍
- QueryRunner中提供对sql语句操作的API.(CRUD增删改查)
- ResultSetHandler接口,用于定义select操作后,怎样封装结果集.
- DbUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法(事务)
导入一系列jar包:
导入配置文件 放在src目录下:
DBUtils核心类-QueryRunner创建
- 自动模式:
- 手动模式:
使用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 专门存放工具类