김은옥씨가 지은 은노기의 JSP2.3 웹프로그래밍에 나오는 shoppingmall 프로그램을 돌려보기 위한 참고사항을 적어본다.
소스코드는 아래에 첨부한다.
이 프로그램은 데이터베이스로 MySQL을 사용하였다. 나는 v8.0.13을 사용하였다.
위 소스코드 중 WebContent/WEB-INF/sql/database.sql 파일을 참조한다.
다음과 같이 데이터베이스 및 사용자를 생성하고 권한을 부여해준다. (root 권한으로 실행한다.)
-- 은노기 shoppingmall 프로젝트
create database jsptest;
create user 'jspid'@'localhost' identified by 'jsppass';
create user 'jspid'@'%' identified by 'jsppass';
grant all privileges on jsptest.* to 'jspid'@'localhost';
grant all privileges on jsptest.* to 'jspid'@'%';
commit;
다음과 같이 테이블과 사용자 데이터를 추가한다.
create table member(
id varchar(50) not null primary key,
passwd varchar(16) not null,
name varchar(10) not null,
reg_date datetime not null
);
alter table member
add (address varchar(100) not null,
tel varchar(20) not null);
desc member;
insert into member(id, passwd, name, reg_date, address, tel)
values('kingdora@dragon.com','1234','김개동', now(), '서울시', '010-1111-1111');
insert into member(id, passwd, name, reg_date, address, tel)
values('hongkd@aaa.com','1111','홍길동', now(), '경기도', '010-2222-2222');
select * from member;
alter table member modify passwd varchar(60) not null;
create table board(
num int not null primary key auto_increment,
writer varchar(50) not null,
subject varchar(50) not null,
content text not null,
passwd varchar(60) not null,
reg_date datetime not null,
ip varchar(30) not null,
readcount int default 0,
ref int not null,
re_step smallint not null,
re_level smallint not null
);
desc board;
--쇼핑몰
create table manager(
managerId varchar(50) not null primary key,
managerPasswd varchar(60) not null
);
insert into manager(managerId,managerPasswd)
values('bookmaster@shop.com','123456');
insert into manager(managerId,managerPasswd)
values('ksseo63@naver.com','ekffksxm0');
create table book(
book_id int not null primary key auto_increment,
book_kind varchar(3) not null,
book_title varchar(100) not null,
book_price int not null,
book_count smallint not null,
author varchar(40) not null,
publishing_com varchar(30) not null,
publishing_date varchar(15) not null,
book_image varchar(16) default 'nothing.jpg',
book_content text not null,
discount_rate tinyint default 10,
reg_date datetime not null
);
create table qna(
qna_id int not null primary key auto_increment,
book_id int not null,
book_title varchar(100) not null,
qna_writer varchar(50) not null,
qna_content text not null,
group_id int not null,
qora tinyint not null,
reply tinyint default 0,
reg_date datetime not null
);
create table bank(
account varchar(30) not null,
bank varchar(10) not null,
name varchar(10) not null
);
insert into bank(account, bank, name)
values('11111-111-11111','내일은행','오내일');
create table cart(
cart_id int not null primary key auto_increment,
buyer varchar(50) not null,
book_id int not null,
book_title varchar(100) not null,
buy_price int not null,
buy_count tinyint not null,
book_image varchar(16) default 'nothing.jpg'
);
create table buy(
buy_id bigint not null,
buyer varchar(50) not null,
book_id varchar(12) not null,
book_title varchar(100) not null,
buy_price int not null,
buy_count tinyint not null,
book_image varchar(16) default 'nothing.jpg',
buy_date datetime not null,
account varchar(50) not null,
deliveryName varchar(10) not null,
deliveryTel varchar(20) not null,
deliveryAddress varchar(100) not null,
sanction varchar(10) default '상품준비중'
);
데이터베이스 연동을 위한 설정은 WebContent/META-INF/context.xml을 참조한다.
또한 MySQL JDBC Connector 파일도 자신이 사용하는 MySQL Server 버전에 맞추어 변경해 주어야 한다. 이것은 studyjsp와 shoppingmall 프로젝트의 WebContent/WEB-INF/lib 폴더 밑에 있는 JDBC Connecctor 라이브러리에 대하여 맞추어 주어야 한다. 나는 v8.0.13을 사용하므로 mysql-connector-java-8.0.13.jar로 변경해 주었다. (기존에는 5.x.x 버전을 사용)
사용자에 대한 암호를 암호화하기 위해서는 9장에 있는 cryptProcess.jsp를 구동해 주어야 한다. (http://localhost:8080/shoppingmall/ch09/cryptProcess.jsp)
이는 studyjsp 프로젝트 폴더에 있는 소스코드를 shoppingmall 프로젝트 폴더로 복사하여 사용하였다.
주님이 나에게 맡기신 달란트(헬라어로는 Talanton)를 남기고자 합니다. 주님에게 칭찬받는 종이 되기 위하여 주님이 주신 달란트를 땅에 묻어 두지 아니하고, 2배, 5배, 아니 10배를 남기고자 합니다. 나는 부족하지만, 주님께서 함께 하신다면 가능합니다. 하루를 기도로