1. 程式人生 > 實用技巧 >C3P0連線池的使用

C3P0連線池的使用

注意事項:

導包

在WEB-INF/lib 下匯入第一個和第三個包。

在src路徑下匯入XML配置檔案

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <c3p0-config>
 3     <named-config name="c3p0">
 4     <property name="user">root</property>
 5     <property name="password">000429</property>
 6     <property name
="driverClass">com.mysql.jdbc.Driver</property> 7 <property name="jdbcUrl">jdbc:mysql://localhost:3306/info?useUnicode=true&amp;setCharacterEncoding=UTF-8</property> 8 <property name="acquireIncrement">5</property> 9 <property name="initialPoolSize">
5</property> 10 <property name="minPoolSize">2</property> 11 <property name="maxPoolSize">40</property> 12 </named-config> 13 </c3p0-config>

之後新建一個util類

 1 package com.ycw.util;
 2 
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 8 import com.mchange.v2.c3p0.ComboPooledDataSource; 9 10 public class JDBCUtil { 11 public static Connection getConn() throws SQLException { 12 ComboPooledDataSource datasource=new ComboPooledDataSource("c3p0"); 13 // try { 14 // datasource.setDriverClass("com.mysql.jdbc.Driver"); 15 // datasource.setJdbcUrl("jdbc:mysql://localhost:3306/info?useUnicode=true&setCharacterEncoding=UTF-8"); 16 // datasource.setPassword("000429"); 17 // datasource.setUser("root"); 18 // Connection connection = datasource.getConnection(); 19 // System.out.println(connection); 20 // } catch (PropertyVetoException e) { 21 // // TODO 自動生成的 catch 塊 22 // e.printStackTrace(); 23 // } 24 Connection connection = datasource.getConnection(); 25 System.out.println(connection); 26 return connection; 27 } 28 29 public static void drop(Connection conn, PreparedStatement ps) { 30 // TODO 自動生成的方法存根 31 if(ps!=null) 32 { 33 try { 34 ps.close(); 35 } catch (SQLException e) { 36 // TODO 自動生成的 catch 塊 37 e.printStackTrace(); 38 } 39 40 } 41 if(conn!=null) { 42 try { 43 conn.close(); 44 } catch (SQLException e) { 45 // TODO 自動生成的 catch 塊 46 e.printStackTrace(); 47 } 48 49 } 50 51 } 52 public static void drop(Connection conn, PreparedStatement ps ,ResultSet rs) { 53 // TODO 自動生成的方法存根 54 if(rs!=null) 55 { 56 try { 57 rs.close(); 58 } catch (SQLException e) { 59 // TODO 自動生成的 catch 塊 60 e.printStackTrace(); 61 } 62 } 63 if(ps!=null) 64 { 65 try { 66 ps.close(); 67 } catch (SQLException e) { 68 // TODO 自動生成的 catch 塊 69 e.printStackTrace(); 70 } 71 72 } 73 if(conn!=null) { 74 try { 75 conn.close(); 76 } catch (SQLException e) { 77 // TODO 自動生成的 catch 塊 78 e.printStackTrace(); 79 } 80 81 } 82 83 } 84 }