学习JDBC时抽取的一个获取链接conn和释放资源的工具类,供之后回顾之用。工具
Properties类继承自Hashtable类而且实现了Map接口,也是使用一种键值对的形式来保存属性集。键和值都是字符串类型。学习
/** * JDBC的工具类 * 做用:获取链接、释放资源 * */ public class JDBCUtil { private JDBCUtil(){} private static JDBCUtil instance = null; private static Properties p = null; //静态代码块,调用静态方法时运行获取Properties对象 static{ try { instance = new JDBCUtil(); //获得当前ClassPath的绝对URI路径。经过当前线程获取类加载器,读取指定资源的输入流 InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"); p = new Properties(); p.load(is);//加载流资源 Class.forName(p.getProperty("driverClassName")); } catch (Exception e) { e.printStackTrace(); } } public static JDBCUtil newInstance(){ return instance; } //获取链接对象 public Connection getConn(){ try { return DriverManager.getConnection(p.getProperty("url"),p.getProperty("username"), p.getProperty("password")); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } //释放资源(资源、(预)加载对象、链接对象) public void release(Statement st,ResultSet rs,Connection conn){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(st!=null){ try { st.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }