首页 > 其他分享 >JDBC各个类详解-ResultSet-遍历结果集和JDBC工具类

JDBC各个类详解-ResultSet-遍历结果集和JDBC工具类

时间:2022-11-10 10:55:47浏览次数:51  
标签:遍历 String throwables ResultSet stmt JDBC static res conn

ResultSet-遍历结果集

注意:

使用步骤:

1、游标向下移动一行

2、判断是否有数据

3、获取数据

// 循环判断游标是否是最后一行末尾
while(rs.next()){
       // 获取数据
       int id = rs.getInt(1);
       String name = rs.getDouble(3);
       double balance = rs.getDouble(3);
       System.out.println(id + “---” + name + “---” + balance);
}      

 JDBC工具类

目的:简化书写

分析:

1.注册驱动也抽取

2.抽取一个方法获取连接对象

需求:不想传递参数(麻烦),还得保证工具类的通用性

解决:配置文件

jdbc.properties

url=

user=

password=

3.抽取一个方法释放资源

配置文件

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

工具类:

复制代码
  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.加载文件
            pro.load(new FileReader("src\\main\\resources\\jdbc.properties"));

            // 3.获取数据 赋值
            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();
        }

    }


    /**
     * 获取连接
     *
     * @return 连接对象
     */
    public static Connection getConnection(String url, String user, String password) throws SQLException {
        return DriverManager.getConnection(url, user, password);
    }

    /**
     * 释放资源
     *
     * @param stmt
     * @param conn
     */
    public static void close(Statement stmt, Connection conn) {
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
复制代码

演示工具类:

复制代码
 public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        ResultSet res = null;
        try {
            /* //1.注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 获取Connection对象
            conn = DriverManager.getConnection("jdbc:mysql:///videopractice", "root", "root");*/

            conn = JDBCUtil.getConnection();

            // 定义SQL语句
            String sql = "SELECT * FROM account";
            // 获取执行SQL的对象 statement
            stmt = conn.createStatement();
            // 执行sql 
       // 影响行数  res = stmt.executeQuery(sql); // 处理结果 // 让游标向下移动一行 while (res.next()) { // 获取数据 int id = res.getInt(1); String name = res.getString("name"); double balance = res.getDouble(3); System.out.println(id + "---" + name + "---" + balance); } } catch (SQLException throwables) { throwables.printStackTrace(); } / *finally { if (stmt != null) { try { stmt.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if (res != null) { try { res.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } */ JDBCUtil.close(stmt,conn); }
复制代码

运行结果

标签:遍历,String,throwables,ResultSet,stmt,JDBC,static,res,conn
From: https://www.cnblogs.com/shenziyi/p/16875908.html

相关文章