- JDBC 教程
- JDBC - 首頁
- JDBC - 簡介
- JDBC - SQL 語法
- JDBC - 環境配置
- JDBC - 示例程式碼
- JDBC - 驅動程式型別
- JDBC - 連線
- JDBC - 語句
- JDBC - 結果集
- JDBC - 資料型別
- JDBC - 事務
- JDBC - 異常處理
- JDBC - 批處理
- JDBC - 儲存過程
- JDBC - 流式資料
- JDBC - RowSet
- JDBC - 複製資料庫
- JDBC - ACID 屬性
- JDBC - 連線池
- JDBC 示例
- JDBC - 建立資料庫
- JDBC - 選擇資料庫
- JDBC - 刪除資料庫
- JDBC - 建立表
- JDBC - 刪除表
- JDBC - 插入記錄
- JDBC - 查詢記錄
- JDBC - 更新記錄
- JDBC - 刪除記錄
- JDBC - WHERE 子句
- JDBC - LIKE 子句
- JDBC - 資料排序
- JDBC 有用資源
- JDBC - 常見問題解答
- JDBC - 快速指南
- JDBC - 有用資源
- JDBC - 討論
- 有用資源 - Java 教程
JDBC - LIKE 子句
本章提供使用 JDBC 應用程式從表中選擇記錄的示例。這將使用 LIKE 子句新增附加條件,以便從表中選擇記錄。在執行以下示例之前,請確保已完成以下步驟:
要執行以下示例,您可以將使用者名稱和密碼替換為您實際的使用者名稱和密碼。
您的 MySQL 或您正在使用的任何資料庫正在執行。
所需步驟
使用 JDBC 應用程式建立新資料庫需要以下步驟:
匯入包 - 需要包含包含資料庫程式設計所需的 JDBC 類的包。大多數情況下,使用import java.sql.*就足夠了。
開啟連線 - 需要使用DriverManager.getConnection()方法建立一個 Connection 物件,該物件表示與資料庫伺服器的物理連線。
執行查詢 - 需要使用 Statement 型別物件來構建和提交 SQL 語句,以獲取滿足給定條件的表中的記錄。此查詢使用LIKE子句選擇記錄,以選擇所有名字以“za”開頭的學生。
清理環境 - try with resources 會自動關閉資源。
示例:從表中選擇記錄
在此示例中,我們有四個靜態字串,包含資料庫連線 URL、使用者名稱、密碼和 SELECT 查詢。現在使用 DriverManager.getConnection() 方法,我們準備了一個數據庫連線。連線準備就緒後,我們使用 createStatement() 方法準備了一個 Statement 物件。下一步,我們透過呼叫 statement.executeQuery() 方法在 REGISTRATION 表上準備並執行了一個查詢,其中所有記錄都被提取並存儲在 ResultSet 物件中。ResultSet 被迭代並列印所有記錄。
接下來,我們準備了一個帶有 LIKE 子句的 SQL 查詢,以獲取名字包含“za”的結果。使用 statement.executeQuery() 方法執行查詢,其中相關的記錄被提取並存儲在 ResultSet 物件中。ResultSet 被迭代並列印記錄。
將以下示例複製並貼上到 JDBCExample.java 中,編譯並執行如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCExample {
static final String DB_URL = "jdbc:mysql:///TUTORIALSPOINT";
static final String USER = "guest";
static final String PASS = "guest123";
static final String QUERY = "SELECT id, first, last, age FROM Registration";
public static void main(String[] args) {
// Open a connection
try(Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
Statement stmt = conn.createStatement();) {
System.out.println("Fetching records without condition...");
ResultSet rs = stmt.executeQuery(QUERY);
while(rs.next()){
//Display values
System.out.print("ID: " + rs.getInt("id"));
System.out.print(", Age: " + rs.getInt("age"));
System.out.print(", First: " + rs.getString("first"));
System.out.println(", Last: " + rs.getString("last"));
}
// Select all records having ID equal or greater than 101
System.out.println("Fetching records with condition...");
String sql = "SELECT id, first, last, age FROM Registration" +
" WHERE first LIKE '%za%'";
rs = stmt.executeQuery(sql);
while(rs.next()){
//Display values
System.out.print("ID: " + rs.getInt("id"));
System.out.print(", Age: " + rs.getInt("age"));
System.out.print(", First: " + rs.getString("first"));
System.out.println(", Last: " + rs.getString("last"));
}
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
輸出
現在讓我們按如下方式編譯上述示例:
C:\>javac JDBCExample.java C:\>
執行JDBCExample時,會產生以下結果:
C:\>java JDBCExample Fetching records without condition... ID: 100, Age: 30, First: Zara, Last: Ali ID: 102, Age: 30, First: Zaid, Last: Khan ID: 103, Age: 28, First: Sumit, Last: Mittal Fetching records with condition... ID: 100, Age: 30, First: Zara, Last: Ali ID: 102, Age: 30, First: Zaid, Last: Khan C:\>
示例:從表中選擇記錄
在此示例中,我們有三個靜態字串,包含資料庫連線 URL、使用者名稱和密碼。現在使用 DriverManager.getConnection() 方法,我們準備了一個數據庫連線。連線準備就緒後,我們使用 createStatement() 方法準備了一個 Statement 物件。下一步,我們透過呼叫 statement.executeQuery() 方法在 STUDENTS 表上準備並執行了一個查詢,其中提取了姓氏以A開頭的記錄,並將它們儲存在 ResultSet 物件中。ResultSet 被迭代並列印所有記錄。
將以下示例複製並貼上到 JDBCExample.java 中,編譯並執行如下:
import java.sql.*;
public class JDBCExample {
static final String DB_URL = "jdbc:mysql:///TUTORIALSPOINT";
static final String USER = "root";
static final String PASS = "guest123";
public static void main(String args[]) {
try{
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
Statement stmt = conn.createStatement();
String sel_qry = "select studentID, firstName, lastName from students where lastName like 'A%'";
ResultSet rs = stmt.executeQuery(sel_qry);
System.out.println("Displaying records where LastName begins with 'A'" );
System.out.println("-------------------------------------------------------");
while(rs.next()){
System.out.print("studentID: " + rs.getInt(1));
System.out.print(", FirstName: " + rs.getString(2));
System.out.println(", LastName: " + rs.getString(3));
}
System.out.println("--------------------------------------------");
rs.close();
stmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
現在讓我們按如下方式編譯上述示例:
C:\>javac JDBCExample.java C:\>
輸出
執行JDBCExample時,會產生以下結果:
C:\>java JDBCExample Displaying records where LastName begins with 'A' ------------------------------------------------------- studentID: 1000, FirstName: Bonny, LastName: Agarwal studentID: 1004, FirstName: Mohammed, LastName: Ali -------------------------------------------- C:\>
示例:從表中選擇記錄
在此示例中,我們有三個靜態字串,包含資料庫連線 URL、使用者名稱和密碼。現在使用 DriverManager.getConnection() 方法,我們準備了一個數據庫連線。連線準備就緒後,我們使用 createStatement() 方法準備了一個 Statement 物件。下一步,我們透過呼叫 statement.executeQuery() 方法在 EMPLOYEES 表上準備並執行了一個查詢,其中提取了年齡以 5 開頭且之後只有一個字元的記錄,並將它們儲存在 ResultSet 物件中。ResultSet 被迭代並列印所有記錄。
將以下示例複製並貼上到 JDBCExample.java 中,編譯並執行如下:
import java.sql.*;
// This class demonstrates use of LIKE with underscore '_'
public class JDBCExample {
static final String DB_URL = "jdbc:mysql:///TUTORIALSPOINT";
static final String USER = "root";
static final String PASS = "guest123";
public static void main(String args[]) {
try{
Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
Statement stmt = conn.createStatement();
String sel_qry = "select * from employees where age like '5_'";
ResultSet rs = stmt.executeQuery(sel_qry);
System.out.println("Displaying records where age begins with 5 and has only one literal after it." );
System.out.println("-------------------------------------------------------");
while(rs.next()){
System.out.print(" ID: " + rs.getInt(1));
System.out.print(", AGE: " + rs.getInt(2));
System.out.print(", FirstName: " + rs.getString(3));
System.out.println(", LastName: " + rs.getString(4));
}
System.out.println("--------------------------------------------");
rs.close();
stmt.close();
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
輸出
現在讓我們按如下方式編譯上述示例:
C:\>javac JDBCExample.java C:\>
執行JDBCExample時,會產生以下結果:
C:\>java JDBCExample Displaying records where age begins with 5 and has only one literal after it. ------------------------------------------------------- ID: 1, AGE: 50, FirstName: Shahbaz, LastName: Ali ID: 35, AGE: 51, FirstName: Raksha, LastName: Agarwal -------------------------------------------- C:\>