实现一个链接JDBC的工具类
package JdbcUtil;
import java.sql.*;
import java.util.*;
import java.io.*;
public class JdbcUtil {
private static Properties env;
static{
InputStream is = null;
try {
env = new Properties();
//InputStream is = new FileInputStream("F:/eclipse-workspace/JDBC/src/JdbcUtil/config.properties");
is = JdbcUtil.class.getResourceAsStream("/config.properties");
env.load(is);
System.out.println("get config info OK");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new ExceptionInInitializerError(e); //必须是这个异常才能抛出
} finally{
if(is != null) try{is.close();}catch(Exception e){}
}
}
private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>(); //确保多线程时一个线程一个connection
public static Connection getConnection(){
try{
Connection conn = tl.get();
if(conn == null)
{
Class.forName(env.getProperty("driver"));
String url = env.getProperty("url");
String username = env.getProperty("username");
String password = env.getProperty("password");
conn = DriverManager.getConnection(url,username,password);
tl.set(conn);
}
return conn;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
public static void close(ResultSet rs,Statement stm,Connection conn){
if(rs!=null) try{ rs.close(); }catch(Exception e){}
if(stm!=null) try{ stm.close(); }catch(Exception e){}
if(conn!=null) try{ conn.close(); tl.remove(); }catch(Exception e){}
}
/*public static void main(String[] args){
try {
Connection conn = JdbcUtil.getConnection();
if(conn != null){
System.out.println("db connected");
conn.close();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}*/
}