JDBC WHERE子句條件實例


在本教程將演示如何在JDBC應用程序中,從數據庫表中查詢數據記錄, 在查詢選擇記錄時使用WHERE子句添加其他條件。 在執行以下示例之前,請確保您已經准備好以下操作:

  • 具有數據庫管理員權限,以在給定模式的數據庫表中查詢數據記錄。 要執行以下示例,需要用實際用戶名和密碼替換這里用戶名(username)和密碼(password)。
  • MySQL或數據庫已啟動並運行。

所需步驟

使用JDBC應用程序查詢表中數據記錄需要以下步驟:

  • 導入包:需要包含包含數據庫編程所需的JDBC類的包。 大多數情況下,使用import java.sql.*就足夠了。

  • 注冊JDBC驅動程序:需要初始化驅動程序,以便可以程序中打開數據庫的通信通道。

  • 打開連接:需要使用DriverManager.getConnection()方法來創建一個Connection對象,它表示與數據庫服務器的物理連接。

  • 執行查詢:需要使用類型為Statement的對象來構建和提交SQL語句,以從表中獲取滿足給定條件的記錄。 查詢語句使用WHERE子句來選擇記錄。

  • 清理環境:需要明確地關閉所有數據庫資源,而不依賴於JVM的垃圾收集。

示例代碼

復制以下示例代碼保存到文件:SelectWhereClause.java中,然后編譯並運行如下 -

//STEP 1. Import required packages // See more detail at http://www.yiibai.com/jdbc/ import java.sql.*; public class SelectWhereClause { // JDBC driver name and database URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/jdbc_db"; // Database credentials static final String USER = "root"; static final String PASS = "123456"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ //STEP 2: Register JDBC driver Class.forName("com.mysql.jdbc.Driver"); //STEP 3: Open a connection System.out.println("Connecting to a selected database..."); conn = DriverManager.getConnection(DB_URL, USER, PASS); System.out.println("Connected database successfully..."); //STEP 4: Execute a query System.out.println("Creating statement..."); stmt = conn.createStatement(); // Extract records without any condition. System.out.println("Fetching records without condition..."); String sql = "SELECT id, first, last, age FROM student"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ //Retrieve by column name int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Display values System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } // Select all records having ID equal or greater than 101 System.out.println("Fetching records with condition..."); sql = "SELECT id, first, last, age FROM student" + " WHERE id >= 103 "; rs = stmt.executeQuery(sql); while(rs.next()){ //Retrieve by column name int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Display values System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } rs.close(); }catch(SQLException se){ //Handle errors for JDBC se.printStackTrace(); }catch(Exception e){ //Handle errors for Class.forName e.printStackTrace(); }finally{ //finally block used to close resources try{ if(stmt!=null) conn.close(); }catch(SQLException se){ }// do nothing try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); }//end finally try }//end try System.out.println("Goodbye!"); }//end main }//end JDBCExample 
Java

編譯上面代碼,如下 -

F:\worksp\jdbc> javac -Djava.ext.dirs=F:\worksp\jdbc\libs SelectWhereClause.java
Shell

執行上面代碼,如下 -

## 可先創建表或插入數據 -
## F:\worksp\jdbc> java -Djava.ext.dirs=F:\worksp\jdbc\libs InsertRecords

F:\worksp\jdbc>java -Djava.ext.dirs=F:\worksp\jdbc\libs SelectWhereClause
Connecting to a selected database...
Fri Jun 02 00:22:10 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.
Connected database successfully...
Creating statement...
Fetching records without condition...
ID: 100, Age: 18, First: C++, Last: Li
ID: 101, Age: 25, First: Python, Last: Py
ID: 102, Age: 30, First: Ruby, Last: Ru
ID: 103, Age: 28, First: Java, Last: Ja
Fetching records with condition...
ID: 103, Age: 28, First: Java, Last: Ja
Goodbye!

F:\worksp\jdbc>
Shell

在執行上面語句后,可以看到只有 ID 大於等於 103 的記錄查詢顯示出來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM