728x90
- 데이터 저장
JDBC를 이용해서 INSERT 문을 실행하기
- users 테이블에 새로운 사용자 정보를 저장하는 INSERT문은 다음과 같습니다.

- 값을 ?(물음표)로 대체한 매개변수화된 INSERT문으로 변경하면 다음과 같습니다.

- 그리고 INSERT 문을 String 타입 변수 sql에 문자열로 대입합니다.

- 매개변수화된 SQL문을 실행하기 위해서는 PreparedStatement가 필요한데, 다음처럼 Connection의 prepareStatement() 메소드로부터 PreparedStatement를 얻습니다.

- 그리고 매개변수화된 ? 에 들어갈 값을 지정해줍니다. ?는 순서에 따라 1번부터 번호가 부여됩니다.
- 값의 타입에 따라 Setter 메소드를 선택해준후, 첫번째는 순번, 두번째에는 값을 지정해줍니다.

- 값을 지정한후 executeUpdate() 메소드를 호출하면 SQL문이 실행되면서 users 테이블에 1개의 행이 저장됩니다.
- executeUpdate() 메소드가 리턴하는 값은 저장된 행 수 인데, 정상적으로 실행 될 경우 1을 리턴시킵니다.

- PreparedStatement를 더 이상 사용하지 않을 경우에는 close() 메소드를 호출해서 PreparedStatement가 사용했던 메모리를 해제 시킵니다.

다음은 user 테이블에 사용자 정보를 저장하는 전체코드 입니다.
package java0215;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class UserInsertExample {
public static void main(String[] args) {
Connection conn = null;
try {
// JDBC Driver 등록
Class.forName("com.mysql.cj.jdbc.Driver");
// 연결
conn = DriverManager.getConnection(
"jdbc:mysql://192.168.111.40:3306/thisisjava",
"java",
"mysql"
);
// 매개변수화 된 SQL문 작성
String sql = "" +
"INSERT INTO users (userid, username, userpassword, userage, useremail) "+
"VALUES (?,?,?,?,?)";
// PreparedStatement 얻기 및 값 지정
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1,"winter");
pstmt.setString(2,"한겨울");
pstmt.setString(3,"12345");
pstmt.setInt(4, 25);
pstmt.setString(5,"winter@mycompany.com");
// SQL 실행
int rows = pstmt.executeUpdate();
System.out.println("저장된 행 수 : " + rows);
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}finally {
if(conn != null) {
try {
conn.close();
}catch (SQLException e) {}
}
}
}
}
728x90
'JAVA > Swing' 카테고리의 다른 글
| 이미지 그리기.Swing (0) | 2023.02.20 |
|---|---|
| 안티 알리아싱(Anti-aliasing).Swing (0) | 2023.02.20 |
| Color와 Font.Swing (0) | 2023.02.20 |
| Canvas와 Graphics.Swing (0) | 2023.02.20 |
| Swing 시작.java (0) | 2023.02.16 |