如何使用JDBC API删除数据库?

答:您可以使用DROP DATABASE查询删除/删除数据库。

语法

DROP DATABASE DatabaseName;

要使用JDBC API删除数据库,您需要:

  • 注册驱动程序:使用registerDriver()DriverManager类的方法注册驱动程序类。将驱动程序类名称作为参数传递给它。

  • 建立连接:使用getConnection()DriverManager类的方法连接数据库。将URL(字符串),用户名(字符串),密码(字符串)作为参数传递给它。

  • Create Statement:使用createStatement()Connection接口的方法创建一个Statement对象。

  • 执行查询:使用execute()Statement接口的方法执行查询。

示例

show database命令为您提供MySQL中的数据库列表。首先,使用以下命令验证其中的数据库列表:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| base               |
| details            |
| exampledatabase    |
| logging            |
| mydatabase         |
| mydb               |
| mysql              |
| performance_schema |
| students           |
| sys                |
| world              |
+--------------------+
12 rows in set (0.00 sec)

以下JDBC程序建立与MySQL的连接,并删除名为mydatabase的数据库:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DropDatabaseExample {
   public static void main(String args[]) throws SQLException {
      //注册驱动程序
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //获得连接
      String mysqlUrl = "jdbc:mysql://localhost/";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //创建语句
      Statement stmt = con.createStatement();
      //查询删除数据库
      String query = "DROP database MyDatabase";
      //执行查询
      stmt.execute(query);
      System.out.println("Database dropped......");
   }
}

输出结果

Connection established......
Database Dropped......

如果再次验证数据库列表,您将无法在其中找到名称mydatabase,因为我们已将其删除。

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| base               |
| details            |
| exampledatabase    |
| logging            |
| mydb               |
| mysql              |
| performance_schema |
| students           |
| sys                |
| world              |
+--------------------+
11 rows in set (0.00 sec)