掌握ResultSet接口
使用ResultSet接口進行查詢
ResultSet接口
在JDBC操作中,數據庫所有查詢記錄將使用ResultSet進行接收,並使用ResultSet顯示內容。
常用方法:
bool next() 將指針移動到下一行;
getString("columnName") 返回指定列內容。
在操作中,使用statement中的executequery()方法進行數據庫的查詢操作,此方法的返回值就是ResultSet接口。
package 類集; import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.Statement ; import java.sql.ResultSet ; public class ResultSetDemo01{ // 定義MySQL的數據庫驅動程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定義MySQL數據庫的連接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/sys" ; // MySQL數據庫的連接用戶名 public static final String DBUSER = "root" ; // MySQL數據庫的連接密碼 public static final String DBPASS = "aaaaaa" ; public static void main(String args[]) throws Exception { Connection conn = null ; // 數據庫連接 Statement stmt = null ; // 數據庫的操作對象 ResultSet rs = null ; // 保存查詢結果 String sql = "SELECT name,age FROM student" ; Class.forName(DBDRIVER) ; // 加載驅動程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; stmt = conn.createStatement() ; rs = stmt.executeQuery(sql) ; while(rs.next()){ // 依次取出數據 String name = rs.getString("name") ; // 取出name列的內容 int age = rs.getInt("age") ; // 取出age列的內容 System.out.print("姓名:" + name + ";") ; System.out.print("年齡:" + age + ";") ; System.out.println("-----------------------") ; } rs.close() ; ResultSet也要關閉 stmt.close() ; conn.close() ; // 數據庫關閉 } };
輸出結果:
Sun Apr 09 21:10:15 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 姓名:大紅;年齡:35;----------------------- 姓名:大紅;年齡:35;----------------------- 姓名:大紅;年齡:35;-----------------------
以上操作,對於列名過長的取值不是很方便,
此時可以采取順序的編號取得。
package 類集; import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import java.sql.Statement ; import java.sql.ResultSet ; public class ResultSetDemo01{ // 定義MySQL的數據庫驅動程序 public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ; // 定義MySQL數據庫的連接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/sys" ; // MySQL數據庫的連接用戶名 public static final String DBUSER = "root" ; // MySQL數據庫的連接密碼 public static final String DBPASS = "aaaaaa" ; public static void main(String args[]) throws Exception { Connection conn = null ; // 數據庫連接 Statement stmt = null ; // 數據庫的操作對象 ResultSet rs = null ; // 保存查詢結果 String sql = "SELECT name,age FROM student" ; Class.forName(DBDRIVER) ; // 加載驅動程序 conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; stmt = conn.createStatement() ; rs = stmt.executeQuery(sql) ; while(rs.next()){ // 依次取出數據 String name = rs.getString(1) ; // 取出name列的內容 int age = rs.getInt(2) ; // 取出age列的內容 System.out.print("姓名:" + name + ";") ; System.out.print("年齡:" + age + ";") ; System.out.println("-----------------------") ; } rs.close() ; stmt.close() ; conn.close() ; // 數據庫關閉 } };
輸出結果:
Sun Apr 09 21:19:51 CST 2017 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. 姓名:大紅;年齡:35;----------------------- 姓名:大紅;年齡:35;----------------------- 姓名:大紅;年齡:35;-----------------------
綜合來說,使用順序編號更方便
問題:直接使用select * from student不是更簡單嗎?
但是,在開發中不能直接使用*的。因為查詢的時候,不能明確的表示要取的內容是什么,所以開發中,要明確寫出需要查詢的列。