sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
sitelink5 | |
sitelink6 |
JDBC API에서 java.sql
과 javax.sql
패키지의 차이점
JDBC(Java Database Connectivity) API는 Java 애플리케이션과 데이터베이스 간의 상호 작용을 가능하게 하는 표준 인터페이스입니다.
JDBC API는 java.sql
과 javax.sql
두 개의 주요 패키지로 구성됩니다.
1. java.sql
패키지
- 핵심 JDBC 기능을 제공하는 기본 패키지
- JDBC 1.0부터 존재하며, 기본적인 데이터베이스 연결 및 SQL 실행을 담당
✅ 주요 클래스 및 인터페이스
DriverManager
→ 데이터베이스 연결 관리Connection
→ 데이터베이스 연결Statement
→ SQL 실행을 위한 기본 인터페이스PreparedStatement
→ SQL 실행을 위한 사전 컴파일된 인터페이스CallableStatement
→ 저장 프로시저 호출을 위한 인터페이스ResultSet
→ SQL 쿼리 결과를 처리하는 객체SQLException
→ 데이터베이스 작업 중 발생하는 예외
✅ 주요 특징
- 기본적인 데이터베이스 연결 및 SQL 실행 기능 제공
- JDBC 1.0, 2.0에서 사용되었으며, 이후에도 계속 유지
Connection
객체를 직접 생성하고 관리해야 하며, 커넥션 풀링 기능이 없음
2. javax.sql
패키지
- 고급 JDBC 기능을 제공하는 확장 패키지
- JDBC 2.0에서 추가되었으며, 데이터소스, 커넥션 풀링, 트랜잭션 관리, RowSet 등의 기능 지원
✅ 주요 클래스 및 인터페이스
DataSource
→ 데이터베이스 연결을 관리하는 고급 인터페이스 (커넥션 풀 사용 가능)ConnectionPoolDataSource
→ 커넥션 풀링을 지원하는 데이터 소스PooledConnection
→ 커넥션 풀을 위한 인터페이스RowSet
→ ResultSet의 확장 버전으로, 데이터베이스 연결 없이도 사용 가능XADataSource
→ 분산 트랜잭션을 지원하는 데이터 소스XAConnection
→ 2PC(Two-Phase Commit) 트랜잭션을 지원하는 커넥션
✅ 주요 특징
- DataSource 기반의 데이터베이스 연결을 제공 →
DriverManager
보다 유지보수 및 확장성이 뛰어남 - 커넥션 풀링(Connection Pooling) 지원 → 성능 향상
- 트랜잭션 관리 기능 지원 (
XADataSource
사용) - RowSet API 지원 → 오프라인에서도 데이터를 조작할 수 있음
???? java.sql
vs javax.sql
비교 정리
비교 항목 | java.sql |
javax.sql |
---|---|---|
JDBC 버전 | JDBC 1.0 (기본) | JDBC 2.0 이상 (확장) |
주요 기능 | 기본적인 데이터베이스 연결 및 SQL 실행 | 고급 데이터베이스 기능 (커넥션 풀, 트랜잭션 관리, RowSet 지원 등) |
연결 방식 | DriverManager.getConnection(url, user, password) 사용 |
DataSource 를 통한 연결 (더 유연함) |
커넥션 풀링 | ❌ 미지원 | ✅ 지원 (ConnectionPoolDataSource ) |
트랜잭션 관리 | 단일 데이터베이스 트랜잭션만 지원 | ✅ 분산 트랜잭션 (XADataSource ) |
사용 대상 | 일반적인 데이터베이스 액세스 | 엔터프라이즈 애플리케이션 (고성능, 고가용성 필요) |
✅ 결론
- 일반적인 JDBC 사용 →
java.sql
패키지만으로 충분 - 고성능 & 대규모 애플리케이션 →
javax.sql
의 DataSource, Connection Pooling, XADataSource 활용 필수
따라서, 엔터프라이즈급 애플리케이션을 개발할 때는 javax.sql
을 적극 활용하는 것이 좋습니다. ????
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
» | [ChatGPT] JDBC API에서 java.sql과 javax.sql 패키지의 차이점 | 황제낙엽 | 2025.01.31 | 131 |
10 | ResultSet 을 순회하기 전에 사이즈 구하기 | 황제낙엽 | 2021.01.14 | 290 |
9 | ResultSet 의 사이즈로 조회 결과가 있는지 확인 | 황제낙엽 | 2021.01.14 | 337 |
8 | SQLite JDBC Driver | 황제낙엽 | 2020.02.25 | 3625 |
7 |
Microsoft SQL Server JDBC 드라이버 2.0
![]() | 황제낙엽 | 2019.05.22 | 470 |
6 |
간단한 DBConnection 프로그램 (JDBC)
![]() | 황제낙엽 | 2008.05.15 | 456 |
5 | [Tip] 톰캣 JNDI DB POOL 설정하기 | 황제낙엽 | 2007.05.11 | 486 |
4 |
JDBC 테스트 페이지
![]() | 황제낙엽 | 2007.02.22 | 9263 |
3 | [JDBC] URL 사용법 모음 | 황제낙엽 | 2007.02.21 | 1496 |
2 | JDBC Date 포맷 변환 | 황제낙엽 | 2003.11.08 | 938 |
1 | Connection 리소스 관리시 주의해야 할 점 | 황제낙엽 | 2003.09.06 | 429 |