JDBCUtil工具类

使用JDBC来连接MySQL数据库,在各个方法中都要添加驱动、建立连接、释放资源等,会造成代码的冗余和复杂,所以将相同部分抽取出来,建立一个JDBCUtil的工具类,从.properties配置文件中读取数据,进行驱动和连接部分的实现,使用时直接调用即可。

package com.thoughtworks.Util;

import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Objects;
import java.util.Properties;

public class JDBCUtil {
    private static String URL;
    private static String USER;
    private static String PASSWORD;
    private static String DRIVER;
    static{
        //读取资源文件,获取相应的值
        try {
            //1.创建Properties集合类
            Properties prop = new Properties();
            //获取src路径下的文件的方式---->ClassLoader类加载器
            URL pathURL = JDBCUtil.class.getClassLoader().getResource("jdbc.properties");
            String path = Objects.requireNonNull(pathURL).getPath();
            //2.加载文件
            prop.load(new FileReader(path));
            //3.获取数据、赋值
            URL = prop.getProperty("url");
            USER = prop.getProperty("user");
            PASSWORD = prop.getProperty("password");
            DRIVER = prop.getProperty("driver");
            //注册驱动
            Class.forName(DRIVER);
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }

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

    public static void releaseSource(ResultSet res, Statement stmt, Connection conn) {
        if(null != res) {
            try {
                res.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        releaseSource(stmt,conn);
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 6,249评论 0 4
  • 一. Java基础部分.................................................
    wy_sure阅读 4,017评论 0 11
  • 1.jdbc简介(本文使用的数据库为MySQL) 1.1)JDBC(Java DataBase Connect...
    无所事事的考拉阅读 1,599评论 0 1
  • 本文主要内容 1、JDBC 2、DBUtils 01JDBC概念和数据库驱动程序 A: JDBC概念和数据库驱动程...
    胜浩_ae28阅读 500评论 0 0
  • JDBC简介 SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。JDBC...
    奋斗的老王阅读 1,639评论 0 51

友情链接更多精彩内容