๐
JDBC์์ ์ผ์ข ์ ๋ฒ์ค๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ด์ ์ ์์ฑํ ์ฝ๋๋ฅผ ๋น์ฌ์๋ณด์
conn = DriverManager.getConnection(type + ip + port + sid, user, pw);
// conn์ ์ฐ๊ฒฐ ์ ๋ณด๋ฅผ ๋ด์์ฃผ์๋ค.
// type + ip + port + sid ๋ url์ ๋ํ๋ธ๋ค.
String sql = "SELECT EMP_ID, EMP_NAME, SALARY, HIRE_DATE FROM EMPLOYEE";
// DB์์ ์กฐํํ SQL๋ฌธ์ ์์ฑํด์ค๋ค.
stmt = conn.createStatement();
// Statement๋ ์ผ์ข
์ ๋ฒ์ค, SQL๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ฌํ๊ณ ResultSet์ ๋ด์์ค๋ค.
rs = stmt.executeQuery(sql);
// ๋์จ ๊ฒฐ๊ณผ(ResultSet)์ rs๊ฐ์ฒด์ ๋ด์์ค๋ค.
๋ง์ฝ ์ฌ์ฉ์์๊ฒ ์ ๋ ฅ๋ฐ์ ๊ฐ์ ์ด์ฉํ SQL๋ฌธ์ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํด๋ณด์.
System.out.print("๊ฒ์ํ ์ฌ์๋ช
์ ์
๋ ฅํ์ธ์");
String name = sc.next();
conn = DriverManager.getConnection(url, user, pw);
String sql = "SELECT EMP_ID, EMP_NAME, SALARY, HIRE_DATE FROM EMPLOYEE WHERE EMP_NAME = '" + name + "'";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
์ด์ฒ๋ผ SQL์ WHERE ์ดํ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ค. ์ง๊ธ์ ๊ฒฝ์ฐ๋ ๊ฐ๋จํ SQL๋ฌธ์ด์ง๋ง SQL๋ฌธ์ด ๋ณต์กํด์ ธ์ (๊ฐ๋ น ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด๋ค๊ฑฐ๋) ํ๋ฉด ์ผ์ผ์ด ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ณ์๋ฅผ ์ฌ์ฉํด์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ธฐ ํ๋ค์ด์ง๋ค.
PreparedStatement๋ Statement์ ์ ๊ทธ๋ ์ด๋ ๋ฒ์ ผ์ด๋ผ๊ณ ๊ฐ๋จํ๊ฒ ์๊ฐํ ์๋ ์๋ค. ๐ ๋ฌผ๋ก ์ค์ ๋ก๋ ์กฐ๊ธ ๋ ๋ณต์กํ ๊ฐ๋ ์ด๊ฒ ์ง๋ง..
PreparedStatement์๋ ?(PlaceHolder)๋ฅผ ์ด์ฉํด์ ๊ฐ์ ๋์ ํ ์ ์๋ค.
PreparedStatement pstmt = null;
..... ์๋ต ......
Class.forName(driver);
conn=DriverManager.getConnection(url, user, pw);
String sql = "INSERT INTO EMPLOYEE VALUES(?, ?, ?, ?)";
// ์ด์ ๊ฐ์ด ๋ง์ ์์ ๋์
ํ๋ค๊ณ ํด๋ณด์
....๋ณ์ ์
๋ ฅ์ ์๋ต......
pstmt = conn.prepareStatement(sql);
pstmt.set์๋ฃํ(1, ๋ด์๊ฐ);
pstmt.set์๋ฃํ(2, ๋ด์๊ฐ);
pstmt.set์๋ฃํ(3, ๋ด์๊ฐ);
pstmt.set์๋ฃํ(4, ๋ด์๊ฐ);
// ์ด์ฒ๋ผ ?์ ์์์ ๋ด์ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅํด์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉ๊ฐ๋ฅํ๋ค
JDBC์ ์ด๋ฐ Connection, Statement, ResultSet์ ์ดํดํ๋ค๋ฉด PreparedStatement ์ญ์ ์ฝ๊ฒ ์ดํดํ ์ ์๋ค.