zoukankan      html  css  js  c++  java
  • JDBC之Query查询操作

    JDBC之Query查询操作

    首先我们来想,每次查询数据库时,每次都是一条或多条记录集,而为了能够临时的用Java存储临时表记录集,就需要用到ResultSet 类集合

    ResultSet 数据结果集
    概念:
    • 在执行查询SQL语句之后,存放查询到的结果集数据
    • 接收结果集: ResultSet rs = statement.executeQuery(sql);

    注意:

    • 作用就是完成了查询结果的存储功能,而且只能读去一次,不能够来回的滚动读取。
    遍历ResultSet集合
    • ResultSet以表结构进行临时结果的存储,通过JDBC API将其中数据进行依次获取
    • getXxx(“列名”)方法可以获取的类型有8大基本数据类型和引用类型,列名就是所查询表的对应列名。
      这几个方法,通常联合while循环使用
    通过JDBC执行 查询Read
    
        public class TestQuery{
            public static void main(String[] args) {
                try {
                    Class.forName("com.mysql.jdbc.Driver");
                    String url = "jdbc:mysql://localhost:3306/gp2002";
                    String user = "root";
                    String password = "root";
                    Connection connection = DriverManager.getConnection(url, user, password);
                    PreparedStatement preparedStatement = connection.prepareStatement();
        
                    // 查询语句
              String sql = "select sno, name, password, gender, born, address from student;";
        
        二选一:	// 获得结果集,处理结果集,有两种方式,只能出现一种,建议采用第二种
                    ResultSet resultSet = preparedStatement .executeQuery(sql);
        
        处理方式一:  // 1、根据表的列名字获取对应的值
                    while (resultSet.next()) {
                        int sno = resultSet.getInt("sno");
                        String name = resultSet.getString("name");
                        String psd = resultSet.getString("password");
                        String gender = resultSet.getString("gender");
                        Date born = resultSet.getDate("born");
                        String address = resultSet.getString("address");
                        System.out.println(sno + "	" + name + "	" + psd + "	" + 
                                gender + "	" + born + "	" + address);
                    }
                    
                    resultSet.close();
                    preparedStatement .close();
                    connection.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    

    可以用下述while循环 的方式代替上述的while循环,但是这样就不能很好的知道表的列名。所代表的意思,所以尽量采用第一种。

        处理方式二:  // 2、根据表中列所在的index进行获取对应的值 下标从1开始
                    while (resultSet.next()){
                        int sno = resultSet.getInt(1);
                        String name = resultSet.getString(2);
                        String psd = resultSet.getString(3);
                        String gender = resultSet.getString(4);
                        Date born = resultSet.getDate(5);
                        String address = resultSet.getString(6);
                        System.out.println(sno + "	" + name + "	" + psd + "	" + 
                                gender + "	" + born + "	" + address);
                    }
    
  • 相关阅读:
    python爬虫(二)_HTTP的请求和响应
    python迭代器
    矩阵快速幂
    hdu 2256 Problem of Precision
    牛客练习赛17 ABD
    hdu 1575 Tr A
    hdu 1757 矩阵快速幂
    51nod 1402最大值
    51nod 1393 0和1相等串
    勤奋的杨老师
  • 原文地址:https://www.cnblogs.com/HW-CJY/p/13751679.html
Copyright © 2011-2022 走看看