Java에서 MySQL에 특정 컬럼만 값을 넣으려면 INSERT INTO 테이블(컬럼명) VALUES(?) 형태의 PreparedStatement를 사용합니다.
테이블 생성
mysql> CREATE TABLE DemoTable (
-> Name VARCHAR(20)
-> );
Query OK, 0 rows affected (0.54 sec)
Java 코드 예제
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class InsertOneColumnDemo {
public static void main(String[] args) {
Connection con = null;
PreparedStatement ps = null;
try {
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/web?useSSL=false", "root", "123456");
String query = "INSERT INTO DemoTable(Name) VALUES(?)";
ps = con.prepareStatement(query);
ps.setString(1, "Robert");
ps.executeUpdate();
System.out.println("Record is inserted successfully......");
} catch (Exception e) {
e.printStackTrace();
}
}
}
실행 결과 확인
mysql> SELECT * FROM DemoTable;
+--------+ | Name | +--------+ | Robert | +--------+ 1 row in set (0.00 sec)
핵심: PreparedStatement는 SQL 인젝션 방지와 성능 향상에 필수입니다. ? 플레이스홀더에 setString(), setInt() 등으로 값을 바인딩하세요. 사용 후 close()로 자원 해제를 잊지 마세요.