1단계: MySQL에 테이블 생성하기
먼저 데이터베이스에 테이블을 하나 생성하겠습니다. 아래는 customerDetails 테이블을 만드는 CREATE TABLE 쿼리입니다.
mysql> create table customerDetails
-> (
-> CustomerId int,
-> CustomerName varchar(30)
-> );
Query OK, 0 rows affected (0.56 sec)
테이블이 정상적으로 생성되었습니다. 이제 데이터베이스의 전체 테이블 목록을 조회하여 customerDetails 테이블이 실제로 존재하는지 확인해 보겠습니다.
mysql> show tables;
실행 결과는 다음과 같습니다.
+------------------------------+
| Tables_in_test3 |
+------------------------------+
| bestdateformatdemo |
| customerdetails |
| deletedemo |
| differentdatetime |
| expandedoutputdemo |
| fieldlessthan5chars |
| lastrecordbeforelastone |
| mostrecentdatedemo |
| nullcasedemo |
| order |
| orderbydatethentimedemo |
| posts |
| productdemo |
| radiansdemo |
| selecttextafterlastslashdemo |
| siglequotesdemo |
| studentinformation |
| updatestringdemo |
+------------------------------+
18 rows in set (0.00 sec)
위 출력 결과에서 customerdetails 테이블이 목록에 포함되어 있는 것을 확인할 수 있습니다.
2단계: Java 코드로 테이블 삭제(DROP)하기
이제 JDBC를 사용하여 MySQL 테이블을 삭제하는 Java 코드를 살펴보겠습니다. 여기서 사용하는 데이터베이스 이름은 test3입니다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class DropTableDemo {
public static void main(String[] args) {
Connection con = null;
PreparedStatement ps = null;
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3?useSSL=false", "root", "123456");
ps = con.prepareStatement(
String.format("DROP TABLE IF EXISTS %s", "customerdetails"));
boolean result = ps.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
}
코드의 핵심 포인트를 정리하면 다음과 같습니다.
- DriverManager.getConnection(): JDBC URL, 사용자 계정, 비밀번호를 이용해 MySQL 데이터베이스(test3)와 연결을 설정합니다.
- DROP TABLE IF EXISTS: 해당 테이블이 존재할 경우에만 삭제하고, 존재하지 않아도 오류가 발생하지 않도록 하는 안전한 문법입니다.
- PreparedStatement.execute(): SQL 문을 실행하며, 결과가 ResultSet이면 true, 갱신 카운트 또는 결과가 없으면 false를 반환합니다.
참고: 실무 환경에서는 try-with-resources 구문을 사용해 Connection과 PreparedStatement를 자동으로 닫아주는 것이 좋으며, 비밀번호는 소스 코드에 직접 하드코딩하지 않고 환경 변수나 설정 파일로 관리하는 것이 안전합니다. 또한 프로젝트에는 반드시 MySQL Connector/J(JDBC 드라이버) 의존성이 추가되어 있어야 합니다.
3단계: 테이블 삭제 결과 확인하기
Java 프로그램을 실행한 후, test3 데이터베이스에서 customerDetails 테이블이 실제로 삭제되었는지 다시 한번 확인해 보겠습니다.
mysql> show tables;
실행 결과는 다음과 같습니다.
+------------------------------+
| Tables_in_test3 |
+------------------------------+
| bestdateformatdemo |
| deletedemo |
| differentdatetime |
| expandedoutputdemo |
| fieldlessthan5chars |
| lastrecordbeforelastone |
| mostrecentdatedemo |
| nullcasedemo |
| order |
| orderbydatethentimedemo |
| posts |
| productdemo |
| radiansdemo |
| selecttextafterlastslashdemo |
| siglequotesdemo |
| studentinformation |
| updatestringdemo |
+------------------------------+
17 rows in set (0.00 sec)
테이블 개수가 18개에서 17개로 줄었고, 목록에서 customerdetails가 사라진 것을 볼 수 있습니다. 즉, Java의 JDBC를 통해 test3 데이터베이스에서 해당 테이블이 성공적으로 삭제된 것입니다.