JBDC ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ ์คํ
Connection ๊ฐ์ฒด๋ฅผ ์์ฑํ ํ์๋ Connection์ผ๋ก ๋ถํฐ ์ฟผ๋ฆฌ ์คํ์ด ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ ์ ์๋ค. ์ฟผ๋ฆฌ ์คํย ํด๋์ค์๋ย Statement,ย PreparedStatement, CallableStatement 3๊ฐ์ง๊ฐ ์๋ค. ์ด๋ฒ์ฅ์์๋ 3๊ฐ์ง ํด๋์ค์ ์ฐจ์ด์ ๋ง ์ค๋ช ํ๊ณ ๊ฐ ํด๋์ค์ ์ฌ์ฉ๋ฐฉ๋ฒ๊ณผ ์์ธํ ์ค๋ช ์ ๋ท๋จ์์์ ์์ ์ ํจ๊ป ์ค๋ช ํ๊ฒ ๋ค.
ย 1. Statement
ย ์ ์ ์ธ ์ฟผ๋ฆฌ์ ์ฌ์ฉ๋๋ฉฐ ํ๋์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ณ ๋๋ฉด ๋ ์ด์ ์ฌ์ฉํ ์ ์๋ค.
...
Connection conn = DriverManager.getConnection(url,id,pass);
Stirng name = "ace";
int age = 20;
ย Statement stmt = conn.createStatement();
String sql =ย "insert intoย member values('"ย +name+ย "',"ย +age+ย ")";ย ย
intย r =ย stmt.executeUpdate(sql);ย // ์ฟผ๋ฆฌ๋ฅผ ์คํํ ๋ ์ ๋ ฅํ๋ค
stmt.close();
ย 2. PreparedStatement
ย ๋์ ์ธ ์ฟผ๋ฆฌ์ ์ฌ์ฉ๋๋ฉฐ ํ๋์ ๊ฐ์ฒด๋ก ์ฌ๋ฌ๋ฒ์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ ์ ์๋ค.
sql๋ฌธ์ฅ์ ์ ํด์ง์ง ์์ ๊ฐ์ ๋ฌผ์ํ(?)๋ก ํ์ํ๋ย ๋ฐ์ธ๋ฉ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค.ย ๋ฐ์ธ๋ฉ ๋ณ์์ ๊ฐ์ ํ ๋นํ๊ธฐ ์ํ์ฌ setXxx()๋ฉ์ค๋๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ด ๋ฉ์๋๋ย ๋ฌผ์ํ์ ์์น(์ฒซ๋ฒ์งธ ๋ฌผ์ํ๋ฉด 1) ๊ฐ๊ณผ ์ค์ ํ ๋น๋ ๊ฐ์ ๋งค๊ฐ๋ณ์๋ก ๊ฐ๋๋ค.ย
...
Connection conn = DriverManager.getConnection(url,id,pass);
String sql =ย "insert into member(name, age) values (?, ?)";
PreparedStatement pstmt =ย conn.prepareStatement(sql);ย //์ฟผ๋ฆฌ๊ฐ ์คํ์ ์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ ธ์ผ ํ๋ค
ย pstmt.setString(1,ย "ace");
pstmt.setInt(2, 20);
pstmt.executeUpdate();
ย // pstmt๊ฐ์ฒด๋ฅผ ์ฌํ์ฉ๋ ๊ฐ๋ฅํ๋ค
pstmt.setString(1,ย "ruppy");
pstmt.setInt(2, 18);
pstmt.executeUpdate();
pstmt.close();
ย 3. CallableStatement
ย ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ์คํ ์ด๋ ํ๋ก์์ (Stored Procedure)๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ๋ค.
Connection conn = DriverManager.getConnection(url,id,pass);
CallableStatement cs = conn.prepareCall("{call ํ๋ก์์ ์ด๋ฆ(?,?,?)}");ย
//์ ๋ ฅ์ฉ
cs.setString(1,"ace");ย
cs.setInt(2, 20);
//์ถ๋ ฅ์ฉ
cs.registerOutParameter(3, java.sql.Types.VARCHAR);ย ย ย
cs.execute();ย
cs.close();










