不廢話,先上代碼,再上解釋說明
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\t 用戶名\t 密碼 \t 年齡\t 性別");//其中\t相當於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+"\t"+username+"\t"+password+"\t"+age+"\t"+ 34 sex+"\t"); 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(參數);參數既可以是列的名稱還可以是第幾列的數字。