๐ปProgramming/โ๏ธJava
Transaction(ํธ๋์ญ์ )
ํธ๋์ญ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋ ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์ ๋จ์ ๋๋ ํ ๋ฒ์ ๋ชจ๋ ์ํ๋์ด์ผ ํ ์ผ๋ จ์ ์ฐ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์์ ๋ณํ ์ ์ด ๋ฐ ํ๋ณต ์์ ์ ์ฒ๋ฆฌ๋๋ ๋ ผ๋ฆฌ์ ๋จ์ ์ฌ์ฉ์๊ฐ ์์คํ ์ ๋ํ ์๋น์ค ์๊ตฌ ์ ์์คํ ์ด ์๋ตํ๊ธฐ ์ํ ์ํ ๋ณํ ๊ณผ์ ์ ์์ ๋จ์ ํธ๋์ญ์ ์ ํน์ง(ACID) 1) ์์์ฑ(Atomic) ALL OR NOTHING - ํธ๋์ญ์ ์ ํ ๊ฐ ์ด์์ ๋์์ ๋ ผ๋ฆฌ์ ์ผ๋ก ํ ๊ฐ์ ์์ ๋จ์๋ก ๋ฌถ์ - ์์์ฑ์ ํธ๋์ญ์ ๋ฒ์์ ์๋ ๋ชจ๋ ๋์์ด ๋ชจ๋ ์คํ๋๊ฑฐ๋ ๋ชจ๋ ์คํ์ด ์ทจ์๋จ์ ๋ณด์ฅ 2) ์ผ๊ด์ฑ (Consistent) ํธ๋์ญ์ ์ด ์ข ๋ฃ๋๋ฉด, ์์คํ ์ ๋น์ฆ๋์ค์์ ๊ธฐ๋ํ๋ ์ํ๊ฐ ๋จ ์๋ฅผ ๋ค์ด, ์์ ๊ตฌ๋งค ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์คํ๋๋ฉด ๊ฒฐ์ ๋ด์ญ, ๊ตฌ๋งค๋ด์ญ..
CallableStatement ํ์ฉ(1) - ์ค๋ผํด ํ๋ก์์
1. ํ๋ก์์ ์์ฑ ๋ฐ์ดํฐ ์ถ๊ฐ, ์ญ์ , ์์ , ํ๋ฒ ๊ฒ์, ์ด๋ฆ ๊ฒ์, ์ ์ฒด ๋ฆฌ์คํธ, ํ๊ท ๊ณ์ฐ ํ๋ก์์ ์์ฑ ์ ์ ์์ฌํญ developer์์๋ ์๋ ์ปค๋ฐ์ด ๋์ง ์์ผ๋ฏ๋ก COMMIT ํด์ผํจ %TYPE ํผ์ผํธํ์ ํน์ ํ ์ด๋ธ์ ํฌํจ๋์ด ์๋ ์ปฌ๋ผ์ ์๋ฃํ์ ์ฐธ์กฐํ๋ ๋ฐ์ดํฐ ํ์ ์ ์๋ฏธ pHak score.hak%TYPE pHak์ด๋ผ๋ ๋ณ์๋ช ์ ํ์ ์ score ํ ์ด๋ธ์ hak ์ปฌ๋ผ์ ํ์ ์ ๊ฐ์ ธ์์ ์ฐ๊ฒ ๋ค๋ ์๋ฏธ 1. SCORE ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ํ๋ก์์ CREATE OR REPLACE PROCEDURE insertScore ( pHak IN score.hak%TYPE, pName IN score.name%TYPE, pBirth IN score.birth%TYPE, pKor IN score...
CallableStatement
CallableStatement - PreparedStatement ํ์ ์ธํฐํ์ด์ค - SQL ์ ์ฅ ํ๋ก์์ (stored procedure)๋ฅผ ์คํํ๋๋ฐ ์ฌ์ฉ๋๋ ๊ฐ์ฒด - ํ๋ก์์ ํธ์ถ ๊ตฌ๋ฌธ์๋ ๊ฒฐ๊ณผ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ง๋ ํํ์ ๊ฒฐ๊ณผ ๋งค๊ฐ๋ณ์๊ฐ ์๋ ํํ ๋ ํํ ๋ชจ๋ IN ๋งค๊ฐ๋ณ์(์ ๋ ฅ), OUT ๋งค๊ฐ๋ณ์(์ถ๋ ฅ) , ๋๋ INOUT ๋งค๊ฐ๋ณ์(์ ์ถ๋ ฅ)๋ฅผ ์ํด ์ฌ์ฉ๋์ด์ง๋ ๋งค๊ฐ๋ณ์์ ๋ณ์ ๋ฒํธ๋ฅผ ๊ฐ์ง๋ฉฐ ?๋ ๋งค๊ฐ๋ณ์์ ์ ์ฅ์์น๋ก ๋ํ๋ - CallableStatement ๊ฐ์ฒด๋ Connection์ prepareCall(String sql) ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ป๋๋ค - ๊ฒฐ๊ณผ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ง๋ ๊ฒฝ์ฐ(function) {? = call procedure_name[(?, ?, ...)]} ๊ฒฐ๊ณผ ๋งค๊ฐ๋ณ์๋ OUT ๋งค..
PreparedStatement ํ์ฉ
myBatis๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ ์ค๋ช ๋ ๋ฒ๊ฑฐ๋ก์ด ์์ ์ ๊ฐํธํํ ์ ์๋ค... MemberDTO ํด๋์ค ๋ฐ์ดํฐ ์ ์ก ๊ฐ์ฒด ํ ํ์์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ getter, setter์ ํตํด ๋ค๋ฅธ ํด๋์ค์์ ์ ๊ทผ ๊ฐ๋ฅ package db.member2; public class MemberDTO { private String id; private String pwd; private String name; private String birth; private String email; private String tel; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPwd() { re..