[데브코스] JDBC 1
Updated: Categories: TILW4D2 - Docker로 Mysql 띄우고 JDBC 사용법을 배워보자!
JDBC (Java Database Connectivity)
- 자바와 데이터베이스를 이어주는 브리지 역할
- JDBC 드라이버는 4가지 종류가 있는데, MySQL은 Type 4이다.
순수 JDBC 세팅
pom.xml
dependency에 driver를 추가해준다. 여기 참고
// 기본적인 연결
try (
var connection = DriverManager.getConnection([접속정보]);
var statement = connection.createStatement();
var resultSet = statement.executeQuery([쿼리문]);
) {
[resultSet 사용 로직]
} catch (SQLException e) {
...
}
- 사용이 끝나면 반드시 커넥션은 끊어줘야 함
- java 10 부터
try-with-resource
가(멘토님이 알려주셨던) 등장했기에 이를 활용하자
- java 10 부터
PreparedStatement
- 정처기 공부할 때 나왔던 SQL Injection이 실제로 어떤 상황에서 이루어지는지 살펴봄.
- 이를 방지하기 위해선
PreparedStatement
를 사용해야함 PreparedStatement
를 사용하면 DB 연결 -> statement 생성 -> 쿼리 이 3단계를 캐시에 저장한다.- 캐시를 통한 성능 향상
- PlacelHolder를 통해 변동적 쿼리 생성
- 입력값에 의해 쿼리가 변경되는 상황이 방지
// ? 는 setString을 통해 정의해야함
[쿼리문] = "select * from table where column = ? ";
try (
var connection = DriverManager.getConnection([접속정보]);
var statement = connection.prepareStatement([쿼리문]);
) {
statement.setString(인덱스, 입력값);
try(var resultSet = statement.executeQuery()){
while (resultSet.next()) {
[resultSet 사용 로직]
}
}
} catch (SQLException e) {
...
}