Oracle 설치 후 연결 및 계정 생성
# 연결 테스트
conn sys as sysdba;
alter user hr account unlock;
alter user hr identified by hr;
conn hr/hr;
select * from employees;
# 사용자 계정 만들기
conn sys as sysdba;
create user scott identified by tiger default tablespace users temporary tablespace temp;
grant connect,resource to scott;
Oracle JDBC 드라이버 J2EE 프로젝트 설정
Oracle JDBC 드라이버는 maven에 없음.
<!-- .\oracle\app\oracle\product\11.2.0\server\jdbc\lib -->
<!-- 위 경로에서 .jar 파일을 긁어서 프로젝트에 복붙하고 경로설정해주면 됨 -->
<!-- Oracle JDBC Driver -->
<dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<version>6</version>
<scope>system</scope>
<systemPath>${basedir}/WebContent/WEB-INF/lib/ojdbc6.jar</systemPath>
</dependency>
MySQL 설치 후 연결 및 계정 생성
-- MySQL Database 생성
mysql -u root –p
show databases;
use mysql;
create user scott@localhost identified by 'tiger';
select host,user from user;
grant all on *.* to scott@localhost;
-- 변경한 내용을 db에 즉시 반영
flush privileges;
exit;
mysql -u scott -p
-- 현재 유저의 권한을 열람
show grants for current_user
create database java_db;
show databases;
use java_db;
Oracle Sequence 생성
MySQL. MariaDB의 경우는 기본키를 자동으로 1씩 증가시키면서 할당하는 auto_increment 기능이 있다.
Oracle, PostgreSQL의 경우는 그것이 없어서, sequence를 만들어줘야 한다.
H2 DB의 경우는 따로 table을 만들어서 기본키를 관리하는 전략을 사용한다.
create SEQUENCE user_seq start with 1 INCREMENT BY 1 MAXVALUE 1000 CYCLE NOCACHE;
Oracle의 char, varchar, varchar2
Factory Method
종속적인 코드를 방지하는 메서드
예시
DriverManager의 getConnection() 메서드가 T4 CConnection 객체를 생성하므로 Factory Method다.
JDBC 중요한 interface 목록
MVC 패턴
Model, View, Controller로 책임을 나눠 코드를 분리해 스파게티 코드를 막는 아키텍처 패턴
Model은 DAO, VO, Service(Business Logic)
View는 HTML, CSS, JAVASCRIPT, JSP
Controller은 Servlet, Controller