JSP

 

 

 

--임의  폴더를 만든다. 필자는 D 드리버의 oracleDB 폴더를 생성했다.

-- 콘솔창을 연다

-- C:> cmd

-- DBA 접속

-- C:> sqlplus / as sysdba

-- 테이블 스페이스 생성

create tablespace macaronics
datafile 'D:\oracleDB/macaronics.dbf'
size 50m 
autoextend on
next 10m
maxsize unlimited;

 

 

 

-- 계정 생성

create user macaronics identified by 1111 default tablespace macaronics;


-- 권한 설정
grant connect, resource, create view to macaronics;

 

 

--임의  폴더를 만든다. 필자는 D 드리버의 oracleDB 폴더를 생성했다.

-- 콘솔창을 연다

-- C:> cmd

-- DBA 접속

-- C:> sqlplus / as sysdba


-- 테이블 스페이스 생성

create tablespace macaronics
datafile 'D:\oracleDB/macaronics.dbf'
size 50m 
autoextend on
next 10m
maxsize unlimited;


-- 계정 생성

create user macaronics identified by 1111 default tablespace macaronics;


-- 권한 설정
grant connect, resource, create view to macaronics;






-- 관리자 테이블 생성
create table tbl_admin(
	
	id varchar2(20) PRIMARY KEY ,  -- 아이디
	pwd VARCHAR2(20),				-- 비밀번호
	name varchar2(40),				-- 이름
	phone varchar2(20)				-- 전화번호

) TABLESPACE macaronics ;  


-- 주소 테이블 생성
create table tbl_address(

	zip_num VARCHAR2(10),    -- 우편번호
	address1 VARCHAR2(100),  -- 주소
	address2 VARCHAR2(100)   -- 상세주소

);

-- 회원 테이블 생성
create table tbl_member (

  id varchar2(20) PRIMARY KEY , -- 회원아이디
  pwd VARCHAR2(20) ,			-- 회원암호
  name VARCHAR2(40),			-- 회원이름
  email VARCHAR2(40),			-- 회원 이메일
  zip_num VARCHAR2(10),			-- 우편번호
  address VARCHAR2(200),		-- 주소
  phone VARCHAR2(20),			-- 전화번호
  useyn char(1) default 'y',				-- 탈퇴여부 회원의 탈퇴 여부 체크, y:사용가능, n:탈퇴
  ip varchar(100),				-- 가입시 아이피 주소
  indate date default sysdate	-- 가입일
  
)TABLESPACE macaronics ;  
  

-- 상품 테이블

create table tbl_product (

	pseq number PRIMARY KEY , -- product_seq 시퀀스 객체로 자동 일련번호 부여
	name VARCHAR2(100) DEFAULT 0,			-- 상품명 
	kind char(1),		-- 상품 종류 
	price1 number DEFAULT 0,			-- 원가
	price2 number default 0,			-- 판매가
	price3 number DEFAULT 0,			-- 판매가-원가
	content VARCHAR2(3000) null,		-- 상품 내용
	image VARCHAR2(150) DEFAULT 'default.jpg',	
	useyn VARCHAR2(1) DEFAULT 'y', 			-- 상품 사용유무 체크 y: 사용가능 n: 사용 불가능
	bestyn VARCHAR2(1) DEFAULT 'n',			-- 베스트상품인지 여부 체크 y:베스트 상품 n:베스트 상품 아님
	indate date default sysdate			-- 등록일
	

) TABLESPACE macaronics ;  

-- 상품 테이블 시퀀스 생성
create SEQUENCE product_seq 
 START WITH 1 
 INCREMENT BY 1
 NOMAXVALUE 
 NOCYCLE ; 


-- 장바구니 테이블

create table  tbl_cart(
	cseq number PRIMARY KEY,  -- 장바구니 번호 - cart_seq 시퀀스로 객체로 자동 일련번호 부여
	id VARCHAR2(20),		--  FK 회원아이디 tbl_number 테이블의 기본키인 id 컬럼	
	pseq number,			-- FK 상품번호  tbl_product 테이블의 기본키인 pseq
	quantity number  DEFAULT 1, -- 수량
	result char(1)   default '1', -- 처리완료여부 1 미처리 2처리
	indate date DEFAULT sysdate	 -- 등록일

)TABLESPACE macaronics ;  

-- 장바구니 테이블 시퀀스 생성

create sequence cart_seq
 START WITH 1
 INCREMENT BY 1
 NOMAXVALUE 
 NOCYCLE ;
 


-- tbl_cart  id 외래키 제약조건 추가
alter table tbl_cart
add constraint tbl_cart_id_fk foreign key(id)
references tbl_member(id) on delete cascade;


-- tbl_cart  pseq 외래키 제약조건 추가
alter table tbl_cart
add CONSTRAINT tbl_cart_pseq_fk FOREIGN KEY (pseq)
REFERENCES tbl_product(pseq) on delete CASCADE ;




-- 주문 테이블 명 tbl_orders

create table tbl_orders(

   oseq number PRIMARY KEY,		 -- 주문번호
   id varchar2(20) 	, 			-- 주문자 아이디 , tbl_member 테이블의 기본키의 id컬럼
   indate date default sysdate		-- 주문일			  
)TABLESPACE macaronics ;  

-- tbl_orders 시퀀스 생성
create SEQUENCE orders_seq 
 START WITH 1
 INCREMENT BY 1
 NOMAXVALUE 
 NOCYCLE ; 
 


 
-- tbl_orders 외래키 제약 조건 추가 
alter table TBL_ORDERS 
add CONSTRAINT TBL_ORDERS_id_fk FOREIGN KEY (id)
REFERENCES tbl_member(id) on DELETE CASCADE ;



-- 주문 상세 테이블 생성
create table tbl_order_detail(
	
	odseq number PRIMARY KEY , -- 주문 상세번호  order_detail_seq 시퀀스 객체로 자동 일련 번호 부여
	oseq number ,			--  FK 주문번호 tbl_orders 테이블의 기본 키인 oseq 컬럼
	pseq number ,			--  FK 상품번호 tbl_product 테이블릐 기본 키인 pseq 컬럼
	quantity number,		-- 주문수량
	result char(1) 	DEFAULT  1  -- 처립여부 1: 미처리 2 : 처리
)TABLESPACE macaronics ;  


-- 주문 상세 테이블 시퀀스 생성
create SEQUENCE order_detail_seq
START WITH 1
INCREMENT by 1
NOMAXVALUE 
NOCACHE 
NOCYCLE;


-- TBL_ORDER_DETAIL oseq 외래키 제약 조건 추가 
alter table TBL_ORDER_DETAIL
add CONSTRAINT tbl_order_detail_oseq_FK FOREIGN key(oseq)
REFERENCES tbl_orders(oseq) on DELETE CASCADE ;


-- TBL_ORDER_DETAIL pseq 외래키 제약 조건 추가 
alter table TBL_ORDER_DETAIL
add CONSTRAINT tbl_order_detail_pseq_FK FOREIGN key(pseq)
REFERENCES tbl_product  (pseq) on DELETE CASCADE ;


-- 테이블 명 tbl_qna 생성
create table tbl_qna(
	
	qseq number PRIMARY KEY , -- 글번호  qna_seq 시퀀스 객체로 자동 일려번호 부여
	subject VARCHAR2(30) ,	-- 제목 
	content VARCHAR2(3000), -- 문의 내용
	reply VARCHAR2(3000),	-- 답변 내용
	id VARCHAR2(20),		-- 작성자 아이디 member 테이블의 기본키인 id 컬럼
	rep char(1) default '1',			-- 답변 유무  1:답변 무 2:답변 유
	indate date default sysdate

)TABLESPACE macaronics ;  

-- 테이블 명 tbl_qna 시퀀스 생성
CREATE SEQUENCE qna_seq
START WITH 1 
INCREMENT by 1
NOMAXVALUE 
NOCYCLE 
NOCACHE ;


-- tbl_qna id 외래키 제약조건 추가
alter TABLE TBL_QNA
add CONSTRAINT tbl_qna_id_FK FOREIGN KEY (id)
REFERENCES tbl_member (id) on delete CASCADE ;






-- 카트 뷰 생성 
create or replace view cart_view
as
select o.cseq, o.id, o.pseq, m.name mname, p.name pname, p.image,
o.quantity, o.indate, p.price2, o.result 
from tbl_cart o, tbl_member m, tbl_product p 
where o.id = m.id and o.pseq = p.pseq
and result='1';


-- 주문 뷰 생성  ( 주문, 주문상세 회원, 상품  조인 ) 
create or replace view order_view
as
select d.odseq, o.oseq, o.id, o.indate, d.pseq,d.quantity, m.name mname,
m.zip_num, m.address, m.phone, p.name pname, p.price2, d.result   
from tbl_orders o, tbl_order_detail d, tbl_member m, tbl_product p 
where o.oseq=d.oseq and o.id = m.id and d.pseq = p.pseq;
 

 
           
-- 베스트 상품 뷰 생성  (상품 테이블에서 베스트인경우만 추출 )
create or replace view best_pro_view
as
select pseq, name, price2, image 
from( select rownum, pseq, name, price2, image 
      from tbl_product  
      where bestyn='y' 
      order by indate desc)
where  rownum <=12;



-- 신상품 상품 뷰 생성 (상품 테이블에서 신상품 경우만 추출 )
create or replace view new_pro_view
as
select pseq, name, price2, image 
from( select rownum, pseq, name, price2, image 
      from tbl_product  
      where useyn='y' 
      order by indate desc)
where  rownum <=12;

 

 

 

 

데이터베이스를 생성 했으면 다음과 같이 변경하자.

sever.xml  에서 프로젝트를 실행하여 생긴 Context 태그를 찾아 Resource  

다음과 같이 추가하자.

					<Resource auth="Container" driverClassName="oracle.jdbc.driver.OracleDriver"
						loginTimeout="10" maxWait="5000" name="jdbc/pool" password="1111"
						type="javax.sql.DataSource" url="jdbc:oracle:thin:@localhost:1521:XE"
						username="macaronics" />

 

참조 사이트  =>

JNDI를 이용한 DBCP 구현(oracle) 

 

 

 

 

제작 : macaronics.net -  JUHO CHOI

소스 :  https://github.com/braverokmc79/jsp_sin


 

 

about author

PHRASE

Level 60  라이트

나의 허물을 보고 꾸짖어 주는 지자( 智者 )를 만나면 보배를 보여주는 사람을 보듯 대하여라. -성전

댓글 ( 4)

댓글 남기기

작성