Java web----数据库连接池
来源:互联网 发布:淘宝怎么认证卖家 编辑:程序博客网 时间:2024/06/05 17:41
池参数(所有池参数都有默认值):
初始大小:10个
最小空闲连接数:3个
增量:一次创建的最小单位(5个)
最大空闲连接数:12个
最大连接数:20个
最大的等待时间:1000毫秒
四大连接参数
连接池也是使用四大连接参数来完成创建连接对象!
实现的接口
连接池必须实现:javax.sql.DataSource接口!
连接池返回的Connection对象,它的close()方法与众不同!调用它的close()不是关闭,而是把连接归还给池!
1 数据库连接池的概念用池来管理Connection,这可以重复使用Connection。有了池,所以我们就不用自己来创建Connection,而是通过池来获取Connection对象。当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection“归还”给池。池就可以再利用这个Connection对象了。
2 JDBC数据库连接池接口(DataSource)
Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商可以让自己的连接池实现这个接口。这样应用程序可以方便的切换不同厂商的连接池!
3 自定义连接池(ItcastPool)
分析:ItcastPool需要有一个List,用来保存连接对象。在ItcastPool的构造器中创建5个连接对象放到List中!当用人调用了ItcastPool的getConnection()时,那么就从List拿出一个返回。当List中没有连接可用时,抛出异常。
我们需要对Connection的close()方法进行增强,所以我们需要自定义ItcastConnection类,对Connection进行装饰!即对close()方法进行增强。因为需要在调用close()方法时把连接“归还”给池,所以ItcastConnection类需要拥有池对象的引用,并且池类还要提供“归还”的方法。
public class ItcastPool implements DataSource {private static Properties props = new Properties();private List<Connection> list = new ArrayList<Connection>();static {InputStream in = ItcastPool.class.getClassLoader().getResourceAsStream("dbconfig.properties");try {props.load(in);Class.forName(props.getProperty("driverClassName"));} catch (Exception e) {throw new RuntimeException(e);}}public ItcastPool() throws SQLException {for (int i = 0; i < 5; i++) {Connection con = DriverManager.getConnection(props.getProperty("url"), props.getProperty("username"),props.getProperty("password"));ItcastConnection conWapper = new ItcastConnection(con, this);list.add(conWapper);}}public void add(Connection con) {list.add(con);}public Connection getConnection() throws SQLException {if(list.size() > 0) {return list.remove(0);}throw new SQLException("没连接了");} ......}
public class ItcastConnection extends ConnectionWrapper {private ItcastPool pool;public ItcastConnection(Connection con, ItcastPool pool) {super(con);this.pool = pool;}@Overridepublic void close() throws SQLException {pool.add(this);}}
- Java web----数据库连接池
- Java Web数据库连接池
- java web总结(数据库连接池)
- Java web项目的数据库连接池讲解
- Java Web入门之tomcat数据库连接池
- java web学习总结39:数据库连接池
- 在java web中的数据库连接
- Java Web中使用数据库连接池proxool配置详解
- Java Web中使用数据库连接池proxool配置详解
- Java Web中使用数据库连接池proxool配置详解
- Java Web 架构系列 知识(一) 数据库连接池
- [数据库连接池] Java数据库连接池--DBCP浅析.
- [数据库连接池] Java数据库连接池--DBCP浅析.
- [数据库连接池] Java数据库连接池--DBCP浅析.
- Java程序数据库连接,数据源配置,数据库连接池
- Java程序数据库连接,数据源配置,数据库连接池
- 数据库连接池,数据源,数据库连接,JNDI,JAVA
- 数据库连接池,数据源,数据库连接,JNDI,JAVA
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- jvm内存调优
- javaweb-day04-5(javaWeb开发入门 - tomcat体系架构、配置https加密连接器)
- Ubuntu14.04 CEPH 集群搭建(一)
- 和大神们学习每天一题(leetcode)-Palindrome Partitioning
- Java web----数据库连接池
- Apache POI 实现Excel文件单元格合并、冻结和文件导出
- 多个checkbox 获取选中的 并且把传递的id用逗号隔开(jQuery)
- 科技创业公司的效率工具箱
- UIRoot.BroadCast(methodname, params) Unity3d 面向对象设计思想(二)(动态UI的分配与调度)
- Android常用开源框架
- test
- Impala一些注意点
- Android—面试四家公司遇到的问题总结