1.properties 配置文件
driver=com.mysql.jdbc.Driver#urlurl=jdbc:mysql://localhost:3306/pabitel#useruser=root#passwordpassword=493656696
2.建一个用来获取连接的类
1 public class DBHelper { 2 private DBHelper(){} 3 private static String url; 4 private static String driver; 5 private static String user; 6 private static String pwd; 7 private static ThreadLocaltl=new ThreadLocal (); 8 static{ 9 try {10 Properties prop=new Properties();11 InputStream is=DBHelper.class.getClassLoader().getResourceAsStream("properties.properties");12 prop.load(is);13 driver=prop.getProperty("driver");14 user=prop.getProperty("user");15 pwd=prop.getProperty("password");16 url=prop.getProperty("url");17 Class.forName(driver);18 } catch (Exception e) {19 e.printStackTrace();20 throw new RuntimeException(e);21 }22 }23 public static Connection getConnection() throws SQLException{24 Connection conn=DriverManager.getConnection(url,user,pwd);25 tl.set(conn);26 return conn;27 }28 public static void closeConnection(){29 Connection conn=tl.get();30 if(conn!=null){31 try {32 conn.close();33 } catch (SQLException e) {34 // TODO Auto-generated catch block35 e.printStackTrace();36 }37 tl.remove();38 }39 }40 }
3.threadlocal的使用
其类似于map,key-value组合,key为线程,value为connection
4.线程池的使用
定义线程池private static BasicDataSource ds;
后续在静态块中设置如下参数
1 ds=new BasicDataSource(); 3 ds.setDriverClassName(prop.getProperty("driver")); 4 ds.setUrl(prop.getProperty("url")); 5 ds.setUsername(prop.getProperty("user")); 6 ds.setPassword(prop.getProperty("psw")); 7 ds.setInitialSize(Integer.parseInt(prop.getProperty("initsize"))); 8 ds.setMaxActive(Integer.parseInt(prop.getProperty("maxactive"))); 9 ds.setMaxWait(Integer.parseInt(prop.getProperty("maxwait")));10 ds.setMinIdle(Integer.parseInt(prop.getProperty("minidle")));11 ds.setMaxIdle(Integer.parseInt(prop.getProperty("maxidle")));
即可用线程池来获取连接。