import java.beans.PropertyVetoException; import java.sql.Connection; import java.sql.SQLException; import java.util.logging.Level; import java.util.logging.Logger; import com.mchange.v2.c3p0.ComboPooledDataSource; /** * C3P0连接池 */ public class ConnectionFactory { private ConnectionFactory(){ } private static ComboPooledDataSource ds = null; static { try { // 如果不想出现 C3P0 的日志信息,把注释去掉就行了 // Logger log = Logger.getLogger("com.mchange"); // log.setLevel(Level.WARNING); ds = new ComboPooledDataSource(); ds.setDriverClass("com.mysql.jdbc.Driver"); ds.setJdbcUrl("jdbc:mysql://localhost:3306/test"); ds.setUser("root"); ds.setPassword("root"); ds.setMaxPoolSize(1); // 设置最大的连接数量 ds.setMinPoolSize(1); // 设置最小的连接数量 } catch (PropertyVetoException e) { e.printStackTrace(); } } public static Connection getConnection() { Connection con = null; try { con = ds.getConnection(); } catch (SQLException e1) { e1.printStackTrace(); } return con; } // C3P0 end }
class DBSleepAvoid extends java.util.TimerTask { public void run() { **.MyDebug.TRACEINFORMATION(this,"run","Send message to each DB connection..."); MyDBConnectionPoolX.checkPools(); } }
import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory; public class ConnectionManager { private static DataSource ds = null; public static Connection getConnection() throws SQLException { if (ConnectionManager.ds == null) { try { ConnectionManager.ds = InitialContext.doLookup( "java:comp/env/jdbc/testdb" ); } catch (NamingException e) { Properties p = new Properties(); p.setProperty( "driverClassName", "com.mysql.jdbc.Driver" );// 你的数据库驱动类 p.setProperty( "maxActive", "4" ); p.setProperty( "maxIdle", "4" ); p.setProperty( "maxWait", "5000" ); p.setProperty( "password", "" ); p.setProperty( "username", "root" ); p.setProperty( "url", "jdbc:mysql://127.0.0.1/forum" );// 你的数据库链接URL try { ConnectionManager.ds = BasicDataSourceFactory.createDataSource( p ); } catch (Exception ex) { } } } return ConnectionManager.ds.getConnection(); } public static void main(String [] args) throws SQLException { Connection conn = ConnectionManager.getConnection(); // TODO:你自己的操作数据库代码 } private ConnectionManager() { } }