连接池代码:
package com.mysqltest;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Properties;
public class ConnectionPool {
public static int size;
public static int actualSize;
public static Connection conn;
public static String driver;
public static String url;
public static String username;
public static String password;
public static ArrayList<Connection> connList;
static{
try {
Properties prop = new Properties();
InputStream inputstream = ClassLoader.getSystemResourceAsStream("dataConfig.properties");
prop.load(inputstream);
driver = prop.getProperty("dbdriver");
url = prop.getProperty("url");
username = prop.getProperty("username");
password = prop.getProperty("password");
size = Integer.parseInt(prop.getProperty("size"));
actualSize = 0;
connList = new ArrayList<Connection>();
} catch (IOException e) {
e.printStackTrace();
}
}
//取得连接
public static synchronized Connection getConnection(){
if(actualSize > size){
return null;
}
else{
if(connList.size() == 0){
try {
Class.forName(driver).newInstance();
Connection conn = DriverManager.getConnection(url, username, password);
actualSize++;
return conn;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
else{
Connection conn = connList.remove(0);
actualSize++;
return conn;
}
}
}
//将连接放回连接池
public static synchronized void setConnection(Connection conn){
connList.add(conn);
actualSize--;
}
//关闭所有连接
public static synchronized void connClose(){
for(Connection conn: connList){
try {
conn.close();
//connList.remove(conn);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
actualSize = 0;
}
}
配置文件:
dbdriver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost/testone?characterEncoding=UTF-8
username=root
password=1234
size=5