在本教學將演示如何在JDBC應用程式中,刪除資料庫表中資料記錄。 在執行以下範例之前,請確保您已經準備好以下操作:
username
)和密碼(password
)。注意: 在執行刪除資料記錄時,需要注意的是資料刪除後無法恢復,所以在刪除資料之後必須要確認要刪除的資料。
使用JDBC應用程式刪除表中資料記錄需要以下步驟:
匯入包:需要包含包含資料庫程式設計所需的JDBC類的包。 大多數情況下,使用import java.sql.*
就足夠了。
註冊JDBC驅動程式:需要初始化驅動程式,以便可以程式中開啟資料庫的通訊通道。
開啟連線:需要使用DriverManager.getConnection()
方法來建立一個Connection
物件,它表示與資料庫伺服器的物理連線。
執行查詢:需要使用型別為Statement
的物件來構建和提交SQL語句,以從表中刪除符合指定條件記錄。查詢語句中可使用WHERE子句來指定刪除記錄的條件。
清理環境:需要明確地關閉所有資料庫資源,而不依賴於JVM的垃圾收集。
複製以下範例程式碼儲存到檔案:DeleteRecords.java中,然後編譯並執行如下 -
//STEP 1. Import required packages
// See more detail at /20/213/8320.html
import java.sql.*;
public class DeleteRecords {
// 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();
String sql = "DELETE FROM student " +
"WHERE id = 101";
stmt.executeUpdate(sql);
// Now you can extract all the records
// to see the remaining records
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);
}
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
編譯上面程式碼,如下 -
F:\worksp\jdbc> javac -Djava.ext.dirs=F:\worksp\jdbc\libs DeleteRecords.java
執行上面程式碼,如下 -
## 可先建立表或插入資料 -
## F:\worksp\jdbc> java -Djava.ext.dirs=F:\worksp\jdbc\libs InsertRecords
F:\worksp\jdbc>java -Djava.ext.dirs=F:\worksp\jdbc\libs DeleteRecords
Connecting to a selected database...
Thu Jun 01 23:38:33 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...
ID: 100, Age: 22, First: C++, Last: Li
ID: 102, Age: 30, First: Ruby, Last: Ru
ID: 103, Age: 28, First: Java, Last: Ja
Goodbye!
F:\worksp\jdbc>
在執行上面語句後,可以看到 ID
為 101
的這條記錄已經被刪除了。