jdbc PreparedStatement
정적 SQL 쿼리와 값을 사용하여 생성되는 객체입니다.
PreparedStatement를 사용하면 SQL 쿼리를 미리 컴파일할 수 있으므로, 동일한 쿼리를 여러 번 실행할 때 성능을 향상시킬 수 있습니다.
또한, PreparedStatement를 사용하면 SQL 삽입 공격을 방지할 수 있습니다.
PreparedStatement를 생성하려면, SQL 쿼리와 값을 PreparedStatement 생성자에 전달해야 합니다.
SQL 쿼리는 문자열로 전달되며, 값은 숫자, 문자열, 날짜, 시간 등 다양한 형태로 전달될 수 있습니다.
PreparedStatement를 사용하여 insert update select delete 를하는 예제입니다.
* 데이터베이스에 데이터를 삽입하는 예:
```java
String sql = "INSERT INTO table (column1, column2) VALUES (?, ?)";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, "value1");
pstmt.setString(2, "value2");
pstmt.executeUpdate();
```
* 데이터베이스에서 데이터를 검색하는 예:
```java
String sql = "SELECT * FROM table WHERE column1 = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, "value1");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("column1"));
System.out.println(rs.getString("column2"));
}
```
* 데이터베이스에서 데이터를 업데이트하는 예:
```java
String sql = "UPDATE table SET column1 = ? WHERE column2 = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, "new_value1");
pstmt.setString(2, "old_value2");
pstmt.executeUpdate();
```
* 데이터베이스에서 데이터를 삭제하는 예:
```java
String sql = "DELETE FROM table WHERE column1 = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, "value1");
pstmt.executeUpdate();
```
이러한 예는 PreparedStatement를 사용하여 데이터베이스에 데이터를 삽입, 검색, 업데이트, 삭제하는 방법을 보여줍니다. PreparedStatement를 사용하면 SQL 쿼리를 미리 컴파일할 수 있으므로, 동일한 쿼리를 여러 번 실행할 때 성능을 향상시킬 수 있습니다. 또한, PreparedStatement를 사용하면 SQL 삽입 공격을 방지할 수 있습니다.
'mysql' 카테고리의 다른 글
동시성문제의 필요성 (0) | 2024.07.19 |
---|---|
트랜잭션의 격리수준(Transaction Isolation Level) [2편-1] (0) | 2024.07.17 |
트랜잭션 정리글 및 이해하기 [1편] (0) | 2024.07.15 |
tool을 이용하여 E-R다이어그램 설계방법 (0) | 2023.07.25 |
MYSQL 로컬에서 작업내용 -> 다른 로컬로 옮기기! (0) | 2023.07.24 |