抽取JDBC工具类 : JDBCUtils

JDBC工具类

  • 分析:
    1. 注册驱动也抽取
    2. 抽取一个方法获取连接对象
    * 需求:不想传递参数(麻烦),还得保证工具类的通用性。
    * 解决:配置文件
    jdbc.properties
    url=
    user=
    password=

      3. 抽取一个方法释放资源
    
    • 代码实现:
      public class JDBCUtils {
      private static String url;
      private static String user;
      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);///D:/IdeaProjects/itcast/out/production/day04_jdbc/jdbc.properties
         //2. 加载文件
        // pro.load(new FileReader("D:\\IdeaProjects\\itcast\\day04_jdbc\\src\\jdbc.properties"));
         pro.load(new FileReader(path));
        
         //3. 获取数据,赋值
         url = pro.getProperty("url");
         user = pro.getProperty("user");
         password = pro.getProperty("password");
         driver = pro.getProperty("driver");
         //4. 注册驱动
         Class.forName(driver);
        

        } catch (IOException e) {
        e.printStackTrace();
        } catch (ClassNotFoundException e) {
        e.printStackTrace();
        }
        }

      /**

      • 获取连接

      • @return 连接对象
        */
        public static Connection getConnection() throws SQLException {

        return DriverManager.getConnection(url, user, password);
        }

      /**

      • 释放资源

      • @param stmt

      • @param conn
        */
        public static void close(Statement stmt,Connection conn){
        if( stmt != null){
        try {
        stmt.close();
        } catch (SQLException e) {
        e.printStackTrace();
        }
        }

        if( conn != null){
        try {
        conn.close();
        } catch (SQLException e) {
        e.printStackTrace();
        }
        }
        }

      /**

      • 释放资源

      • @param stmt

      • @param conn
        */
        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();
        }
        }
        }

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值