JDBC,Java连接数据库的工具

4 篇文章 0 订阅

要求:
java连接数据库的工具集

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
/*
* JDBCUtiles工具,专门用来连接数据库的工具,以此来提高代码的复用性。
* 包含:驱动加载,获得连接,资源释放等功能
* */
public class JDBCUtils {
    //属性文件变量。
    //加载驱动需要利用反射机制获取的class类名。
    private static String driverClassName = null;
    //连接数据库的url
    private static String url = null;
    //数据库用来登录的用户名
    private static String user = null;
    //数据库用来登录的密码
    private static String password = null;
    //获得连接后的Connection对象
    Connection con = null;

    //静态代码块,用来加载属性文件中的内容
    static{
        //获取属性对象
        Properties properties = new Properties();
        try {
            //指定属性文件,把文件加载进属性对象
            properties.load(new FileInputStream("idea_test\\src\\db.properties"));
            //获取单个属性
            driverClassName = properties.getProperty("driverClassName");
            url = properties.getProperty("url");
            user = properties.getProperty("user");
            password = properties.getProperty("password");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //注册并加载驱动
    private void loadDriver(){
        try {
//            Class.forName("com.mysql.cj.jdbc.Driver");
            //以反射的方式加载Driver驱动,因为加载驱动的同时会创建Driver对象,而
            //driver类中有一段静态代码块,能够在加载driver驱动的同时完成驱动注册,
            //这样我们就没必要再调用DriverManager.registerDriver(new Driver())
            // 去再次注册驱动了。
            Class.forName(driverClassName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //此方法用来获取连接,返回Connection对象。
    public Connection getConnection(){
        //加载驱动
        loadDriver();
        try {
            //获得连接对象
            con = DriverManager.getConnection(url,user,password);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        //返回连接对象
        return con;
    }

    //释放资源(插入,增删改) 采用方法重载的方式,对不同情况下的资源进行释放。
    public void relResource(Connection con, Statement statement){
        if(con!=null){
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            con=null;
        }
        if(statement!=null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            statement=null;
        }
    }
    public void relResource(Connection con, PreparedStatement statement){
        if(con!=null){
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            con=null;
        }
        if(statement!=null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            statement=null;
        }
    }

    //释放资源(查询语句)
    public void relResource(Connection con, Statement statement, ResultSet resultSet){
        if(con!=null){
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            con=null;
        }
        if(statement!=null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            statement=null;
        }
        if(resultSet!=null){
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            statement = null;
        }
    }
    public void relResource(Connection con, PreparedStatement statement, ResultSet resultSet){
        if(con!=null){
            try {
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            con=null;
        }
        if(statement!=null){
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            statement=null;
        }
        if(resultSet!=null){
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            statement = null;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值