使用c3p0连接池来改版JdbcUtils工具

1. 使用c3p0连接池获取连接,使代码更加简单

 1 /**
 2  * 使用c3p0连接池做小工具
 3  * JdbcUtils v2.0
 4  * @author hui.zhang
 5  * 
 6  */
 7 public class JdbcUtils {
 8     // 配置文件的默认配置,必须给出c3p0-config.xml
 9     private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
10 
11     /**
12      * 使用连接池返回一个连接对象
13      * @return
14      * @throws SQLException
15      */
16     public static Connection getConnection() throws SQLException {
17         return dataSource.getConnection();
18     }
19 
20     /**
21      * 返回连接池对象
22      * @return
23      */
24     public static DataSource getDataSource() {
25         return dataSource;
26     }
27 
28 }

2. 在src路径下必须给出c3p0-config.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
    <!-- 默认配置信息 -->
    <default-config>
    <!-- 连接四大参数 -->
        <property name="user">数据库用户名</property>
        <property name="password">数据库密码</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql:///数据库名</property>
    
    <!-- 池参数配置 -->
    <property name="acquireIncrement">3</property> 
    <property name="initialPoolSize">10</property> 
    <property name="minPoolSize">2</property> 
    <property name="maxPoolSize">10</property>
     
    </default-config>
</c3p0-config> 

3. 总结

  * 什么是连接池

    连接池是装有连接的容器,使用连接的话,可以从连接池中进行获取,使用完成之后将连接归还给连接池。

  为什么要学习连接池

    连接对象创建和销毁是需要耗费时间的,在服务器初始化的时候就初始化一些连接。把这些连接放入到内存中,使用的时候可以从内存中获取,使用完成之后将连接放入连接池中。从内存中获取和归还的效率要远远高于创建和销毁的效率。(提升性能)。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  JdbcUtils v2.0的版本加入了c3p0连接池,c3p0是一个开源连接池,支持JDBC3和JDBC2的标准扩展,目前使用它的开源项目有Hibernate、Spring等。接下来有机会介绍介绍阿里旗下的开源连接池Druid,使用非常简单,可以和Spring进行快速整合。

 posted on 2017-09-22 16:48  这名字还可以改吗  阅读(207)  评论(0编辑  收藏  举报