dao--4.连接池

来源:互联网 发布:渠道管理 知乎 编辑:程序博客网 时间:2024/06/05 07:46

1       数据库连接池

1.1  连接池介绍

连接池:

       就是创建一个容器,用于装入多个Connection对象,在使用连接对象时,从容器中获取一个Connection,使用完成后,在将这个Connection重新装入到容器中。这个容器就是连接池。(DataSource) 也叫做数据源.

                       

       我们可以通过连接池获取连接对象.-- Connection

 

对于conn.close()不再是关闭连接,而是将Connection对象重新装入到连接池.

 

1.2  图解

 

 

1.3  优点:

       1.节省创建连接与释放连接 性能消耗

       2.连接池中连接起到复用的作用 ,提高程序性能  

 

2       DBCP连接池

2.1  概述

 

DBCP 是Apache 的commons 项目的一个子项目

去官网下载 dbcp 和 pool 的jar包,DBCP 依赖 POOL的jar包

 

复制两个jar 到WEB-INF/lib下

 

 

DBCP连接池核心类 BasicDataSource

 

* 任何数据库连接池,需要数据库连接,必须通过JDBC四个基本参数构造

 

2.2  手动设置参数

  

 

2.2.1   通过配置文件

2.2.1.1       dbcp.properties

 

driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql:///userusername=rootpassword=root

2.2.1.2       jdbcUtils

 

 

 

 

 

 

3       C3P0连接池

3.1  概述

主流开源连接池,在Hibernate和Spring 都提供对C3P0连接池支持

去下载c3p0 开发包 http://sourceforge.net

 

将c3p0的jar 复制WEB-INF/lib下

 

 

3.2  手动

 

3.3  自动1- c3p0-config.xml

3.3.1   c3p0-config.xml

 

<?xml version="1.0" encoding="UTF-8"?><c3p0-config>   <default-config>      <property name="driverClass">com.mysql.jdbc.Driver</property>      <property name="jdbcUrl">jdbc:mysql:///user</property>      <property name="user">root</property>      <property name="password">root</property>   </default-config></c3p0-config>

ComboPooledDataSource comboPooledDataSource= new ComboPooledDataSource(); 会自定加载配置文件

 

3.3.2   jdbcUtils

 

3.4  自动2- c3p0-config.xml

3.4.1   c3p0-config.xml

<?xml version="1.0" encoding="UTF-8"?> <c3p0-config>    <named-config name="javamyfirst">       <property name="driverClass">com.mysql.jdbc.Driver</property>      <property name="jdbcUrl">jdbc:mysql:///user</property>      <property name="user">root</property>      <property name="password">root</property>    </named-config></c3p0-config> 

3.4.2   jdbcUtils

 

3.5  自动3—c3p0.properties

3.5.1   c3p0.properties

 

3.5.2   jdbcUtils

 

4       Tomcat内置连接池—JNDI

4.1  常见配置位置

 

4.2  context.xml

<?xml version="1.0" encoding="UTF-8"?><Context>   <Resource name="jdbc/EmployeeDB"            auth="Container"            type="javax.sql.DataSource"            username="root"            password="root"            driverClassName="com.mysql.jdbc.Driver"            url="jdbc:mysql:///user"            maxActive="8"            maxIdle="4" /></Context>

 

4.3  怎样从tomcat中获取连接池?

 

Context context = new InitialContext();

Context envCtx =(Context)context.lookup("java:comp/env"); 固定路径

DataSource datasource = (DataSource)envCtx.lookup("jdbc/EmployeeDB"); 通过绑定名称,查找指定java对象

 

4.4  jdbcUtils

 

 

 


 源代码文件:http://download.csdn.net/detail/qq_26553781/9836669

 

0 0
原创粉丝点击