코코무의 코딩캔버스
[JDBC&JSP/MySQL] mysql-connector를 사용한 이클립스 연동 및 세팅 본문
mysql-connector.jar
MySQL 데이터베이스에 접속하기 위한 Java Database Connectivity(JDBC) 드라이버
- 주요 기능:
- MySQL 데이터베이스와 Java 애플리케이션 간의 통신을 가능하게 합니다.
- MySQL의 다양한 버전과 호환되며, 일반적으로 최신 버전을 사용하는 것이 좋습니다.
- MySQL 특화 기능을 지원합니다 (예: MySQL 특유의 데이터 타입 및 기능).
- 사용법: Class.forName("com.mysql.cj.jdbc.Driver");를 통해 드라이버를 로드한 후, DriverManager.getConnection("jdbc:mysql://hostname:port/dbname", "username", "password");를 통해 연결합니다.
의식을 하고서 공부를 하니, 어이가 없지만 jar가 RDBMS와의 연결을 위한 드라이버였다는 사실과, java class 파일 또는 jsp 파일에서 사용하였던 forName이나 DriverManager, url, 아이디, 비밀번호 등의 상당히 긴 코드들을 jsp에서는 WAS(Tomcat)의 context.xml에 Resourse 태그로 한꺼번에 넣어줄 수 있다는 사실을 새삼 깨달았다. 이전에는 연결고리 없이 배워서 그런 것도 있는 것 같다. 역시 사람은 생각을 하며 공부를 해야 한다.
commons-dbcp2-2.2.0.jar
Apache Commons 프로젝트의 일부로, 데이터베이스 커넥션 풀링을 제공하는 라이브러리입니다. DBCP는 Database Connection Pooling의 약자입니다. 이 라이브러리는 데이터베이스 연결을 효율적으로 관리하고 재사용하여 애플리케이션의 성능을 개선할 수 있도록 도와줍니다.
- 커넥션 풀링:
- 데이터베이스 연결을 미리 생성해두고, 필요할 때마다 재사용할 수 있도록 합니다. 이를 통해 데이터베이스 연결을 매번 새로 생성하는 비용을 줄이고 성능을 향상시킬 수 있습니다.
- 리소스 관리:
- 사용되지 않는 연결을 주기적으로 회수하거나, 오랫동안 사용되지 않은 연결을 닫는 등의 작업을 자동으로 수행하여 리소스를 효율적으로 관리합니다.
- 설정 유연성:
- 초기 커넥션 수, 최대 커넥션 수, 커넥션 유휴 시간 등 다양한 설정을 통해 애플리케이션의 요구에 맞게 커넥션 풀을 구성할 수 있습니다.
- Java Naming and Directory Interface (JNDI) 지원:
- JNDI를 통해 애플리케이션 서버 내에서 쉽게 커넥션 풀을 찾고 사용할 수 있습니다.
commons-pool2-2.5.0.jar
Apache Commons 프로젝트의 일부로, 객체 풀링(Object Pooling)을 제공하는 라이브러리입니다. 이 라이브러리는 객체의 생성과 재사용을 효율적으로 관리하여 애플리케이션의 성능을 최적화하는 데 사용되는데, 주로 커넥션 풀, 스레드 풀, 기타 리소스 풀을 구현할 때 사용됩니다.
- 객체 풀링:
- 객체를 미리 생성해두고, 필요할 때마다 재사용할 수 있도록 합니다. 이를 통해 객체 생성과 소멸에 드는 비용을 줄이고 성능을 향상시킬 수 있습니다.
- 리소스 관리:
- 사용되지 않는 객체를 주기적으로 회수하거나, 오랫동안 사용되지 않은 객체를 폐기하는 등의 작업을 자동으로 수행하여 리소스를 효율적으로 관리합니다.
- 설정 유연성:
- 초기 객체 수, 최대 객체 수, 객체 유휴 시간 등 다양한 설정을 통해 애플리케이션의 요구에 맞게 객체 풀을 구성할 수 있습니다.
- 다양한 사용 사례:
- 데이터베이스 커넥션 풀, 스레드 풀, 객체 캐싱 등 다양한 시나리오에서 사용될 수 있습니다.
1. 위 세 가지 라이브러리를 WEB-INF/lib 경로에 추가합니다.
2. 이클립스에서 Servers폴더의 context.xml(경로설정) 파일에 설정을 추가합니다.
예시:
<Resource
auth="Container"
driverClassName="com.mysql.cj.jdbc.Driver"
type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/MVC2_PRACTICE?serverTimezone=Asia/Seoul&useSSL=false"
name="jdbc/board"
username="root"
password="1234"
loginTimeout="10"
maxWait="5000"
/>
3. DAO 파일에 데이터베이스와 연동하는 메서드를 생성하여 데이터베이스 연결객체를 생성 및 사용합니다.
예시:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
private void getConnection() {
try {
Context initctx = new InitialContext();
Context envctx = (Context) initctx.lookup("java:comp/env");
DataSource ds = (DataSource) envctx.lookup("jdbc/board");
conn = ds.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
'JDBC' 카테고리의 다른 글
[JDBC] Statement와 PreparedStatement의 차이점 (0) | 2024.07.16 |
---|---|
[JDBC/Oracle] ojdbc를 사용한 이클립스 연결 및 셋팅 순서 (0) | 2024.01.17 |
[JDBC] JDBC 사용을 위한 코드 작성 방법 (0) | 2024.01.16 |
[JDBC/Oracle] Eclipse에서의 JDBC 사용을 위한 사전 준비(오라클) (0) | 2024.01.16 |