반응형
1. Connection
개념
- Connection 객체는 데이터베이스와의 연결을 나타냅니다. 이 객체를 통해 SQL 문을 실행하고, 트랜잭션을 관리하며, 데이터베이스와의 세션을 유지합니다.
주요 기능
- 데이터베이스 연결: DriverManager를 통해 데이터베이스에 연결된 후, Connection 객체를 얻습니다.
- 트랜잭션 관리: 여러 SQL 문을 하나의 단위로 묶어 원자성을 보장합니다. commit()과 rollback() 메소드를 사용하여 트랜잭션을 관리할 수 있습니다.
- 자원 해제: 데이터베이스 연결이 더 이상 필요하지 않을 때 close() 메소드를 호출하여 자원을 해제합니다.
2. Statement
개념
- Statement 객체는 SQL 문을 데이터베이스에 전달하고 실행하는 데 사용됩니다. 주로 정적 SQL 쿼리를 실행할 때 사용합니다.
주요 기능
- SQL 실행: executeQuery() 메소드를 사용하여 SELECT 쿼리를 실행하고, executeUpdate() 메소드를 사용하여 INSERT, UPDATE, DELETE 쿼리를 실행합니다.
- 결과 처리: SQL 쿼리의 결과를 ResultSet 객체로 반환받아 데이터를 처리할 수 있습니다.
단점
- SQL 인젝션 취약성: 사용자가 입력한 값을 직접 SQL 쿼리에 포함시키면 SQL 인젝션 공격에 노출될 수 있습니다.
3. PreparedStatement
개념
- PreparedStatement 객체는 미리 컴파일된 SQL 쿼리를 실행하는 데 사용됩니다. SQL 쿼리를 작성한 후, 파라미터를 바인딩하여 실행할 수 있습니다.
주요 기능
- 파라미터화된 쿼리: SQL 쿼리 내에서 ? 기호를 사용하여 파라미터를 정의하고, setXXX() 메소드를 사용하여 해당 파라미터에 값을 설정합니다.
- SQL 인젝션 방지: 파라미터를 바인딩하기 때문에 SQL 인젝션 공격에 대한 저항력이 높습니다.
- 성능 향상: 동일한 SQL 쿼리를 여러 번 실행할 때, 쿼리를 미리 컴파일하므로 성능이 향상됩니다.
요약
- Connection: 데이터베이스와의 연결을 관리하는 객체로, SQL 문 실행과 트랜잭션 관리를 담당합니다.
- Statement: 정적 SQL 쿼리를 실행하는 데 사용되며, SQL 인젝션에 취약합니다.
- PreparedStatement: 미리 컴파일된 SQL 쿼리를 실행하며, 파라미터화된 쿼리를 통해 SQL 인젝션을 방지하고 성능을 향상시킵니다.
이 세 가지 객체는 JDBC에서 데이터베이스와의 상호작용을 효율적으로 관리하는 데 중요한 역할을 합니다. 각 객체의 특징과 사용 목적을 이해하면, JDBC를 통한 데이터베이스 작업을 보다 안전하고 효율적으로 수행할 수 있습니다.
반응형
'IT개발 > JAVA' 카테고리의 다른 글
RESTful API란?(java/백엔드개발) (0) | 2024.11.23 |
---|---|
AJAX(Asynchronous JavaScript and XML)란? (0) | 2024.11.21 |
JDBC(Java Database Connectivity) (자바/백엔드개발/SQL/Java) (0) | 2024.11.18 |
자바 백엔드 개발 공부 흐름 요약(Java/backend/programing) (0) | 2024.11.17 |
맥북(Mac OS) 자바 JDK 설치 경로 확인 방법 (0) | 2024.11.14 |
댓글