(解决每次数据库连接的卡顿)
优点~~~~
1.资源重用
避免了频繁的创建
2.更快的系统反应速度
提前创建了若干数据库连接
3.新的资源分配手段
实现一个应用最大可用数据库连接数的限制
4.同意连接管理 避免数据连接泄露
强制回收被占用连接 从而避免了常规数据库连接操作中出现的资源泄露
多种数据库连接池
1.DBCP tomcat服务器自带dbcp数据库连接池 自身有bug
2.c3p0 速度慢 稳定性还可以
3.Proxool 有监控连接池状态的功能
4.BoneCP 速度快
5.Druid 速度快 有监控 比较稳定
DataSource 连接池 还有连接池 和管理连接池两部分
DBUtils实现CRUD操作
QueryRunner类
该类简单化了SQL查询,它与ResultSetHandler组合在一起使用可以完成大部分的数据库操作,
能够大大减少编码量。
数据库包 数据库连接池包 数据库工具类包
更新
public int update(Connection conn, String sql, Object... params) throws
SQLException:用来执行一个更新(插入、更新或删除)操作。
......
插入
public T insert(Connection conn,String sql,ResultSetHandler rsh, Object... params)
throws SQLException:只支持INSERT语句,其中 rsh - The handler used to create
the result object from the ResultSet of auto-generated keys. 返回值: An object
generated by the handler.即自动生成的键值
....
批处理
public int[] batch(Connection conn,String sql,Object[][] params)throws
SQLException: INSERT, UPDATE, or DELETE语句
public T insertBatch(Connection conn,String sql,ResultSetHandler rsh,Object[][]
params)throws SQLException:只支持INSERT语句
.....
查询
public Object query(Connection conn, String sql, ResultSetHandler rsh,Object...
params) throws SQLException:执行一个查询操作,在这个查询中,对象数组中的每
个元素值被用来作为查询语句的置换参数。该方法会自行处理 PreparedStatement 和
ResultSet 的创建和关闭。