- 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 - 删除表
本章提供使用 JDBC 应用程序删除表、如果存在则删除表以及截断表的示例。在执行以下示例之前,请确保已准备好以下内容:
要执行以下示例,您可以将用户名和密码替换为您实际的用户名和密码。
您的 MySQL 或您正在使用的任何数据库正在运行。
注意重新格式化 JDBC 教程这是一个严重的操作,您必须在继续删除表之前做出坚定的决定,因为您表中的所有内容都将丢失。
必需步骤
使用 JDBC 应用程序创建新数据库需要以下步骤:
导入包 - 需要包含包含数据库编程所需 JDBC 类的包。大多数情况下,使用import java.sql.* 就足够了。
打开连接 - 需要使用DriverManager.getConnection()方法创建一个 Connection 对象,该对象表示与数据库服务器的物理连接。
执行查询重新格式化 JDBC 教程需要使用 Statement 类型的对象来构建和提交 SQL 语句以删除所选数据库中的表。
清理环境重新格式化 JDBC 教程 try with resources 会自动关闭资源。
示例:删除表
我们需要拥有 DROP 权限才能运行 DROP TABLE 命令。
在这个例子中,我们有三个静态字符串,包含数据库连接 URL、用户名和密码。现在使用 DriverManager.getConnection() 方法,我们准备了一个数据库连接。连接准备好后,我们使用 createStatement() 方法准备了一个 Statement 对象。下一步,我们准备了一个 SQL 字符串来通过调用 statement.executeUpdate() 方法删除 REGISTRATION 表。
如果在连接到数据库时出现任何异常,catch 块会处理 SQLException 并打印堆栈跟踪。
将以下示例复制并粘贴到 JDBCExample.java 中,然后编译并运行如下:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class JDBCExample { static final String DB_URL = "jdbc:mysql://127.0.0.1/TUTORIALSPOINT"; static final String USER = "guest"; static final String PASS = "guest123"; public static void main(String[] args) { // Open a connection try(Connection conn = DriverManager.getConnection(DB_URL, USER, PASS); Statement stmt = conn.createStatement(); ) { String sql = "DROP TABLE REGISTRATION"; stmt.executeUpdate(sql); System.out.println("Table deleted in given database..."); } catch (SQLException e) { e.printStackTrace(); } } }
现在让我们按如下方式编译上面的示例:
C:\>javac JDBCExample.java C:\>
运行JDBCExample时,会产生以下结果:
C:\>java JDBCExample Table deleted in given database... C:\>
示例:如果存在则删除表
可以使用以下命令删除表。如果表不存在,此命令将引发错误。
DROP TABLE table_name
如果我们在删除表之前进行检查,则不会引发错误,并且仅在表存在时才删除表。
DROP TABLE IF EXISTS table_name
在这个例子中,我们有三个静态字符串,包含数据库连接 URL、用户名和密码。现在使用 DriverManager.getConnection() 方法,我们准备了一个数据库连接。连接准备好后,我们使用 createStatement() 方法准备了一个 Statement 对象。下一步,我们准备了一个 SQL 字符串来通过调用 statement.execute() 方法删除 sampledb1 表。
删除表后,我们打印状态并执行另一个查询以显示给定数据库中的所有表,并打印所有剩余的表。
如果在连接到数据库时出现任何异常,catch 块会处理 SQLException 并打印堆栈跟踪。
将以下示例复制并粘贴到 JDBCExample.java 中,然后编译并运行如下:
import java.sql.*; // This file demonstrates use of DROP TABLE IF EXISTS command public class JDBCExample { static final String DB_URL = "jdbc:mysql://127.0.0.1/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 QUERY = "DROP TABLE IF EXISTS sampledb1"; stmt.execute(QUERY); System.out.println("Table sampledb1 dropped successfully."); System.out.println("----------------------------------------"); ResultSet rs = stmt.executeQuery("show tables"); System.out.println("List of tables"); System.out.println("----------------------------------------"); while(rs.next()){ System.out.println(rs.getString(1)); } }catch (SQLException e){ e.printStackTrace(); } } }
现在让我们按如下方式编译上面的示例:
C:\>javac JDBCExample.java C:\>
运行JDBCExample时,会产生以下结果:
C:\>java JDBCExample Table sampledb1 dropped successfully. ---------------------------------------- List of tables ---------------------------------------- consumers employees employees_o jdbc_blob_clob officers students C:\>
示例:截断表
DROP TABLE 不仅删除所有表数据,还删除表定义。另一方面,TRUNCATE TABLE 仅删除表数据(或行)。
TRUNCATE TABLE table_name
在这个例子中,我们有三个静态字符串,包含数据库连接 URL、用户名和密码。现在使用 DriverManager.getConnection() 方法,我们准备了一个数据库连接。连接准备好后,我们使用 createStatement() 方法准备了一个 Statement 对象。下一步,我们准备了一个 SQL 字符串来通过调用 statement.executeQuery() 方法查询 sampledb4 表以打印所有记录。使用 ResultSet 中的结果,我们打印了所有记录。
使用新的查询截断 sampledb4 表,我们使用 execute() 方法截断了该表。现在,我们再次发出 select 查询以获取所有记录。由于结果结果集为空,因此打印相应的消息。
如果在连接到数据库时出现任何异常,catch 块会处理 SQLException 并打印堆栈跟踪。
将以下示例复制并粘贴到 JDBCExample.java 中,然后编译并运行如下:
import java.sql.*; public class JDBCExample { static final String DB_URL = "jdbc:mysql://127.0.0.1/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_query = "select * from sampledb4"; ResultSet rs1 = stmt.executeQuery(sel_query); System.out.println("Rows from sampledb4"); System.out.println("--------------------"); while(rs1.next()){ System.out.println("id: " + rs1.getInt(1)); System.out.println("name: " + rs1.getString(2)); } String QUERY = "TRUNCATE TABLE sampledb4"; stmt.execute(QUERY); System.out.println("Table sampledb4 rows successfully deleted."); System.out.println("----------------------------------------"); System.out.println(" Doing a select on sampledb4..."); rs1 = stmt.executeQuery(sel_query); if (!rs1.next()){ System.out.println(" **** ResultSet is empty *****"); } }catch(SQLException e){ e.printStackTrace(); } } }
现在让我们按如下方式编译上面的示例:
C:\>javac JDBCExample.java C:\>
运行JDBCExample时,会产生以下结果:
C:\>java JDBCExample Rows from sampledb4 -------------------- id: 1 name: Gandhi id: 2 name: marx Table sampledb4 rows successfully deleted. ---------------------------------------- Doing a select on sampledb4. **** ResultSet is empty ***** C:\>