-
目的:简化书写
-
分析:
-
注册驱动的抽取
-
抽取一个方法获取连接对象
-
需求:不想传递参数,同时保证工具类的通用性
-
解决:配置文件
-
Jdbc.properties
- Url=
- User=
- Password=
-
-
-
抽取一个方法释放资源
-
-
代码实现:
public class JDBCUtils { Private static String url ; Private static String username; Private static String password; Private static String driver; /** *文件的读取,只需要读一次即可拿到这些值。使用静态代码块 */ static{ //读取资源文件,获取值。 try{ //1.创建Properties集合类 Properties Pro = new properties(); //获取src路径下的文件方式--->ClassLoader 类加载器 ClassLoader classloader = JDBCUtils.class.getClassLoader(); URL res = classLoader .getResource("jdbc.properties"); String path = res.getPath(); System .out .println(path); //加载文件 pro.load(new FieldReader(path)); //获取数据,赋值 url = pro.getProperty("url"); user = pro.getProperty("user"); password = pro.getProperty("password"); driver = pro.getProperty("driver"); //注册驱动 Class.forName(driver); }catch(IOException e){ e.printStackTrace(); } }catch(ClassNotFoundException e){ e.printStackTrace(); } /** *获取连接 */ public static Connection getConnection()throw SQLException{ return DriverManager.getConnection(url,user,password); } /** *释放资源 */ public static void close (ResultSet rs, Statement stmt ,Connection conn) { If (rs!= NULL){ try{ rs.close(); }catch(SQLException e){ e.printStackTrace(); } } If (stmt != NULL){ try{ stmt.close(); }catch(SQLException e){ e.printStackTrace(); } } If (conn != NULL){ try{ conn .close(); }catch(SQLException e){ e.printStackTrace(); } } } } }