์ ๋ฒ ์ค์ต์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๋ ์์ด DAO ํด๋์ค ์์ฑ์๋ก ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ช ๊ฐ ๋ฃ์ด์ model๋ก ํ์ฉํ์๋ค
์ด์ ๋ถํด h2 database์ jdbc๋ฅผ ์ด์ฉ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๋์ ํ ๊ฒ์ธ๋ฐ ๋ฌด์์ธ์ง ์์๋ณด์
โ
h2 database ์ฌ์ฉํ๊ธฐ
h2 database ์ค์น โก๏ธ h2 console ์ฑ ์คํ โก๏ธ create a new database... โก๏ธ ์ํ๋ ๋ด์ฉ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
โ
JDBC ๋๋ผ์ด๋ฒ ์ค์นํ๊ธฐ
pom.xml์ dependency ์ถ๊ฐํ๋ฉด ์๋์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ค์ด ๋ฐ๊ณ ํ๋ก์ ํธ์์ ์ฐธ์กฐ
(๋ฉ์ด๋ธ์ด๋๊น ๐)
์ฃผ์ํ ๊ฒ ๋ช๊ฐ์ง๋ฅผ ์ดํด๋ณด์
1. java.sql.Driver : JDBC Driver ์ ๋ณด๋ฅผ ์ ๊ณต, DBMS์์ ์ฐ๊ฒฐ์ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด ๋ฆฌํด
2. java.sql.Connection : ํน์ DBMS ์ฐ๊ฒฐ ์ํ, DBMS์ sql์ ์ ๋ฌํ Connection ๊ฐ์ฒด ๋ฆฌํด
3. java.sql.Statement : SQL query๋ฌธ์ DB์ ์ ์กํ๋ ๋ฐฉ๋ฒ์ ์ ์ํ ์ธํฐํ์ด์ค๋ก sql์ MySQL ํ์์ ๋ง์ถฐ ๋ณํ ํ ์๋ฒ์ ์ ๋ฌ, ์๋ฒ๊ฐ ๋ณด๋ธ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฃฐ ๊ฐ์ฒด ๋ฆฌํด
executeQuery(); executeUpdate();
3.1 java.sql.PreparedStatement : Statement์ ํ์ interface๋ก SQL๋ฌธ์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋๊ณ ๋ณ์๋ฅผ ๋ฐ๋ก ์
๋ ฅ, Statement ํด๋์ค๋ฅผ ์์ ๋ฐ์ผ๋ฏ๋ก ๋ฉ์๋ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅ
4. java.sql.ResultSet : DBMS์์ select ์คํ ํ ์์ฑ ๊ฒฐ๊ณผ๋ฅผ ์กฐํํ ์ ์๋ ์ธํฐํ์ด์ค
next(); : ์๋ฒ์์ ํ ๊ฐ์ ๋ ์ฝ๋๋ฅผ ๊ฐ์ ธ์ด

1๋จ๊ณ JDBC ๋๋ผ์ด๋ฒ ๋ก๋
Class.forName("org.h2.Driver");2๋จ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ
Connection conn= DriverManager.getConnection(JDBC_URL,"id","pw");3๋จ๊ณ Statement ์์ฑ
PreparedStatement pstmt= conn.prepareStatement("insert into test values(?,?)"); //๊ฐ ๋ถ๋ถ์ ๋ฌผ์ํ๋ก ๋์น
//setString(int index,String x) ํด๋น ์ธ๋ฑ์ค์ ํ๋ผ๋ฏธํฐ ๊ฐ์ x๋ก ์ง์
pstmt.setString(1,request.getParameter("name"));
pstmt.setString(2,request.getParameter("email"));
4๋จ๊ณ SQL๋ฌธ ์ ์ก
executeQuery() select๋ฌธ์ ์ํํ ๋ ์ฌ์ฉ, ๋ฐํ ๊ฐ์ ResultSet ํด๋์คexecuteUpdate() update, delete ๋ฌธ ๋ฑ์ ์ํํ ๋ ์ฌ์ฉ, ๋ฐํ ๊ฐ์ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ์ ์5๋จ๊ณ ๊ฒฐ๊ณผ ๊ฐ๊ณ ์ค๊ธฐ
ResultSet rs=pstmt.executeQuery();6๋จ๊ณ ์ฐ๊ฒฐ ํด์
rs.close();
pstmt.close();
conn.close();