在本教程將演示如何在JDBC應(yīng)用程序中刪除一個(gè)指定的數(shù)據(jù)庫(kù)。 在執(zhí)行以下示例之前,請(qǐng)確保您已經(jīng)準(zhǔn)備好以下操作:
username
)和密碼(password
)。注意:這是一個(gè)嚴(yán)肅的操作,在繼續(xù)刪除數(shù)據(jù)庫(kù)之前必須要確定是否真的執(zhí)行刪除操作,因?yàn)閯h除了數(shù)據(jù)庫(kù)以后,數(shù)據(jù)庫(kù)中的所有內(nèi)容都將丟失,并且無法恢復(fù)。
使用JDBC應(yīng)用程序創(chuàng)建新數(shù)據(jù)庫(kù)需要以下步驟:
導(dǎo)入包:需要包含包含數(shù)據(jù)庫(kù)編程所需的JDBC類的包。 大多數(shù)情況下,使用import java.sql.*
就足夠了。
注冊(cè)JDBC驅(qū)動(dòng)程序:需要初始化驅(qū)動(dòng)程序,以便可以程序中打開數(shù)據(jù)庫(kù)的通信通道。
打開連接:需要使用DriverManager.getConnection()
方法來創(chuàng)建一個(gè)Connection
對(duì)象,它表示與數(shù)據(jù)庫(kù)服務(wù)器的物理連接。要?jiǎng)h除一個(gè)新的數(shù)據(jù)庫(kù),并不需要在準(zhǔn)備數(shù)據(jù)庫(kù)URL時(shí)提供任何數(shù)據(jù)庫(kù)名稱,如下面的示例所述,將刪除一個(gè)名稱為:jdbc_db的數(shù)據(jù)庫(kù)。
執(zhí)行查詢:需要使用類型為Statement
的對(duì)象來構(gòu)建和提交SQL語(yǔ)句到數(shù)據(jù)庫(kù)。
清理環(huán)境:需要明確地關(guān)閉所有數(shù)據(jù)庫(kù)資源,而不依賴于JVM的垃圾收集。
復(fù)制以下示例代碼保存到文件:DropDatabase.java中,然后編譯并運(yùn)行如下 -
//STEP 1. Import required packages
// See more detail at http://www.yiibai.com/jdbc/
import java.sql.*;
public class DropDatabase {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/";
// 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("Deleting database...");
stmt = conn.createStatement();
String sql = "DROP DATABASE jdbc_db";
stmt.executeUpdate(sql);
System.out.println("Database deleted successfully...");
}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 DropDatabase.java
執(zhí)行上面代碼,如下 -
F:\worksp\jdbc>java -Djava.ext.dirs=F:\worksp\jdbc\libs DropDatabase
Connecting to a selected database...
Thu Jun 01 22:09:06 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...
Deleting database...
Database deleted successfully...
Goodbye!
F:\worksp\jdbc>