package com.ctl.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DButils {
private static String driver;
private static String url;
private static String username;
private static String password;
private static Connection conn;
private static ThreadLocal<Connection> connHolder=new ThreadLocal<Connection>();
static{
driver=ConfigUtils.getType("mysql.driver");
url=ConfigUtils.getType("mysql.url");
username=ConfigUtils.getType("mysql.username");
password=ConfigUtils.getType("mysql.password");
}
public static Connection getConnection() throws SQLException, ClassNotFoundException{
conn=connHolder.get();
if(conn==null||conn.isClosed()){
Class.forName(driver);
conn=DriverManager.getConnection(url,username,password);
conn.setAutoCommit(false);
connHolder.set(conn);
}
return conn;
}
public static void close() throws SQLException{
conn.close();
connHolder.set(null);
}
}
这样多个不同的应用程序可以同时获得到一个connection
如果将SocketServer 放入线程池 那么在同一个机器上运行的客户端就可以获取同一个 Socketserver 对象