Java封装JDBC通用工具类

news/2024/5/19 2:10:07 标签: java, 开发语言, jdbc, jdbc工具类

Java封装通用工具类

  • 一、JDBC配置类
  • 二、配置文件
  • 三、通用工具类

一、JDBC配置类

java">import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

public class Config {
    private static String username;
    private static String password;
    private static String url;
    private static String driverClass;

    static{
        Properties prop = new Properties();
        try {
            //读取配置文件
            InputStream in = new FileInputStream("JavaDemo10/config/jdbc.properties");
            //加载配置文件内容
            prop.load(in);
            // acquire the properties from file
            username = prop.getProperty("username");
            password = prop.getProperty("password");
            url = prop.getProperty("url");
            driverClass = prop.getProperty("driverClass");
            // register the driver
            if(driverClass != null && url != null && username != null && password != null){
                //加载驱动
                Class.forName(driverClass);
            }
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } catch (ClassNotFoundException e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * @description:  获取连接
     * @param
     * @return: java.sql.Connection
     */
    public static Connection getConnection() throws SQLException {
        Connection con = null;
        try{
            con = DriverManager.getConnection(url,username,password);
        }catch (Exception e){
            e.printStackTrace();
        }
        return con;
    }
    /**
     * @description:  释放资源
     * @param con
     * @param stat
     * @param res
     */

    public static void close(Connection con, Statement stat , ResultSet res) throws SQLException {
        if(con != null){
            con.close();
        }
        if (stat != null) {
            stat.close();
        }
        if (res != null) {
            res.close();
        }
    }
}

二、配置文件

#mysql8驱动
driverClass = com.mysql.cj.jdbc.Driver
#用户名
username = root
#数据库密码
password = 123456
#数据库url
url = jdbc:mysql://localhost:3306/databaseName

三、通用工具类

java">import java.sql.*;

/**
 * @Description: jdbc封装工具类
 * @Version: 1.0
 */
public class JdbcUtils {
    private static Connection con = null;
    private static Statement st = null;
    private static ResultSet rs = null;
    private static PreparedStatement ps = null;
    /**
     * @description: 通用更新封装
     * @param sql    sql语句
     * @param params   传入多参,也可以以数组形式传入
     * @return: java.sql.ResultSet
     */

    public static int update(String sql,Object ...params) throws SQLException {
        int flag = 0;
        try {
            con = Config.getConnection();
            ps = con.prepareStatement(sql);
            for (int i = 0; i < params.length; i++) {
                ps.setObject(i+1,params[i]);
            }
            flag = ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            Config.close(con,ps,null);
        }
        return flag;
    }

    /**
     * @description:  通用查询
     * @param sql
     * @param params
     * @return: java.sql.ResultSet
     */
    public static ResultSet query(String sql,Object ...params) throws SQLException {
        try {
            con = Config.getConnection();
            ps = con.prepareStatement(sql);
            for (int i = 0; i < params.length; i++) {
                ps.setObject(i + 1, params[i]);
            }
            rs = ps.executeQuery();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return rs;

    }
}


http://www.niftyadmin.cn/n/5101110.html

相关文章

rust 全局变量

文章目录 编译期初始化静态常量静态变量原子类型 运行期初始化lazy_staticBox::leak从函数中返回全局变量 标准库中的 OnceCell 编译期初始化 静态常量 const MAX_ID: usize usize::MAX / 2; fn main() {println!("用户ID允许的最大值是{}",MAX_ID); }关键字是co…

Nginx配置微服务避免actuator暴露

微服务一般在扫漏洞的情况下&#xff0c;需要屏蔽actuator健康检查 # 避免actuator暴露 if ($request_uri ~ "/actuator") { return 403; }

面对纷繁复杂的低代码和无代码产品,开发者该如何选择?

凭借着革命性的生产力优势&#xff0c;低代码技术火爆了整个IT圈。面对纷繁复杂的低代码和无代码产品&#xff0c;开发者该如何选择&#xff1f; 在研究低代码平台的年数上&#xff0c;本人已有3年&#xff0c;也算是个低代码资深用户了&#xff0c;很多企业面临低代码选型上的…

【周末闲谈】VR新视界,“眼”见未来

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️周末闲谈】 系列目录 ✨第一周 二进制VS三进制 ✨第二周 文心一言&#xff0c;模仿还是超越&#xff1f; ✨第二周 畅想AR 文章目录 系列目录前言虚拟现实(VR)技术虚拟现实技术的原理虚拟现实技术发…

Junit+Mockito 快速测试你的程序

什么是mockito 是什么 是一个java语言下的一单元测试框架 使用场景 在资源环境不完善的情况下也可进行单元测试&#xff0c;确保开发进度与程序的正确性 在整个项目中通常依赖多个部分组成如&#xff1a;数据库、缓存数据库、第三方系统等等。。在团队并发开发过程中&…

程序开发中表示密码时使用 password 还是 passcode?

password 和 passcode 是两个经常在计算机和网络安全中使用的术语&#xff0c;两者都是用于身份验证的机制&#xff0c;但它们之间还是存在一些区别的。 password password 通常是指用户自己设置的一串字符&#xff0c;用于保护自己的账户安全。密码通常是静态的&#xff0c;…

【C++初阶(三)引用与内联函数】

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

矩阵键盘模拟密码锁

/*----------------------------------------------- 内容&#xff1a;模拟密码锁&#xff0c;密码固化到ROM 不能通过按键输入更改 ------------------------------------------------*/ #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0c;头文…