1. DB ํ ์ด๋ธ ๊ตฌ์กฐ ๋ฐ ์ฟผ๋ฆฌ ์์ฑ
- ํ ์ด๋ธ ์์ฑ
CREATE DATABASE db01; # ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
use DB01;
CREATE TABLE citizen(
cid varchar(20) NOT NULL PRIMARY KEY, # cid ์ปฌ๋ผ ์์ฑ
cname varchar(20), # cname ์ปฌ๋ผ ์์ฑ
cvote tinyint(1) DEFAULT 0 # cvote ์ปฌ๋ผ ์์ฑ
)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin;
CREATE TABLE president(
pid int AUTO_INCREMENT PRIMARY KEY NOT NULL, # pid ์ปฌ๋ผ ์์ฑ
pname varchar(20), # pname ์ปฌ๋ผ ์์ฑ
pvote int DEFAULT 0 # pvote ์ปฌ๋ผ ์์ฑ
)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_bin;
- citizen ํ
์ด๋ธ
- cid : ํฌํ ์ฐธ์ฌ์์ id
- cname : ํฌํ ์ฐธ์ฌ์์ name
- cvote : ํฌํ ์ฐธ์ฌ์์ ํฌํ ์ ๋ฌด (์ค๋ณต ํฌํ ๋ฐฉ์ง, default๋ฅผ 0์ผ๋ก ํ๊ณ ํฌํ๋ฅผ ํ๋ฉด 1๋ก ์ ๋ฐ์ดํธ)


- president ํ
์ด๋ธ
- pid : ์ ๊ฑฐ ํ๋ณด์์ index (์๋ ์ธ๋ฑ์ค ์ค์ , int ํ์ )
- pname : ์ ๊ฑฐ ํ๋ณด์์ name
- pvote : ์ ๊ฑฐ ํ๋ณด์์ ๋ํ ์ (์ฐธ์ฌ์๊ฐ radio ๋ฒํผ์ ํตํด ํฌํ๋ฅผ ํ๋ฉด radio ๋ฒํผ์ value ๊ฐ์ผ๋ก president ํ ์ด๋ธ์ pid ์ ์ ๊ทผํ์ฌ pvote = pvote+1 ๋ก ์ ๋ฐ์ดํธ ํ๋ค.)
- DB์ citizen ๋ฐ์ดํฐ ์ ๋ ฅ
# ํฌํ ์ฐธ๊ฐ์ ์
๋ ฅ
INSERT INTO citizen(cid, cname) VALUES('abc1', '๋ฐ์ ๋ฏผ');
INSERT INTO citizen(cid, cname) VALUES('abc2', '๊น๊น๊น');
INSERT INTO citizen(cid, cname) VALUES('abc3', '๋ฐ๋ฐ๋ฐ');
INSERT INTO citizen(cid, cname) VALUES('abc4', '์ด์ด์ด');
INSERT INTO citizen(cid, cname) VALUES('abc5', '์ต์ต์ต');
- DB์ president ๋ฐ์ดํฐ ์ ๋ ฅ
# ์ ๊ฑฐ ํ๋ณด์ ์
๋ ฅ
INSERT INTO president(pname) VALUES('๊ฐ');
INSERT INTO president(pname) VALUES('๋');
INSERT INTO president(pname) VALUES('๋ค');
INSERT INTO president(pname) VALUES('๊ธฐ๊ถ');
2. ํ๋ก๊ทธ๋จ ์ํคํ ์ฒ (ํ๋ก์ ํธ) ์ค๊ณ

- index.jsp ๊ฐ main ํ์ด์ง
- index.jsp ์์ ํฌํ ์ฐธ์ฌ์์ cid์ cname ์ ํผ์ผ๋ก ๋ฐ๊ณ ๊ทธ ์ ๋ณด๋ฅผ /vote ๋ก ๋๊ฒจ์ค๋ค.
- /vote์์ CitizenDAO์ ๋ฉ์๋ check(String cid, String cname) ์ update(String cid)๋ฅผ ๋ถ๋ฌ์์ db์ ์ฐ๊ฒฐํ๋ค.
- chek()์ update() ์ citizen ํ ์ด๋ธ์ cid์ cvote๋ฅผ selectํ๊ณ cvote๋ฅผ 0 ์์ 1๋ก updateํ๊ธฐ
- ์ ๊ฑฐ ํ๋ณด์ ์ค ํ ๋ช ์ ์ ํํ๊ณ ํฌํํ๊ธฐ๋ฅผ ๋๋ฅด๋ฉด /result ๋ก ์ด๋
- /result ๋ก ์ด๋ํ ๋ ํฌํ ์ฐธ์ฌ์๊ฐ ์ ํํ ์ ๊ฑฐ ํ๋ณด์์ pid๋ฅผ ๊ฐ์ด ๋๊ธด๋ค.
- /result ์์ PresidentDAO์ ๋ฉ์๋ update(int pid)๋ฅผ ๋ถ๋ฌ์์ pid ์ ๋ณด๋ก president ํ ์ด๋ธ์ pvote์ ์ ๊ทผํด์ pvote๋ฅผ pvote=pvote+1๋ก ์ ๋ฐ์ดํธ ํ๋ค.


- ํ ์ด๋ธ์ citizen๊ณผ president๋ก ๋๋ ์ด์ ๋ ์ต๋ช ํฌํ๋ก ํด์ผ ํ๋ค๋ ์กฐ๊ฑด์ด ์์๊ธฐ ๋๋ฌธ์ citizen์ ์ ๋ณด์ president์ ์ ๋ณด๊ฐ ๋งค์นญ์ด ๋์ง ์๋๋ก ํ๊ธฐ ์ํด์ ๋ ๊ฐ๋ก ๋ถ๋ฆฌํด์ ์์ฑํ๋ค.
3. Spring MVC ํ๋ก๊ทธ๋๋ฐ
- MVC : Model - View - Controller ๊ตฌ์กฐ

- CitizenDAO.java : citizen ํ ์ด๋ธ์ ์ ๊ทผํ์ฌ select, update ํ๊ธฐ ์ํ ํด๋์ค
- Citizen.java : citizen ์ cid, cname ์ ์ํ getter, setter (JavaBean)
- PresidentDAO.java : president ํ ์ด๋ธ์ ์ ๊ทผํ์ฌ update ํ๊ธฐ ์ํ ํด๋์ค
- President.java : president ์ pid ๋ฅผ ์ํ getter, setter (JavaBean)
- Result.java : index.jsp ์์ VoteView.jsp ๋ก ์ด๋ํ๋ ๋ฐ ํ์ํ Controller
- Vote.java : VoteView.jsp ์์ ResultView.jsp ๋ก ์ด๋ํ๋ ๋ฐ ํ์ํ Controller
- VoteView.jsp : ํฌํ ์ฐธ์ฌ์๊ฐ id์ ์ด๋ฆ์ ์ ๋ ฅํ ํ์ ๋์ค๋ ํ์ด์ง (ํฌํ ์ฐฝ, ์ด๋ฏธ ํฌํํ์ต๋๋ค ์ฐฝ, ์๋ชป๋ ์ ๋ณด์ ๋๋ค ์ฐฝ)
- ResultView.jsp : ์ฒ์ ํฌํํ๋ ํฌํ ์ฐธ์ฌ์๊ฐ ์ ๊ฑฐ ํ๋ณด์ ์ค ํ ๋ช ์ ์ ํํด์ ํฌํํ๊ธฐ ๋ฒํผ์ ๋๋ฅธ ํ์ ๋์ค๋ ํ์ด์ง (ํฌํ ์๋ฃํ์์ต๋๋ค ์ฐฝ)
- view ํ์ผ์ webapp/WEB-INF/Views ์ ๋ฃ๋๋ก dispatcher-servlet.xml ์ ์ค์
4. ๊ฒฐ๊ณผ ํ์ธ



- DB ์ฐ๋ ํ์ธ


"์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค."
'JAVA > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] Spring Bean ์ฌ์ฉํ๊ธฐ (0) | 2021.09.24 |
---|---|
[JAVA] Spring ์ผ๋ก ์ต๋ช ํฌํ(์ ๊ฑฐ) ํ๋ก๊ทธ๋จ ๋ง๋ค๊ธฐ #2 (0) | 2021.09.19 |
[JAVA] Spring ๋ฐ์ดํฐ ์ฃผ๊ณ ๋ฐ๊ธฐ (0) | 2021.09.16 |
[JAVA] Spring Controller ์์ํ๊ธฐ (0) | 2021.09.16 |
[Java] Spring ์ด๊ธฐ ์ธํ (์๋) (0) | 2021.09.15 |
๋๊ธ