http://www.oracle.com |
확실히 오전부터 느낌이 달랐다
DB에 날짜타입 넣는 법을 배울 때 뭔가 게시판을 배울 것 같았는 데
역시나 메모장 만들기에 돌입했나.. 말이 메모장이지 강사님이 부담가지지말라고
메모장 프로젝트로 이름을 바꾼듯 하다
- ORACLE DATE
* date : 오라클 시간 데이터 타입
* sysdate : 현재 시간
* dual table : 오라클에서 제공하는 컬럼 하나로 구성된 테이블
SELECT sysdate FROM dual;
* 조회시 연 월 일 포맷으로 조회해본다
* 시간 정보를 문자열 형태로 변환하는 함수 to_char(시간,포맷)
SELECT to_char(sysdate,'YYYY/MM/DD') FROM dual;
SELECT to_char(sysdate,'YYYY/MM/DD HH24:MI:SS') FROM dual;
CREATE TABLE date_test(
id varchar2(50) PRIMARY KEY,
mydate DATE NOT null
)
INSERT INTO date_test(id,mydate) VALUES('java',sysdate);
* id와 mydate 조회시 mydate는 년 월 일 형식으로 조회한다
SELECT id,to_char(mydate,'YYYY/MM/DD') FROM date_test;
* to_date(시간정보,포맷)
INSERT INTO date_test(id,mydate)
VALUES('jsp',to_date('2016/7/20 9:00:10','YYYY/MM/DD HH24:MI:SS'));
* 몇일이 경과했는 지 조회
SELECT id,sysdate-mydate FROM date_test;
| cs |
- DBCP(Database Connection Pool)
java application 과 database 연동시 컨넥션 생성과 소멸은
많은 자원이 소모되는 부분이다.
시스템 성능 향상을 위해 미리 컨넥션들을 생성해 하나의 공간에 저장한 후
빌려오고 반납받는 방식으로 처리한다.
참고 )
현재 DBCP 클래스는 WAS 제품군에서 제공하는 것을 사용한다.
다양한 WAS 제품들(tomcat, jboss, weblogic...)
현재 DBCP 클래스는 WAS 제품군에서 제공하는 것을 사용한다.
다양한 WAS 제품들(tomcat, jboss, weblogic...)
때문에 write once, run anywhere 즉 플랫폼 독립적인 코드를 구현하기 위해
모든 DBCP 클래스는 javax.sql.DataSource인터페이스를 구현하고 있다.
모든 DBCP 클래스는 javax.sql.DataSource인터페이스를 구현하고 있다.
적용하는 방법
1. 코드상에서 was에서 제공하는 BasicDataSource를 기술
2. config/server.xml 에 dbcp 를 명시하고 lookup(검색)하여 사용
↳ DL ( Dependency Lookup)
IOC(inversion of control)
제어의 역행
제어의 역행
IOC에는 DL(dependency lookup) 과 DI(dependency injection) 가 있다.
기존의 제어방식은 의존대상(특정객체 ex-DBCP)이 필요시 객체 생성을 직접 했다.
IOC(역제어)란 제어 방식의 역행으로 직접 객체를 생성하지 않고
외부에서 객체를 생성해서 검색(lookup) or 주입(injection) 을 통해
외부에서 객체를 생성해서 검색(lookup) or 주입(injection) 을 통해
의존 관계를 처리하는 것을 말한다.
↳ 환경 변화에 따른 유지보수성 향상이 목적이다.
(의존 대상의 결합도를 낮추기 위한)
1번 방식에서 기존 DataSourceManager 생성자에서
직접 객체를 생성하는 것이 아니라 WAS의 DBCP 설정을 추가하고
그 것을 Lookup하는 방식으로 처리한다.
그 것을 Lookup하는 방식으로 처리한다.
(환경이 변화되면 (db 정보 변경 or WAS 변경) 소스 코드 수정은 필요없다)
WAS 설정을 통한 DBCP
* 설정할때 이전에 설정된 tomcat 을 지우고 설정 후 server tab 에서 새로 생성
1.conf/server.xml파일을 열고 <GlobalNamingResources>엘리먼트 안에 다음 내용 추가.
<Resource name="jdbc/mydbcp" auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521:xe"
username="scott" password="tiger"
/>
2. conf/context.xml에 추가
<ResourceLink global="jdbc/mydbcp" name="jdbc/mydbcp" type="javax.sql.DataSource"/>
------------
Test Code
------------
try {
InitialContext ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mydbcp");
System.out.println("톰캣 데이터베이스 커넥션풀 생성" + ds);
} catch (NamingException e) {
e.printStackTrace();
}
3. spring framework 과 같이 DI(Dependency Injection) 을 적용해 사용
| cs |
결국 날짜를 적용한 메모장 만들기를 만들기위해
oracle에 date타입에 대하여 배우고 DBCP적용 방법을 DL에서 DI로 바꾼 후
메모장의 이름을 쓴 게시판을 만들어 본 하루 였다.
0 개의 댓글:
댓글 쓰기