C3P0简单使用

xiaoxiao2021-02-27  208

C3P0是一个开源的JDBC连接池,现使用第二种配置方式  via an XML configuration file, 

1、配置c3p0-config.xml:下载jar包,打开c3p0-0.9.1.2\doc下的index.html

QUICKSTART中可以看到

ComboPooledDataSource cpds = new ComboPooledDataSource();

cpds.setDriverClass( "org.postgresql.Driver" ); 

cpds.setJdbcUrl( "jdbc:postgresql://localhost/testdb" );

cpds.setUser("dbuser"); 

 cpds.setPassword("dbpassword");

点击查看XML configuration file,并将上面set的内容修改并放到下面中,即可用配置文件为:

<c3p0-config> 

 <default-config> 

<property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/day04_09_jdbc</property><property name="user">root</property><property name="password">root123</property>

 <property name="initialPoolSize">10</property> 

 <property name="maxIdleTime">30</property>

 <property name="maxPoolSize">100</property>

 <property name="minPoolSize">10</property> 

 </default-config>

2、创建C3P0Util类,从连接池得到连接方法getConnection()和重新放入连接池方法release()

public class C3P0Util {private static ComboPooledDataSource datasource = new ComboPooledDataSource();public static Connection getConnection(){try {return datasource.getConnection();} catch (SQLException e) {throw new ExceptionInInitializerError("服务器错误!");}}public static void release(ResultSet rs, PreparedStatement ps, Connection conn){if(rs!=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}rs=null;}if(ps!=null){try {ps.close();} catch (SQLException e) {e.printStackTrace();}ps=null;}if(conn!=null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}conn=null;}}}

3、创建测试类

public class TestCRUD {@Testpublic void testselect(){Connection conn = null;PreparedStatement pst = null;ResultSet rs = null;try {conn = C3P0Util.getConnection();pst = conn.prepareStatement("select * from users where id=?");pst.setInt(1, 1);rs = pst.executeQuery();List<users> list = new ArrayList<users>();while(rs.next()){users u = new users();u.setId(rs.getInt("id"));u.setName(rs.getString("name"));u.setPassword(rs.getString("password"));u.setEmail(rs.getString("email"));u.setBirthday(rs.getDate("birthday"));list.add(u);}for (users users : list) {System.out.println(users);}} catch (SQLException e) {e.printStackTrace();}finally{C3P0Util.release(rs, pst, conn);}}

}

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

最新回复(0)