c3p0连接池;
步骤:
1. 导入jar包 (两个) c3p0-0.9.5.2.jar 、mchange-commons-java-0.2.12.jar ,
* 不要忘记导入数据库驱动jar包
2. 定义配置文件:
* 名称: c3p0.properties 或者 c3p0-config.xml
* 路径:直接将文件放在src目录下即可。
3. 创建核心对象 数据库连接池对象 ComboPooledDataSource
4. 获取连接: getConnection
* 代码:
//1.创建数据库连接池对象
DataSource ds = new ComboPooledDataSource();
//2. 获取连接对象
Connection conn = ds.getConnection();
配置文件:
<c3p0-config> <!-- 使用默认的配置读取连接池对象 --> <default-config> <!-- 连接参数 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/demo</property> <property name="user">root</property> <property name="password">123456</property> <!-- 连接池参数 --> <!-- 初始化申请连接池的数量 --> <property name="initialPoolSize">5</property> <!--最大的连接数量--> <property name="maxPoolSize">10</property> <!--超时时间,毫秒值--> <property name="checkoutTimeout">3000</property> </default-config> <named-config name="otherc3p0"> <!-- 连接参数 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/demo</property> <property name="user">root</property> <property name="password">123456</property> <!-- 连接池参数 --> <property name="initialPoolSize">5</property> <property name="maxPoolSize">8</property> <property name="checkoutTimeout">1000</property> </named-config> </c3p0-config>
封装成工具类:
public class JDBCUtils2 { //1.定义成员变量 DataSource private static DataSource ds =null ; /** * * @return 返回数据库连接对象 * @throws SQLException */ public static Connection getConnection() throws SQLException { //创建数据库的连接对象 ds = new ComboPooledDataSource(); /*//获取连接对象 Connection coon = ds.getConnection(); return coon;*/ return ds.getConnection(); } /** * 释放资源 * @param stmt * @param conn */ public static void close(Statement stmt, Connection conn){ if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * * @param rs * @param stmt * @param conn */ public static void close(ResultSet rs, Statement stmt, Connection conn){ if (rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } close(stmt,conn); } /** * 返回连接池 * @return */ public static DataSource getDataSource(){ return ds; } }
Druid:数据库连接池实现技术,由阿里巴巴提供的
1. 步骤:
1. 导入jar包 druid-1.0.9.jar
2. 定义配置文件:
* 是properties形式的
* 可以叫任意名称,可以放在任意目录下
3. 加载配置文件。Properties
4. 获取数据库连接池对象:通过工厂来来获取 DruidDataSourceFactory
5. 获取连接:getConnection
* 代码:
//3.加载配置文件(通过静态代码块加载)
Properties pro = new Properties();
InputStream is = DruidDemo.class.getClassLoader().getResourceAsStream("druid.properties");
pro.load(is);
//4.获取连接池对象
DataSource ds = DruidDataSourceFactory.createDataSource(pro);
//5.获取连接
Connection conn = ds.getConnection();
配置文件;
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/demo username=root password=123456 #初始连接数 initialSize=5 #最大连接数 maxActive=10 #等待时间 maxWait=3000
封装成工具类:
public class JDBCUtils3 { private static DataSource ds = null; static { //加载配置文件 Properties pro = new Properties(); try { pro.load(JDBCUtils3.class.getClassLoader().getResourceAsStream("druidDemo/druid.properties")); //获取DataSource对象 ds= DruidDataSourceFactory.createDataSource(pro); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } /** * 获取数据库连接 * @return */ public static Connection getConnection() throws SQLException { return ds.getConnection(); } /** * 释放资源 * @param stmt * @param conn */ public static void close(Statement stmt,Connection conn){ /*if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } }*/ close(null,stmt,conn); } /** * * @param rs * @param stmt * @param conn */ public static void close(ResultSet rs, Statement stmt, Connection conn){ if (rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn!=null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 返回连接池 * @return */ public static DataSource getDataSource(){ return ds; } }
posted on
浙公网安备 33010602011771号