首页 > 其他分享 >Jdbc封装工具

Jdbc封装工具

时间:2023-09-21 18:05:23浏览次数:43  
标签:Jdbc 封装 rs try printStackTrace catch 工具 null conn

package jdbcutils;

import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;

//释放资源
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();
            //2.加载文件
            //获取src路径下的文件的方式----》ClassLoader类加载器
            ClassLoader classLoader = JdbcUtils.class.getClassLoader();
            URL res = classLoader.getResource("Jdbc.properties");
            String path = res.getPath();
            System.out.println(path);
            pro.load(new FileReader(path));
//            pro.load(new FileReader("src/jdbcutils/jdbc.properties"));
            //获取数据,赋值
            url = pro.getProperty("url");
            user = pro.getProperty("user");
            password = pro.getProperty("password");
            driver = pro.getProperty("driver");
            //4.注册驱动
            try {
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //获取连接,返回连接对象。
    public static Connection getConnection() throws 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();
            }
        }

    }
}

url=jdbc:mysql:///test 
user=root
password=root
driver=com.mysql.jdbc.Driver

package jdbcutils;

import jdbcutils.JdbcUtils;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class JdbcEmp {
    public static void main(String[] args) {
        List<Emp1> all = new JdbcEmp().findAll();
        System.out.println(all);
        System.out.println(all.size());
    }
    public List<Emp1> findAll(){
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        List<Emp1> list = null;
        try {
            //1.注册驱动
//            try {
//                Class.forName("com.mysql.jdbc.Driver");
//            } catch (ClassNotFoundException e) {
//                e.printStackTrace();
//            }
//            //获取数据库连接对象
//            conn= DriverManager.getConnection("jdbc:mysql:///test", "root", "123456");
            conn = JdbcUtils.getConnection();
            //定义sql语句
            String sql = "select * from class";
            //获取执行sql对象
            stmt = conn.createStatement();
            //执行sql
            rs = stmt.executeQuery(sql);
            Emp1 emp = null;
            list = new ArrayList<Emp1>();
            while (rs.next()){
                int id = rs.getInt("id");
                String sname = rs.getString("sname");
                String company = rs.getString("company");
                double salary = rs.getDouble("salary");
                int fanbu = rs.getInt("fanbu");
                emp = new Emp1();
                emp.setId(id);
                emp.setSname(sname);
                emp.setCompany(company);
                emp.setSalary(salary);
                emp.setFanbu(fanbu);


                list.add(emp);

            }
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
//            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();
//                }
//            }
            JdbcUtils.close(rs,stmt,conn);

        }
        return list;
    }
}



标签:Jdbc,封装,rs,try,printStackTrace,catch,工具,null,conn
From: https://blog.51cto.com/u_16082673/7555755

相关文章

  • Linux持续学习者的必备工具:文本处理神器awk
    Linux持续学习者的必备工具:文本处理神器awk原创 运维家 运维家 2023-09-0215:09 发表于北京收录于合集#awk1个#linux52个引言作为一名Linux持续学习者,我们经常需要处理各种各样的文本文件,例如日志文件、配置文件等。而对于大规模的文本数据,手动处理往往效率......
  • NET6/Framework 封装邮件发送纯文本/HTML/HTML+图片/附件
    NugetRuntime:Net6MailKit4.2.0MimeKit4.2.0发送纯文本{varbodyBuilder=newBodyBuilder();bodyBuilder.TextBody="这是一封纯文本邮件";message.Body=bodyBuilder.ToMessageBody();}{vartextPart=newTextPart("plain")......
  • 全栈性能测试工具:RunnerGo
    随着自动化测试技术的不断进步,自动化测试已成为企业级应用的重要组成部分。然而,传统的性能测试工具往往复杂、繁琐,让企业陷入了两难的境地。软件测试正逐渐从手动测试向自动化测试转变,各种自动化测试工具和框架层出不穷,极大地提高了测试效率和质量。近年来出现的敏捷开发方法使得......
  • 全栈性能测试工具:RunnerGo
    随着自动化测试技术的不断进步,自动化测试已成为企业级应用的重要组成部分。然而,传统的性能测试工具往往复杂、繁琐,让企业陷入了两难的境地。软件测试正逐渐从手动测试向自动化测试转变,各种自动化测试工具和框架层出不穷,极大地提高了测试效率和质量。近年来出现的敏捷开发方法使得软......
  • js,格式化long类型日期封装
    /***扩展date函数*author:c3gen*/Date.prototype.format=function(format){varo={"M+":this.getMonth()+1,"d+":this.getDate(),"h+":this.getHours(),"m+":......
  • MySQL高级13-MySQL管理工具
    一、系统数据库MySQL数据库安装完成后,自带了四个数据库:mysql数据库:存储MySQL服务器正常运行所需要的各种信息如时区、主从、用户、权限等infomation_schema:提供了访问数据库元数据的各种表和视图,包含数据库、表、字段类型及访问权限等performance_schema:为MySQL服务器运......
  • java通过jdbc复制表数据实现备份
    importorg.apache.commons.lang3.StringUtils;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importjava.sql.*;@Servicepublicclass......
  • 报表导出工具
    目录示例一示例二示例三示例一依赖<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.5</version></dependency><dependency><groupId>org.apache.poi<......
  • 开发工具安装与基本环境配置
    安装链接:https://pan.baidu.com/s/1klgouPWrlGQ7qatqc2PjKA?pwd=6894此链接已包含Python,Pycharm,MySql,Navicat,VsCode等开发工具与相应的安装教程。Python安装与配置第一步:在分享的百度网盘链接中下载Python安装包,也可以到官网上下载。第二步:双击Python安装包![](https:......
  • Restful API 接口测试工具 HTTP Client
    HTTPClient软件项目开发有很多RESTfulAPI接口需要运行来验证效果,所以急需一款高效的接口测试工具。可能大家用的比较多的是swagger或者postman,这2个确实不错,不过这里我给大家推荐一种更简单的接口测试工具。这款工具就是idea中的自带的:HTTPClient,这款工具特别好用,主......