连接池之DruidUtil

package dbcp;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;


public class DruidUtil {

	private static DataSource ds = null;
	static {
		try {
			Properties p = new Properties();
			p.load(Thread.currentThread().getContextClassLoader()
					.getResourceAsStream("druid.properties"));
			// 创建DataSource对象
			ds = DruidDataSourceFactory.createDataSource(p);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public static Connection getConn() {
		try {
			return ds.getConnection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	
	public static void close(Connection conn, Statement st, ResultSet rs) {
		try {
			if(rs != null) {
				rs.close();
			}
		} catch (Exception e) {
		} finally {
			try {
				if(st != null) {
					st.close();
				}
			} catch (Exception e2) {
			} finally {
				try {
					if(conn != null) {
						conn.close();
					}
				} catch (Exception e3) {
				}
			}
		}
	}
}

  

测试:

package dbcp;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;
import org.junit.Test;

// 使用DBCP连接池
public class DBCPTest {
	
	public DataSource getDataSource() {
		// 创建连接对象
		BasicDataSource ds = new BasicDataSource();
		// 设置连接数据库的四要素
		ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
		ds.setUrl("jdbc:mysql://localhost:3306/jdbcdemo?useUnicode=true&characterEncoding=utf-8&useSSL=false&&serverTimezone=GMT");
		ds.setUsername("root");
		ds.setPassword("admin");
		ds.setMaxActive(5);		// 最大连接数
		return ds;
	}

	@Test
	public void test1() throws Exception {
		//DataSource ds = this.getDataSource();
		//Connection conn = ds.getConnection();
		Connection conn = DruidUtil.getConn();
		PreparedStatement ps = conn.prepareStatement("SELECT * FROM t_student");
		ResultSet rs = ps.executeQuery();
		while(rs.next()) {
			System.out.println(rs.getLong("id"));
		}
	}
}

  

配置文件

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbcdemo?useUnicode=true&characterEncoding=utf-8&useSSL=false&&serverTimezone=GMT
username=root
password=admin
maxActive=10

validationQuery:SELECT 1
testWhileIdle:true
testOnBorrow:false
testOnReturn:false

  

posted @ 2019-07-16 21:54  青衫客36  阅读(1014)  评论(0编辑  收藏  举报