개요
이 글에서는 Java 프로그램에서 JDBC를 사용하여 MySQL 데이터베이스의 테이블에 레코드를 삽입하는 방법을 단계별로 알아봅니다. 먼저 테이블을 생성한 후, Java 코드를 통해 데이터를 삽입하고 결과를 확인하는 전체 과정을 다룹니다.
1단계: MySQL 테이블 생성
가장 먼저 데이터를 저장할 테이블을 생성해야 합니다. 아래는 MySQL에서 테이블을 만드는 쿼리입니다.
mysql> create table DemoTable(
Id int,
Name varchar(30),
CountryName varchar(30),
Age int
);
Query OK, 0 rows affected (0.66 sec)
위 쿼리는 Id, Name, CountryName, Age 네 개의 컬럼으로 구성된 DemoTable을 생성합니다.
2단계: Java 코드 작성
다음은 JDBC 드라이버를 사용하여 MySQL 데이터베이스에 접속하고 레코드를 삽입하는 Java 코드입니다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
public class AccessMySQLDatabase {
public static void main(String[] args) {
Connection con = null;
Statement st = null;
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/web?" + "useSSL=false", "root", "123456");
st = con.createStatement();
String accessDatabase = "insert into DemoTable(Id,Name,CountryName,Age)" + " values(100,'David','AUS',24) ";
int result = st.executeUpdate(accessDatabase);
if (result > 0) {
System.out.println("Record Inserted! Check your table now!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
코드 설명
- DriverManager.getConnection(): 지정한 URL, 사용자명, 비밀번호를 사용해 MySQL 데이터베이스와 연결을 설정합니다.
- createStatement(): SQL 문을 실행하기 위한 Statement 객체를 생성합니다.
- executeUpdate(): INSERT 문을 실행하며, 영향을 받은 행의 수를 반환합니다. 반환값이 0보다 크면 삽입이 성공한 것입니다.
3단계: 실행 결과 확인
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
Record Inserted! Check your table now!
4단계: MySQL에서 데이터 조회
레코드가 실제로 삽입되었는지 확인하기 위해 MySQL에서 SELECT 쿼리를 실행해 보겠습니다.
mysql> select * from DemoTable;
실행 결과는 다음과 같습니다.
+------+-------+-------------+------+
| Id | Name | CountryName | Age |
+------+-------+-------------+------+
| 100 | David | AUS | 24 |
+------+-------+-------------+------+
1 row in set (0.00 sec)
결과를 보면 Id 100, 이름 David, 국가 AUS, 나이 24인 레코드가 성공적으로 삽입된 것을 확인할 수 있습니다.
마무리
이처럼 Java의 JDBC API를 활용하면 MySQL 데이터베이스에 손쉽게 연결하여 데이터를 삽입할 수 있습니다. 실제 프로젝트에서는 PreparedStatement를 사용하여 SQL 인젝션을 방지하고, try-with-resources 구문으로 리소스를 자동 해제하는 것이 좋은 practice입니다. 또한 데이터베이스 자격 증명은 환경 변수나 설정 파일로 분리하여 관리하는 것을 권장합니다.