jdbc、连接池、mabatis原理
jdbc原理
1 加载数据库驱动
2 创建并获取数据库链接
3 创建jdbc statement对象
4 设置sql语句
5 设置sql语句中的参数(使用preparedStatement)
6 通过statement执行sql并获取结果
7 对sql执行结果进行解析处理
8 释放资源(resultSet、preparedstatement、connection)
jdbc编写操作数据库代码的可改进地方:
1 频繁创建、释放数据库连接 ,性能开销大,没有自带连接池
2 Sql语句写在java代码中 ,硬编码
3 sql语句的where条件与占位符赋值没有写判断逻辑
4 数据库记录需封装成pojo对象 User类 大量的编写 转换代码
连接池原理
描述:连接池,即一个集合可管理连接对象
特点:
1 可以初始化指定数量的连接
2 可以指定集合的最大元素个数
3 可以申请连接池的连接
4 不用的连接可以放回连接池
连接池技术带来的优势:
1. 资源重用
由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量)。
2. 更快的系统响应速度
数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间。
3. 新的资源分配手段
对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接的配置,实现数据库连接池技术,几年钱也许还是个新鲜话题,对于目前的业务系统而言,如果设计中还没有考虑到连接池的应用,那么…….快在设计文档中加上这部分的内容吧。某一应用最大可用数据库连接数的限制,避免某一应用独占所有数据库资源。
4. 统一的连接管理,避免数据库连接泄漏
在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回被占用连接。从而避免了常规数据库连接操作中可能出现的资源泄漏。一个最小化的数据库连接池实现。
mabatis原理
mabatis是对jdbc的封装
1:核心 配置文件,放四大信息
ip,port,username,password
2:映射文件
select
update
delete
insert
4:SqlSessionFactory 使用了工厂设计模式的生成session的对象
3:SqlSession对象,支持增删改查,连接