当前位置: 首页 > 工具软件 > JdbcUtils > 使用案例 >

Java的JDBC的JDBCUtils工具类

何辰沛
2023-12-01

Java的JDBC的JDBCUtils工具类

配置文件,创建一个文件名,文件后缀名需要为"properities",
再创一个java class的文件当作工具类

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

/*
JDBC工具类
*目的:简化书写
*分析:1、注册驱动也抽取
        2、抽取一个方法获取连接对象
            需求:不想传递参数(麻烦),还得保证工具类的通用性
            解决:配置文件,创建一个文件名,文件后缀名需要为"properities"
            driverClass=com.mysql.jdbc.Driver
                url=
                user=
                passwrod=
 */
public class JDBCUtils {
    private static String url;
    private static String user;
    private static String password;
    private static String driver;
    //文件的读取,只需读取一次即可拿到这些值,使用静态代码块
    static{
        //读取文件,获取值
        //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);
        //2.加载文件
        try {
            pro.load(new FileReader(path));
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            pro.load(new FileReader("src/jdbc.properties"));
            //3.获取数据,赋值
            url=pro.getProperty("url");
            user=pro.getProperty("user");
            password=pro.getProperty("password");
            driver=pro.getProperty("driver");
            //4.注册驱动
            Class.forName(driver);
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //获取连接对象
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection("jdbc:mysql:///hsp_db02","root","011012");
    }
    public static void close(ResultSet rs, Statement stm, Connection con){
        //资源释放
        if(stm !=null){
            try {
                stm.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }if(con !=null){
            try {
                con.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }if(rs !=null){
            try {
                rs.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}

展示 效果

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

/*
练习:
JDBC工具的演示
 */
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/*
练习:
查询emp表的数据将其封装成对象,然后装在集合,返回
 */
public class JDBC09 {
    /*
    查询所有emp对像
     */
    public static void main(String[] args) throws SQLException {
        List<Emp> list = new JDBC08().finfAll();
        System.out.println(list);
    }

    public List<Emp> finfAll2() throws SQLException {
        Connection con = null;
        Statement s = null;
        ResultSet rs = null;
        List<Emp> list = null;
        try {
//            //1.注册驱动
//            Class.forName("com.mysql.cj.jdbc.Driver");
//            //2.获取链接
//            con = DriverManager.getConnection("jdbc:mysql:///hsp_db02", "root", "011012");
            con = JDBCUtils.getConnection();
            //3.定义sql语句
            String sql = "select * from emp";
            //4.获取执行sql对象
            s = con.createStatement();
            //5.执行sql语句
            rs = s.executeQuery(sql);
            //6.遍历结果,封装对象,装在集合
            Emp emp = null;
            list = new ArrayList<Emp>();
            while (rs.next()) {
                //获取数据
                int id = rs.getInt("id");
                String name = rs.getString("name");
                int job_id = rs.getInt("job_id");
                double salary = rs.getDouble("salary");
                //创建emp对象,并赋值
                emp = new Emp();
                emp.setId(id);
                emp.setJob_id(job_id);
                emp.setName(name);
                emp.setSalary(salary);

                //装在集合
                list.add(emp);
            }
        } finally {
//            if (con != null) {
//                con.close();
//            }
//        }
//        if (s != null) {
//            s.close();
//        }
//        if (rs != null) {
//            rs.close();
//        }
//        return null;
//    }
            JDBCUtils.close(rs, s, con);
            return null;
        }
    }
}
 类似资料: