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 + "\t" + name + "\t" + psd + "\t" + 
                            gender + "\t" + born + "\t" + 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 + "\t" + name + "\t" + psd + "\t" + 
                            gender + "\t" + born + "\t" + address);
                }
posted @ 2020-08-20 22:48  小熊猫陈江一  阅读(903)  评论(0编辑  收藏  举报