[๊ตฌ๋์์นด๋ฐ๋ฏธ IT๊ตญ๋น์ง์] mariadb(RDBMS) ์ค์น์ DDL์ ๊ธฐ์ด์ ๋ํด ๋ฐฐ์ฐ๊ณ , ์ํ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅํ์ฌ ์ดํด๋ฆฝ์ค์ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ๋ค.
์ฐ๋ฆฌ๋ ์ง๊ธ๊น์ง ๋ฐ์ดํฐ ์ถ๋ ฅ ๋ฐฉ๋ฒ (html, css)์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ (java)์ ๋ํด ๋ฐฐ์ ๋ค. ์ด์ ์ด ๋ฐ์ดํฐ๋ค์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ฐฐ์ธ ์ฐจ๋ก๋ค. ๋ฐ์ดํฐ ์ ์ฅ์ RDBMS, SQL ๋ฑ์ผ๋ก ํ ์ ์๋๋ฐ ์ฐ๋ฆฌ๋ ๊ทธ ์ค mariadb๋ผ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค.
๋ฐ์ดํฐ๋ ํ ์ด๋ธ ํํ๋ก(=2์ฐจ์ ํํ๋ก) ์ ์ฅ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ๋ ํ๋ช ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค๊ณ ๊ฐ์ ํด๋ณด์. ์ฌ๋ ํ๋ช ์ ์ ๋ณด๋ ํ ํ์ ๋ค์ด๊ฐ๊ฒ ๋๋ฉฐ, ์ด์ ์ด๋ฆ, ๋์ด, ์ง์ ๋ฑ์ด ๋ ๊ฒ์ด๋ค. ์ด๋ ์ด์ ์์ฑ์ด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๊ณ , ํด๋์ค์์๋ ํ๋(๋๋ ๋ฉค๋ฒ๋ณ์)์ ๊ฐ์ ๊ฐ๋ ์ด๋ผ๊ณ ํ ์ ์๋ค.
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋์ ์ฃผ์ํ ์ ์ด ์๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋์๋ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ ์ ์๋ ํ๋์ ํค ๊ฐ(ํ๋์ ์ด ๊ฐ)์ด ๊ผญ ์์ด์ผ ํ๋ค. ์ฌ๋์ ๊ฒฝ์ฐ๋ผ๋ฉด ์ฃผ๋ฏผ๋ฒํธ๊ฐ ๋ ๊ฒ์ด๊ณ , ์๋น์ด๋ผ๋ฉด ์ฌ์ ์๋ฑ๋ก๋ฒํธ๊ฐ ๋ ์ ์๋ค. ์ด๋ ๊ฒ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ์ ์ผํ ํค ๊ฐ์ด ๋ฐ๋์ ์กด์ฌํด์ผ ํ๋ค. ์ด๋ฌํ ์ ์ผํ ์ ๋ณด๊ฐ ์๋ค๋ฉด ๊ฐ๊ฐ ์ค๋ณต๋์ง ์๋ ๋ฒํธ๋ฅผ ๋ถ์ฌํ๋ฉด ๋๋ค.
๋ํ, ์ ๋ง๋ ๋ฐ์ดํฐ ํ ์ด๋ธ์ ์ด์ํ์์ด ์์ผ๋ฉด ์ ๋๋ค.
์ด์ํ์์ ์ธ ๊ฐ์ง๋ก ๊ตฌ๋ถ๋๋๋ฐ,
์ฝ์ ์ด์: ex) ๊ฐ์ 11๋ฐ์ธ๋ฐ ํ๋ช ์ java, ํ๋ช ์ ํ์ด์ฌ. ๊ฐ์ ๋ฐ์ธ๋ฐ ๋ค๋ฅธ ๊ณผ๋ชฉ์ด ์ ๋ ฅ๋์์ผ๋ฏ๋ก ์ด์ํ์์ด ์๊น
์ญ์ ์ด์: ex) ์ ์ผํ๊ฒ ์์๋ c# ๊ณผ์ ์ธ ์ฌ๋์ ์ ๋ณด๋ฅผ ์ง์, ๋ฐ์ดํฐ์ c#์ด๋ผ๋ ๊ณผ์ ์ด ์์ ์กด์ฌ์กฐ์ฐจ ํ์ง ์๊ฒ ๋จ, ์ฌ๋์ ์ ๋ณด๋ฅผ ์ง์ ์ ๋ฟ ๊ณผ์ ์ด ์กด์ฌํ์ง ์๋ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ด์ํ์์ด ์๊น
์์ ์ด์: ex) ๊ฐ์ 11๋ฐ ๊ฐ์ java ์๋๋ฐ ํ๋ช ์ ํ์ด์ฌ์ผ๋ก ์์ ํจ. ๋ง์ฐฌ๊ฐ์ง๋ก ์ด์ํ์์ด ์๊น
์ด๋ฌํ ์ด์ํ์์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ์ค์ผ ๋ฐฉ๋ฒ์ ๋ฐ์ดํฐ ํ ์ด๋ธ์ ๋ฐ๋ก ๋ถ๋ฆฌํด์ ์์ฑํ๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค๋ฉด ๋ฐ๊ณผ ๊ณผ์ ์ ๋งค์นญํ ๋ฐ์ดํฐ ํ ์ด๋ธ์ ๋ฐ๋ก ๋ถ๋ฆฌํด์ ์์ฑํ๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒํ๋ฉด ์ค๋ณต๋ ๋ฐ์ดํฐ ์์ฑ๋ ์ค์ฌ์ ์ค๋ฅ๋ฅผ ์ต์ํํ ์ ์๋ ๊ฒ์ด๋ค. ์ด๋ฐ ๋ฐฉ๋ฒ์ ์ ๊ทํ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ด๋ ๊ฒ ์ ๊ทํํ ๋ฐ์ดํฐ ํ ์ด๋ธ์(2๊ฐ ์ด์์ ํ ์ด๋ธ์) ์ฐ๊ฒฐํด์ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ ๊ฒ์ ์กฐ์ธ(Join)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ฐ์ดํฐ ๊ท๋ชจ์ ๋ฐ๋ผ ์ ๊ทํํ ๋ฐ์ดํฐ ํ ์ด๋ธ์ ๋ค์ ์๋๋๋ก ๋๋ฆฌ๊ธฐ๋ ํ๋๋ฐ, ์ด๊ฒ์ ์ญ์ ๊ทํ ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ ๊ท๋ชจ์ ๋ฐ๋ผ ์ ๊ทํ๋ฅผ ํ ์ง, ์ ํ ์ง ์ ํํ๋ฉด ๋๋ ๊ฒ์ด๋ค.
์ค์น๋ ์ด๊ณณ์์ ํ๋ค.
ํด๋ผ์ฐ๋ ๋ฐฐํฌ์์ ํ๊ฒฝ์ ๊ณ ๋ คํด ๋๋ฌด ์ต์ ๋ฒ์ ์ผ๋ก๋ ๋ฐ์ง ์๋๋ค.
๋ํ, ์ด๋ก ์ ์ผ๋ก ํฐ์บฃ๊ณผ ๊ฐ์ ๋๋ผ์ด๋ธ์ ์ค์นํ์ง ์๋๋ค.
๋น๋ฐ๋ฒํธ๋ ํดํน์ ๋ง๊ธฐ ์ํด ๋๋ฌด ์ฌ์ด ๋ฒํธ๋ก๋ ํ์ง ์๋ ๊ฒ์ด ์ข๋ค. root ์ ๊ทผ ํ์ฉ๋ ํ์ง ์๋ ๊ฒ์ด ์ข์ง๋ง, ์ฐ๋ฆฌ๋ ์์
์ด๋๊น ์ฒดํฌํ๋ค. ๋ง์ง๋ง utf-8์ ์ฒดํฌํด์ฃผ์ด์ผ ํ๊ธ์ด ๊นจ์ง์ง ์์ ๊ฒ์ด๋ค.
์๋ฐ์์ mariadb ์๋ฒ ์ ์ ์ ํฌํธ๋ฒํธ๋ฅผ ์์์ผํ๋๋ฐ, ์ด ๋ฒํธ๋ฅผ ๊ธฐ์ตํ๋ฉด ๋๋ค.
์ค์น๊ฐ ์ ๋์๋์ง ํ์ธํ๋ ค๋ฉด ์ด๊ณณ์์ ๊ฐ๋ฅํ๋ค. mariadb์๋ฒ ํ๋ก๊ทธ๋จ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์๋น์ค ํ๋ก๊ทธ๋จ์ด๋ผ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ ํ์ธํ ์ ์๋ค.
์ค์น๊ฐ ์ ๋์๋์ง๋ ์์์์ ๋ฐฉ๋ฒ๋ฐ์ ์๋ ๊ฒ ์ฒ๋ผ mariadb๋ ์๋ฒํด์ด๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ ๋์ผ๋ก ํ์ธ์ด ๋ถ๊ฐ๋ฅํ๋ค. ๋ฐ๋ผ์ ๊ฐ์ด ์ค์น๋(ํจํค์ง๋ก ๋ฌถ์ฌ์์) HeidSQL์ด๋ผ๋ ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์ ์ด์ฉํ๋ค.
ํฌํธ๋ฒํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ip๋ ์ ๊ธฐ์ตํด๋๋ค. 127.0.0.1 ์๊ธฐ์์ ์ ๊ฐ๋ฆฌํค๋ ip๋ค. (=๋ก์ปฌํธ์คํธ) ๋ง์ฝ db๊ฐ ํด๋ผ์ฐ๋ ์๋ฒ์ ์์ผ๋ฉด ๊ทธ ์์ดํผ๋ฅผ ์ฐ๋ฉด ๋์ง๋ง, ์ง๊ธ์ ์ฐ๋ฆฌ๋ ์์ ์ ์ปดํจํฐ๋ฅผ ์๋ฒ๋ก ์ฌ์ฉํ๋ฏ๋ก ํด๋น ์์ดํผ๊ฐ ๋ฌ๋ค.
๋ํ, ์ฌ์ฉ์๋ root๋ฉด ์๋๊ณ ๋ฐ๋ก ๋ง๋๋ ๊ฒ์ด ์ข์ง๋ง, ์ฐ๋ฆฌ๋ ์ฐ์ต์ด๋ฏ๋ก ๋์ด๊ฐ๋ค.
์ค๋ฅ๋ฐ์!
์๋์ฐ 10์ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๊ณณ์์ ํ์ผ์ ๋ค์ด๋ฐ์ ์ค์นํด์ฃผ๋ฉด ํด๊ฒฐ๋๋ค.
์ธ์
์ ์์ฑํ ํ ๋ค์ด๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ก ์์ฑํด์ค๋ค. ๋ฐ์ดํฐ๊ตฌ์กฐ๋ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ๋ฌ๊ฐ์ ํ
์ด๋ธํํ๋ก ๊ตฌ์ฑ๋๋ค. ์๋ฅผ ๋ค๋ฉด ์ผํ๋ชฐ์ด๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ, ๊ณ ๊ฐ, ์ฃผ๋ฌธ ํ
์ด๋ธ์ด ์กด์ฌํ ๊ฒ์ด๋ค. ์ฐ๋ฆฌ๋ ์ฐ์ diary๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๋ค.
๋ค์ ๋ค์ด์ฌ ๋ ์ด๊ณณ์์ diary๋ฅผ ์ ํํ๋ฉด ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง ๋ณผ ์ ์๋ค.
๋ค์ ๋์์์, ์ด์ ํ
์ด๋ธ์ ์์ฑํ๋ค.
์์ฑํ ํ
์ด๋ธ์ ์ด๋ฆ์ ๋ฃ์ด์ฃผ๊ณ , ์ด์ ์ถ๊ฐํ์ฌ ์ค๋ค. ๋๋๋ก์ด๋ฉด NULL์ ํ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค. ํ์ด ์์ฑ๋ ๋ ์ง(createdate)์ ๋ง์ง๋ง์ผ๋ก ์์ ๋ ๋ ์ง(updatedate)๋ ๋ชจ๋ ๋ฐ์ดํฐ์ ๊ผญ ์๋ ๊ฒ์ด ์ข๋ค!
๊ธฐ๋ณธํค๋ฅผ ์๋์ผ๋ก ์์ฑํ๋ค. ์์ ๋งํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ ์ ์๋ ์ ์ผํ ํค๊ฐ ๋ง๋
ํ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ, ๊ธฐ๋ณธ๊ฐ์ AUTO_INCREMENT ๋ก ์ฃผ์ด ์๋์ผ๋ก ์์ฐจ์ ์ธ ๋ฒํธ๋ฅผ ๋ถ์ฌํ ์ ์๋ค. ์ด๋ ๋ฒํธ๋ ์ด์ ์ ์์ฑ๋ ์ ์๋ ์ซ์๋ณด๋ค ํฐ ๋ฒํธ๋ก ์์ฑ ๋๋ค. (ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํด๋)
๋ํ, ์ด๋ ๊ฒ PRIMARY ๋ฅผ ์ฃผ๋ฉด ์ค๋ณต๋์ง ์์ ์ ์๋ค.
ํ ์คํธ๋ ์ฐ์ต์ ์ํด ์ํ๋ฐ์ดํฐ๊ฐ ํ์ํ ์ ์๋๋ฐ, ์ด๊ณณ์์ ๊ฐ๋ฅํ๋ค.
๋ค์๊ณผ ๊ฐ์ ์์ผ๋ก ์์ฑํ ๋ค ์ ์ฅํ๊ณ , ํด๋ผ์ด์ธํธ ํ๋ก๊ทธ๋จ์์ ํ์ผ์ ๋ถ๋ฌ์ ์คํํ๋ฉด ๋๋ค.
SQL์ RDBMS์์ ์ฌ์ฉ๋๋ ์ธ์ด์ด๋ฉฐ DDL, DCL, DML, TCL๋ก ์ธ๋ถํ๋๋ค. ์ด์ค์์ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ฅ ๋ง์ด ๋ณด๊ฒ๋ ์ธ์ด๋ DML์ด๋ค.
DML์ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ(insert), ์์ (update), ์ญ์ (delete), ์กฐํ(select)ํ๋ ๋ช
๋ น์ด์ด๋ค. ์ด์ค์์๋ SELECT๋ ๊ฐ์ฅ ์์ฃผ์ฐ๊ฒ ๋๋ค.
# table ๋ง๋๋ SQL์ฟผ๋ฆฌ - DDL(create, alter, drop)
# table ์ฌ์ฉ์ ํ๊ฐํ๋ ๊ถํ - DCL(grant, revoke)
# table ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ/์์ /์ญ์ /์กฐํฌ - DML(insert, update, delete, select)
# TCL(commit, rollback)
# ์ฝ์
ํ๊ธฐ
INSERT INTO notice(
notice_title,notice_content,notice_writer,createdate,updatedate)
VALUES ('์ฒซ๋ฒ์งธ๊ณต์ง','์๋
ํ์ธ์','๊ตฌ๋',NOW(),NOW());
INSERT INTO notice(
notice_title,notice_content,notice_writer,createdate,updatedate)
VALUES ('๋๋ฒ์งธ๊ณต์ง','๋ฐ๊ฐ์ต๋๋ค','๊ตฌ๋2',NOW(),NOW());
# COMMIT; #auto commit ์ต์
์ด on๋์ด์๊ธฐ ๋๋ฌธ์ commit์ ์
๋ ฅํ ํ์๊ฐ ์๋ค
# ์์ ํ๊ธฐ
UPDATE notice SET notice_content='์๋
ํ ๊ฐ์ธ์'
WHERE notice_no = 2;
# ์กฐํํ๊ธฐ
#๋ชจ๋ ์ด๊ณผ ํ ์กฐํ (WHERE ์๋ต)
SELECT * FROM notice;
# ์ํ๋ ์ด ๋๋ ์ํ๋ ํ์ ๊ณจ๋ผ์ ๋ณผ ์ ์์
# ์ํ๋ ํ๋ง ์กฐํ (WHERE ์ฌ์ฉ)
SELECT * FROM notice WHERE notice_no = 2;
# ์ํ๋ ์ด๋ง ์กฐํ
SELECT notice_no, notice_title FROM notice;
# ์ํ๋ ํ์ ์ํ๋ ์ด๋ง ์กฐํ ํ๋ ค๋ฉด ์ ๋ ์ฝ๋๋ฅผ ํฉ์น๋ฉด ๋จ
SELECT notice_no, notice_title from notice where notice_no = 2;
# ์ญ์ ํ๊ธฐ
DELETE FROM notice WHERE notice_writer = '๊ตฌ๋2';
# where์ ์ด ์๋ต๋๋ฉด ์ ๋ถ ์ญ์ ๋จ
DELETE FROM notice
์ด ์ค SELECT๋ฅผ ๋ ํ์ฉํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
SELECT notice_no, notice_title FROM notice
ORDER BY notice_no DESC
LIMIT 0, 10;
# ๋ด๋ฆผ์ฐจ์ ์กฐํ
# 0๋ถํฐ 10๊ฐ, ๊ทธ ๋ค์๋ถํฐ 10๊ฐ ๋ณด๋ ค๋ฉด 9, 10
SELECT * FROM notice WHERE notice_no = 500;
# ๋ชฉ๋ก์์ 500๋ฒ ๊ธ์ ์ ๋ชฉ์ ํด๋ฆญํ๋ฉด 500๋ฒ ๊ธ์ ๋ชจ๋ ์ปฌ๋ผ๊ฐ์ ์กฐํ
์ด๋ ๊ฒ ํ
์ด๋ธ์ ์ง์ INSERT ํ๊ฑฐ๋ ์ํ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ์ ์ฅํ ๋ฐ์ดํฐ ํ
์ด๋ธ์ ์๋ฐ(์ดํด๋ฆฝ์ค)์์ ํ์ฉํ ์ ์๋ค.
์ดํด๋ฆฝ์ค์์ mariadb ์๋ฒ์ ์ ์ํ๊ธฐ ์ํด์๋ ๋๋ผ์ด๋ฒ๋ฅผ ์ค์นํด์ฃผ์ด์ผ ํ๋ค. ์ด๊ณณ์์ ๊ฐ๋ฅํ๋ค.
๋ค์ด๋ฐ์ ํ์ผ์ ์์
ํ ํ๋ก์ ํธ์ ํด๋น ์์น์ ๋ฃ์ด์ค๋ค. jar ํ์ผ์ ํด๋์ค๋ค์ ๋ชจ์๋์ ํจํค์ง์ธ๋ฐ, ์ด ํ์ผ์ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฃ๋ ๊ฒ์ด๋ค.
org.maridb.jdbc.Driver ํด๋์ค๋ ์ด๊ณณ์์ ํ์ธํ ์ ์๋ค.
๋๋ผ์ด๋ฒ ์ค์น๋ฅผ ์๋ฃํ ํ ์ด์ ์ง์ jsp ํ์ผ์ ์์ฑํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ณ ์ถ๋ ฅํด๋ณด๋ ์ค์ต์ ํด๋ณด์๋ค.
๐ ์์ฑ - noticeList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import = "java.sql.Connection" %>
<%@ page import = "java.sql.DriverManager" %>
<%@ page import = "java.sql.PreparedStatement" %>
<%@ page import = "java.sql.ResultSet" %>
<%
// select ์ฟผ๋ฆฌ๋ฅผ mariadb์ ์ ์ก ํ ๊ฒฐ๊ณผ์
์ ๋ฐ์์ ์ถ๋ ฅํ๋ ํ์ด์ง
// select notice_no, notice_title from notice order by notice_no desc
// 1) mariadb ํ๋ก๊ทธ๋จ ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ์ฅ์น ๋๋ผ์ด๋ฒ๋ฅผ ๋ก๋ฉ
Class.forName("org.mariadb.jdbc.Driver");
System.out.println("๋๋ผ์ด๋ฒ ๋ก๋ฉ ์ฑ๊ณต");
// 2) mariadb ์๋ฒ์ ๋ก๊ทธ์ธ ํ ์ ์์ ๋ณด๋ฅผ ๋ฐํ๋ฐ์์ผ ํ๋ค
Connection conn = null; // ์ ์์ ๋ณด ํ์
conn = DriverManager.getConnection("jdbc:mariadb://127.0.0.1:3306/diary","****","****");
System.out.println("์ ์์ฑ๊ณต"+conn);
// 3) ์ฟผ๋ฆฌ์์ฑ ํ ์คํ
String sql = "select notice_no, notice_title from notice order by notice_no desc";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
// ResultSet๋ ๋ฐฐ์ด์ ํ ์ข
๋ฅ๋ก ์๊ฐ, ์ด ๋ฐฐ์ด์ ์ฌ์ด์ฆ๋ฅผ ์ ์ ์๋ค ํ์ง๋ง ๊ณ์ํด์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ์ ์์
// ๊ทธ๋์ ์ถ๊ฐํ ์ ๋ณด๊ฐ ์์ผ๋ฉด ํ์ค ์ถ๋ ฅ
// ์ด๊ฑธ ์ด์ฉํด์ ๋ฐ๋ณต๋ฌธ์ ๋๋ฆด ์ ์์
System.out.println("์ฟผ๋ฆฌ์คํ์ฑ๊ณต"+rs);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>noticeList.jsp</title>
</head>
<body>
<table>
<tr>
<th>notice_no</th>
<th>notice_title</th>
</tr>
<%
while(rs.next()) {
%>
<tr>
<td><%=rs.getInt("notice_no") %></td>
<td><a href=""><%=rs.getString("notice_title") %></a></td>
</tr>
<%
}
%>
</table>
</body>
</html>
DriverManager.getConnection("","","");
: ๋งค๊ฐ๋ณ์ 3๊ฐ๊ฐ ํ์ํ๋ค. ์ฃผ์, ๊ณ์ , ์ํธ. ์ฃผ์๋ "ํ๋กํ ์ฝ(jdbc:mariadb)://์ฃผ์(๋ด์์ดํผ127.0.0.1):ํฌํธ๋ฒํธ(3306)/์์(๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ฆ)"์ผ๋ก ๋ค์ด๊ฐ๋๋ฐ ๊ตณ์ด ์ธ์ฐ๊ณ ์์ ํ์๊น์ง๋ ์๋ค.rs.next()
: ํ์ ๊ฐ์ด ์๋์ง ๋ด๋ ค๊ฐ๋ฉด์ ํ์ธํ๋ ๋ฉ์๋, ๊ฐ์ด ์์ผ๋ฉด false๋ฅผ ์ถ๋ ฅ, ๊ทธ๋์ whlie๋ฌธ ์ ์ด์ฉํ๋ค.๐ ๊ฒฐ๊ณผ
๋ค์๊ณผ ๊ฐ์ด ๋ฐ์ดํฐ ํ
์ด๋ธ์ ์
๋ ฅํ๋ 500๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ถ๋ ฅ๋๋ค.
์ด๋ฒ์๋ ์ง์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์ฑ๋ถํฐ ์ดํด๋ฆฝ์ค๋ฅผ ์ด์ฉํด ์ถ๋ ฅํ๋ ๊ฒ๊น์ง ํผ์ ํด๋ณด๋ ์๊ฐ์ ๊ฐ์ก๋ค.
๐ ํ
์ด๋ธ ์์ฑ
๐ ์ฟผ๋ฆฌ ์์ฑ
INSERT๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ฃ์ด์คฌ๋ค.
SELECT * FROM student;
INSERT INTO student(
student_no,student_name,student_age,createdate,updatedate)
values(1,'๊ตฌOO',31,NOW(),NOW());
INSERT INTO student(
student_no,student_name,student_age,createdate,updatedate)
values(2,'๊ถOO',24,NOW(),NOW());
INSERT INTO student(
student_no,student_name,student_age,createdate,updatedate)
values(3,'๊นOO',31,NOW(),NOW());
๐ ์์ฑ - studentList.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import = "java.sql.Connection" %>
<%@ page import = "java.sql.DriverManager" %>
<%@ page import = "java.sql.PreparedStatement" %>
<%@ page import = "java.sql.ResultSet" %>
<%
// select ์ฟผ๋ฆฌ๋ฅผ mariadb์ ์ ์ก ํ ๊ฒฐ๊ณผ์
์ ๋ฐ์์ ์ถ๋ ฅํ๋ ํ์ด์ง
// 1) mariadb ํ๋ก๊ทธ๋จ ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ์ฅ์น ๋๋ผ์ด๋ฒ๋ฅผ ๋ก๋ฉ
Class.forName("org.mariadb.jdbc.Driver");
System.out.println("๋๋ผ์ด๋ฒ ๋ก๋ฉ ์ฑ๊ณต");
// 2) mariadb ์๋ฒ์ ๋ก๊ทธ์ธ ํ ์ ์์ ๋ณด๋ฅผ ๋ฐํ๋ฐ์์ผ ํ๋ค
Connection conn = null; // ์ ์์ ๋ณด ํ์
conn = DriverManager.getConnection("jdbc:mariadb://127.0.0.1:3306/diary","****","****");
System.out.println("์ ์์ฑ๊ณต"+conn);
// 3) ์ฟผ๋ฆฌ์์ฑ ํ ์คํ
String sql = "select student_no, student_name, student_age from student";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
System.out.println("์ฟผ๋ฆฌ์คํ์ฑ๊ณต"+rs);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>studentList.jsp</title>
<!-- Latest compiled and minified CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Latest compiled JavaScript -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
</head>
<body>
<div class="container mt-3">
<h2>ํ์๋ชฉ๋ก</h2>
<table class="table">
<thead class="table-success">
<tr>
<th>no</th>
<th>name</th>
<th>age</th>
</tr>
</thead>
<tbody>
<%
while(rs.next()) {
%>
<tr>
<td><%=rs.getInt("student_no") %></td>
<td><%=rs.getString("student_name") %></td>
<td><%=rs.getInt("student_age") %></td>
</tr>
<%2
}
%>
</tbody>
</table>
</div>
</body>
</html>
๐ ์ถ๋ ฅ
์ด๋ฒ์๋ ์๋ก์ด ๊ฒ์ ๋ฐฐ์ฐ๋ค๋ณด๋ ์ฒ์์ ๋๋ฌด ๋ฏ์ค๊ณ ์ด๋ ต๊ฒ ๋๊ปด์ก๋ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ์ฌ๋ฌ๋ฒ ๋ฐ๋ณตํด์ ์ง์ ๋ถ๋ชํ๋ณด๋ ์ ์ฐจ ์ ์ํ๋ ๊ฒ์ ๋๋ ์ ์์๋ค. ๋ฏ์ค๊ณ ์ด๋ ค์ธ์๋ก ์ฌ๋ฌ๋ฒ ๋ณด๊ณ , ์ฌ๋ฌ๋ฒ ์ง์ ํด๋ณด๋ ๊ฒ์ด ์ค์ํ๋ค๋ ๊ฒ์ ๋ค์๊ธ ๋๋ ์ ์๋ ํ๋ฃจ์๋ค.