JDBC (Java DataBase Connectivity)
- 데이터베이스를 조작하는 API 이다.
- java.sql 패키지에 위치하고 있다.
JDBC API
- 데이터베이스와의 통신 (Connection , Statement, Result 등.. 객체)
- SQL문을 구성 DB서버에서 실행
- SQL문에 대한 결과를 반환
JDBC의 특징 및 장점
- JDBC는 인터페이스기반으로 구축 되어있다. 어떠한 데이터베이스를 사용하더라도 동일한 코드로 작성한다.
---------------------------------------------------------------------------------------------------------
JNDI(Java Naming and Directory Interfase)
- 디렉토리 서비스에서 제공하는 데이터 및 객체를 발견하고 참고 하기 위한 자바 API
- J2EE 플랫폼의 일부
- 여러대의 서버간에 JNDI를 이용하여 객체를 등록, 참조하여 이용
- javax.naming 패키지안에 존재
- 여러 웹 서버(톰켓,웹로직,제우스 등)에서의 사용
- 기본 네임스페이스의 java:com/env 이다.
Tomcat JNDI 설정 (jdbc)
아래의 소스는 DBCP 설정을 할때 자주 보는 소스이다.
모든 리소스들은 JNDI 네임스페이스의 java:com/env 부분에 설정됨
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
envCtx.lookup("리소스명");
위의 리소스명은 web.xml에 작성된 <res-ref-name>의 값과 일치 해야 할 것이고,
<resource-ref>
<description> Resource </description>
<res-ref-name> jdbc/EmployeeDB </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>
또 server.xml에 작성된 Resouce name 과 같아야 한다.
<Resource name="jdbc/EmployeeDB"
auth="Container"
type="javax.sql.DataSource"
username="dbusername"
password="dbpassword"
driverClassName="driverName"
url="jdbc:oracle:thin...."
maxActive="8"
maxIdle="4"
/>
---------------------------------------------------------------------------------------------------------
하나의 웹 어플리케이션에 여러개의 리소스가 생길 수 있다.
결국 이말은 하나의 웹 홈페이지에서 리소르를 추가해 두개이상의 데이터베이스를 접속할 수 있다는 것이다.
JDBC와 JNDI를 쉽게 말해
데이터베이스를 이용한 홈페이지를 만들기 위해서는 데이터베이스에 접속하기 위해 jdbc 드라이버가 필요 하고,
이 jdbc가 데이터베이스를 조작하는데 있어 객체를 발견하고 참고 하기위해 편한 JNDI가 있다.
커넥션풀(DBCP)를 이용할 때 위와 같이 두개를 쓸 것이다.
'유용한팁' 카테고리의 다른 글
[Tip] 자바웹프로그래머의 기본 (0) | 2012.12.13 |
---|---|
[Tip] 이 스크립트를 실행하면 느려진다는 메세지 (0) | 2012.11.27 |
[Tip] jar download (0) | 2012.10.19 |
[Tip] eclipse svn 계정 재 적용 (0) | 2012.08.29 |
[Tip] 이클립스 속도 향상 (0) | 2012.08.14 |