⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connectionsource.java

📁 java编写的数据库连接池,内有详细的使用说明
💻 JAVA
字号:
package db;

import org.apache.commons.dbcp.BasicDataSource;   
import org.apache.commons.dbcp.BasicDataSourceFactory;   
  
import java.sql.SQLException;   
import java.sql.Connection;   
import java.util.Properties;  

public class ConnectionSource {

	 private static BasicDataSource dataSource = null;   
	  
	    public ConnectionSource() {   
	    }   
	  
	    /**
	     * testOnBorrow、testOnReturn、testWhileIdle,他们的意思是当是取得连接、返回连接或连接空闲时是否进行有效性验证(即是否还和数据库连通的),默认都为false。
	     * 所以当数据库连接因为某种原因断掉后,再从连接池中取得的连接,实际上可能是无效的连接了,所以,为了确保取得的连接是有效的, 可以把把这些属性设为true。
	     * 当进行校验时,需要另一个参数:validationQuery,对oracle来说,可以是:SELECT COUNT(*) FROM DUAL,实际上就是个简单的SQL语句,验证时,就是把这个SQL语句在数据库上跑一下而已,如果连接正常的,当然就有结果返回了。 
		 * 还有2个参数:timeBetweenEvictionRunsMillis 和 minEvictableIdleTimeMillis, 他们两个配合,可以持续更新连接池中的连接对象,当timeBetweenEvictionRunsMillis 大于0时,每过timeBetweenEvictionRunsMillis 时间,就会启动一个线程,校验连接池中闲置时间超过minEvictableIdleTimeMillis的连接对象。 
	     *
	     */
	    public static void init() {   
	  
	        if (dataSource != null) {   
	            try {   
	                dataSource.close();   
	            } catch (Exception e) {   
	                //   
	            }   
	            dataSource = null;   
	        }   
	  
	        try {   
	            Properties p = new Properties();   
	            p.setProperty("driverClassName", "org.gjt.mm.mysql.Driver");   
	            p.setProperty("url", "jdbc:mysql://localhost:3306/collectinfo");   
	            p.setProperty("password", "root");   
	            p.setProperty("username", "root");   
	            p.setProperty("maxActive", "30");   
	            p.setProperty("maxIdle", "10");   
	            p.setProperty("maxWait", "1000");   
	            p.setProperty("removeAbandoned", "false");   
	            p.setProperty("removeAbandonedTimeout", "120");   
	            p.setProperty("testOnBorrow", "true");    
	            p.setProperty("logAbandoned", "true");   
	  
	            dataSource = (BasicDataSource) BasicDataSourceFactory.createDataSource(p);   
	  
	        } catch (Exception e) {   
	            //   
	        }   
	    }   
	  
	  
	    public static synchronized Connection getConnection() throws SQLException {   
	        if (dataSource == null) {   
	            init();   
	        }   
	        Connection conn = null;   
	        if (dataSource != null) {   
	            conn = dataSource.getConnection();   
	        }   
	        return conn;   
	    }   

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -