Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

Java로 MySQL 데이터베이스에서 데이터를 삭제하는 방법 완벽 가이드

MySQL 데이터베이스에서 데이터를 삭제하려면 DELETE 명령어를 사용합니다. 기본 문법은 다음과 같습니다.

delete from 테이블명 where 조건;

1. 예제 테이블 생성 및 데이터 삽입

이번 글에서는 Java 프로그래밍 언어를 활용해 MySQL 데이터베이스의 데이터를 삭제하는 방법을 단계별로 살펴보겠습니다. 먼저 실습에 사용할 테이블을 생성하고 샘플 데이터를 삽입하겠습니다.

테이블을 생성하는 쿼리는 다음과 같습니다.

mysql> create table DeleteTableDemo
-> (
-> id int,
-> Name varchar(200)
-> );
Query OK, 0 rows affected (0.94 sec)

생성한 테이블에 레코드를 삽입합니다. 레코드 삽입 쿼리는 아래와 같습니다.

mysql> insert into DeleteTableDemo values(101,'Smith');
Query OK, 1 row affected (0.21 sec)

mysql> insert into DeleteTableDemo values(102,'Johnson');
Query OK, 1 row affected (0.27 sec)

2. 현재 저장된 데이터 확인

테이블에 몇 개의 레코드가 들어 있는지 SELECT 문으로 확인해 보겠습니다.

mysql> select *from DeleteTableDemo;

실행 결과는 다음과 같습니다.

+------+---------+
| id | Name |
+------+---------+
| 101 | Smith |
| 102 | Johnson |
+------+---------+
2 rows in set (0.00 sec)

현재 테이블에는 두 개의 레코드가 저장되어 있습니다. 이제 DELETE 명령어를 사용해 MySQL 데이터베이스 테이블에서 데이터를 삭제해 보겠습니다.

3. Java 코드로 데이터 삭제하기

아래는 id가 101인 데이터를 삭제하는 Java 코드입니다. 삭제 작업을 수행하기 전에 먼저 Java와 MySQL 데이터베이스 간의 연결(Connection)을 설정해야 합니다.

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
public class JavaDeleteDemo {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
System.out.println(e);
}
conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/business", "Manish", "123456");
System.out.println("Connection is created successfully:");
stmt = (Statement) conn.createStatement();
String query1 = "delete from DeleteTableDemo " +
"where id=101";
stmt.executeUpdate(query1);
System.out.println("Record is deleted from the table successfully..................");
} catch (SQLException excep) {
excep.printStackTrace();
} catch (Exception excep) {
excep.printStackTrace();
} finally {
try {
if (stmt != null)
conn.close();
} catch (SQLException se) {}
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
System.out.println("Please check it in the MySQL Table. Record is now deleted.......");
}
}

위 코드의 주요 흐름은 다음과 같습니다.

① 드라이버 로딩: Class.forName()으로 MySQL JDBC 드라이버를 메모리에 로드합니다.
② 연결 설정: DriverManager.getConnection()으로 데이터베이스 URL, 사용자 계정, 비밀번호를 지정해 연결을 생성합니다.
③ Statement 생성: SQL문을 실행할 수 있는 Statement 객체를 만듭니다.
④ DELETE 실행: executeUpdate() 메서드로 id=101인 레코드를 삭제합니다.
⑤ 자원 해제: finally 블록에서 Statement와 Connection을 닫아 리소스 누수를 방지합니다.

프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

Java로 MySQL 데이터베이스에서 데이터를 삭제하는 방법 완벽 가이드

4. 삭제 결과 검증

실제로 데이터가 삭제되었는지 다시 SELECT 문으로 확인해 보겠습니다.

mysql> select *from DeleteTableDemo;

실행 결과는 다음과 같습니다.

+------+---------+
| id | Name |
+------+---------+
| 102 | Johnson |
+------+---------+
1 row in set (0.00 sec)

출력 결과에서 볼 수 있듯이 id가 101인 'Smith' 레코드가 성공적으로 삭제되고, 'Johnson' 레코드만 남아 있는 것을 확인할 수 있습니다.

참고 사항

예제 코드에서 사용된 com.mysql.jdbc.Driver는 구버전 커넥터용 클래스입니다. 최신 MySQL Connector/J(8.0 이상)를 사용한다면 com.mysql.cj.jdbc.Driver로 변경하고, JDBC URL에 타임존 설정 등을 추가하는 것이 좋습니다. 또한 Java 7 이상에서는 try-with-resources 구문을 활용하면 finally 블록 없이도 자동으로 자원을 해제할 수 있어 더욱 안전한 코드를 작성할 수 있습니다.