JDBC连接池 —— c3p0

xiaoxiao2021-02-28  100

hibernate和spring使用 有自动回收空闲连接的功能. 使用步骤: 1.导入jar包(c3p0-0.9.1.2.jar) 2.使用api a.硬编码(不推荐) new ComboPooledDataSource() b.配置文件 配置文件的名称:c3p0.properties 或者 c3p0-config.xml 配置文件的路径:src下 编码只需要一句话 new ComboPooledDataSource()//使用默认的配置 new ComboPooledDataSource(String configName)//使用命名的配置 若配置的名字找不到,使用默认的配置

/** * C3p0Demo.java */ package com.datasource.c3p0; import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import org.junit.Test; import com.mchange.v2.c3p0.ComboPooledDataSource; import com.utils.JdbcUtils; public class C3p0Demo { @Test // 硬解码 public void f1() throws Exception { ComboPooledDataSource ds = new ComboPooledDataSource() ; // 设置基本参数 ds.setDriverClass("com.mysql.jdbc.Driver") ; ds.setJdbcUrl("jdbc:mysql:///day07") ; ds.setUser("root") ; ds.setPassword("123"); Connection conn = ds.getConnection() ; String sql = "insert into category values(?,?)" ; PreparedStatement st = conn.prepareStatement(sql) ; //设置参数 st.setString(1, "c013"); st.setString(2,"药品") ; int i = st.executeUpdate() ; System.out.println(i); JdbcUtils.closeResource(conn, st, null); } @Test public void f2() throws Exception { //ComboPooledDataSource ds = new ComboPooledDataSource() ; // 此处itcast就是XML配置文件中使用的数据库的类型, // 没有则使用默认的config ComboPooledDataSource ds = new ComboPooledDataSource("itcast") ; Connection conn = ds.getConnection() ; String sql = "insert into category values(?,?)" ; PreparedStatement st = conn.prepareStatement(sql) ; //设置参数 st.setString(1, "c114"); st.setString(2,"药品_阿莫东林") ; int i = st.executeUpdate() ; System.out.println(i); JdbcUtils.closeResource(conn, st, null); } } /** * c3p0.properties * */ c3p0.driverClass=com.mysql.jdbc.Driver c3p0.jdbcUrl=jdbc:mysql:///day07 c3p0.user=root c3p0.password=123 /** * c3p0-config.xml * 以后这些配置文件都是给出的不需要自己去写 */ <c3p0-config> <!-- 默认配置,如果没有指定则使用这个配置 --> <default-config> <!-- 基本配置 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/day07</property> <property name="user">root</property> <property name="password">123</property> <!--扩展配置--> <property name="checkoutTimeout">30000</property> <property name="idleConnectionTestPeriod">30</property> <property name="initialPoolSize">10</property> <property name="maxIdleTime">30</property> <property name="maxPoolSize">100</property> <property name="minPoolSize">10</property> <property name="maxStatements">200</property> </default-config> <!-- 命名的配置 --> <named-config name="itcast"> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/xxxx</property> <property name="user">root</property> <property name="password">123</property> <!-- 如果池中数据连接不够时一次增长多少个 --> <property name="acquireIncrement">5</property> <property name="initialPoolSize">20</property> <property name="minPoolSize">10</property> <property name="maxPoolSize">40</property> <property name="maxStatements">20</property> <property name="maxStatementsPerConnection">5</property> </named-config> </c3p0-config>

转载请注明原文地址: https://www.6miu.com/read-43172.html

最新回复(0)