不废话,先上代码,再上解释说明
1 package com.ningmeng; 2 3 import java.sql.*; 4 /** 5 * 1:获取查询结果集 6 * @author biexiansheng 7 * 8 */ 9 public class Test03 { 10 11 public static void main(String[] args) { 12 try { 13 Class.forName("com.mysql.jdbc.Driver"); 14 System.out.println("加载数据库驱动成功"); 15 String url="jdbc:mysql://localhost:3306/test";//声明数据库test的url 16 String user="root";//数据库账号 17 String pass="123456";//数据库密码 18 //建立数据库连接,获得连接对象conn 19 Connection conn=DriverManager.getConnection(url,user,pass); 20 System.out.println("数据库连接成功"); 21 Statement stmt=conn.createStatement();//创建一个Statement对象 22 String sql="select * from users";//生成一条sql语句 23 ResultSet rs=stmt.executeQuery(sql);//执行查询,把查询结果赋值给结果集对象 24 int id,age,sex;//声明3个变量分别为id,age,sex 25 String username,password;//声明2个变量分别为用户名,密码 26 System.out.println("id 用户名 密码 年龄 性别");//其中 相当于8个空格 27 while(rs.next()){//遍历结果集 28 id=rs.getInt("id");//获得id 29 username=rs.getString(2);// 30 password=rs.getString("password");// 31 age=rs.getInt(4);// 32 sex=rs.getInt(5);// 33 System.out.println(id+" "+username+" "+password+" "+age+" "+ 34 sex+" "); 35 } 36 System.out.println("获得查询结果集"); 37 conn.close(); 38 System.out.println("关闭数据库连接对象"); 39 } catch (ClassNotFoundException e) { 40 // TODO Auto-generated catch block 41 e.printStackTrace(); 42 }//加载数据库驱动 43 catch (SQLException e) { 44 // TODO Auto-generated catch block 45 e.printStackTrace(); 46 } 47 48 49 } 50 }
结果如下所示
1:Result接口类似于一个临时表,用来暂时存放数据库查询操作所获得的结果集。
2:PreparedStatement接口中的excuteQuery()方法,在此PreparedStatement对象执行sql查询语句,返回结果为查询结果集Result对象
3:next()将指针向下移一行
4:ResultSet对象的getXXX()方法可获取查询结果集中数据。由于ResultSet中保存的数据是表的形式,因此可通过使用getXXX()方法指定列的序号与列的名称。
id=rs.getInt("id");//获得id
username=rs.getString(2);//
password=rs.getString("password");//
age=rs.getInt(4);//
sex=rs.getInt(5);//
仔细体会就可以明白,getXXX(参数);参数既可以是列的名称还可以是第几列的数字。