[DataBase]
- 데이터베이스는 데이터를 영구적으로 저장할 수 있는 저장소이다.
- 데이터베이스를 이용하면 서로 다른 시스템간에 데이터를 공유할 수 있다.
- 데이터베이스를 관리하는 시스텐을 DBMS(Data Base Management System)라고 한다.
- ORACLE, MySql, No-Sql등이 존재한다.
[DataBase - JDBC]
1. JAVA와 DB연결
- JAVA와 DB 연결을위해 필요한것
1. JAVA와 DB 연결 프로그래밍
2. DB쿼리 실행 프로그래밍
3. DB쿼리 반환 값 추출 프로그래밍
- 위의 내용을 모두 수행해줄 수 있는 JDBC(Java Data Base Connectivity)가 필요하다.
- 라이브러리 파일을 다운로드받아서 WebContent/WEB-INF/lib에 추가해주면 된다.
2. DB에 접속과정
- DB에 접속해서 Data를 꺼내 온다는 것은 창고에서 물건을 꺼내오는 것과 같다.
- Connection 객체는 DB에서 하는 모든 일을 대신 DB에 접속해서 수행 해준다.
1) Driver Manager호출 ( 창고 출입 양식 받음 )
2) DM에게 id,pw,url알려줌 ( 위치와 창고를 여는 정보를 적음 )
3) Connection생성 ( 창고직원에게 전달 )
- Connection이 없으면 DB에 접근 불가
4) 필요한일을 실행한후 (창고직원이 일 처리 후)
5) Connection 종료 ( 문닫고 나온다.)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String id = "C##web_user";
String pw = "pass";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String driver ="oracle.jdbc.driver.OracleDriver";
Class.forName(driver);
Connection conn = null;
conn = DriverManager.getConnection(url,id,pw);
System.out.println("conn : " + conn);
conn.close();
%>
- JDBC를 활용하여 DBMS와 연결
1) DB 접속 정보를 준비한다.
2) 사용하는 라이브러리 드라이버를 불러온다.
3) 드라이버매니저를 불러와 커넥션을 가져와서 접속 정보를 준다.
- 드라이버 매니저가 성공하면 커넥션 객체가 생성, 실패하면 그냥 null
4) 커넥션으로 쿼리문 실행
5) 자원종료 ( 필수 !! )
[DataBase - Connection Pool]
- Connection Pool을 사용하면 Connection을 조금 더 효율적으로 사용할 수 있다.
- Connection Pool을 사용하기위해서는 몇가지 작업이 필요하다.
- servers->tomcat->context.xml에 Resource 속성추가
<Resource
name="jdbc/Oracle"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url= "jdbc:oracle:thin:@localhost:1521:xe"
username= "C##web_user"
password="pass"
/>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/Oracle");
Connection conn = null;
conn = ds.getConnection();
System.out.println("conn : " + conn);
conn.close();
%>
- Connection Pool을 활용하여 DBMS와 연결하기
1) context.xml을 객체로 가져온다.
1-1) context.xml을 java의 객체형태로 가져오는데 이름이 jdbc/Oracle인 태그를 가져온다.
- env까지는 기본으로 넣어줘야하는거 뒤에는 이름, 괄호안에 내용으로 resource를 찾음
2) 2. DataSource를 통해 가져온 정보를 이용해서 Connection 생성.
3) connection으로 쿼리문 실행하기
4) 자원종료