A์ ์ฒด์์ ๋ฐ์ ๋ฐ์ดํฐ๋ TABLE_DATA_1 ์ ์ ์ฅํ๊ณ
B์ ์ฒด์์ ๋ฐ์ ๋ฐ์ดํฐ๋ TABLE_DATA_2 ์ ์ ์ฅํ๋ค.
--์ด๋, A์ ์ฒด B์ ์ฒด๋ก ๋ถํฐ ๊ฐ๊ฐ ๋ค์ด์ค๊ธฐ ๋๋ฌธ์ (์ถํ C, D ์ ์ฒด๋ฑ ํ์ฅ ๊ฐ๋ฅ) ์ธ์ ๋ค์ด์๋์ง ํ์ธ๋ชฉ์ ์ผ๋ก
--๋ฐ์ดํฐ ์ทจํฉ์ฌ๋ถ๋ฅผ ์ฒดํฌํ๋TABLE_COLC ๋ฅผ ๋ง๋ค์๋ค.
--๊ฐ ๋ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋ค์ด์์ผ๋ฉด 'Y' ๋ก ์์ง ์๋ค์ด์์ผ๋ฉด 'N'์ผ๋ก ํ๊ธฐํ๋ค.
--CHECK_DATA1 ๊ณผ CHECK_DATA2 ๋ฅผ ์ทจํฉ ํ๋ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ์ธ์.
TABLE_DATA_1
CREATE TABLE TABLE_DATA_1
(
no number(10),
create_date DATE
);
TABLE_DATA_2
CREATE TABLE TABLE_DATA_2
(
no number(10),
create_date DATE
);
TABLE_COLC
CREATE TABLE TABLE_COLC
(
std_date DATE,
CHECK_DATA1 VARCHAR2(6),
CHECK_DATA2 VARCHAR2(6)
);
๐ MERGE INTO ๋ฅผ ์ด์ฉํด์ ๋ํ
์ด๋ธ์ ํฉ์น์!!!!!
TABLE_DATA_1 ๋ณํฉ
MERGE INTO TABLE_COLC tc
USING TABLE_DATA_1 t1
ON (tc.std_date = t1.create_date)
WHEN MACTHED THEN --์กฐ๊ฑด๊ณผ ์ผ์นํ๋ฉด
UPDATE SET CHECK_DATA1 = 'Y'
WHEN NOT MACTHED THEN --์กฐ๊ฑด๊ณผ ์ผ์นํ์ง ์์๋
INSERT VALUES (t1.create_date, 'Y', 'N');
--TABLE_DATA_1์ create_date ๋์ค๊ณ
--์๊ฐ ๋์ค๋๊ฑฐ๋ฉด CHECK_DATA1์ Y ์ธ๊ฑฐ๊ณ CHECK_DATA2๋ N ์ธ๊ฑฐ๊ณ
TABLE_DATA_2 ๋ณํฉ
MERGE INTO TABLE_COLC tc
USING TABLE_DATA_2 t2
ON (tc.std_date = t2.create_date)
WHEN MACTHED THEN --์กฐ๊ฑด๊ณผ ์ผ์นํ๋ฉด
UPDATE SET CHECK_DATA1 = 'Y'
WHEN NOT MACTHED THEN --์กฐ๊ฑด๊ณผ ์ผ์นํ์ง ์์๋
INSERT VALUES (t2.create_date, 'N', 'Y');
--TABLE_DATA_2์ create_date ๋์ค๊ณ
--์๊ฐ ๋์ค๋๊ฑฐ๋ฉด CHECK_DATA2๋ Y ์ธ๊ฑฐ๊ณ CHECK_DATA2๋ N ์ธ๊ฑฐ๊ณ
//DB ์ฐ๊ฒฐ ๊ด๋ จ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ก๋ฉ
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (Exception e) {
e.printStackTrace();
}
//DB ์ฐ๊ฒฐ์ ํ์ํ ์ ๋ณด ๋ณ์๋ก ์ ์ธ (url, id, pw)
//๋ด ์์ฒด์ PC์ ์ฃผ์ : localhost,127.0.0.1 ip์ฃผ์:ํฌํธ๋ฒํธ:orcl
String db_url = "jdbc:oracle:thin@localhost:1521:orcl";
String db_id = "scott";
String db_pw = "tiger";
//DB ์ฐ๊ฒฐ Connection ๊ฐ์ฒด -> ๋์ค์ ์ฐ๋ ค๊ณ ์ ์ธ๋ง ํด๋ ์ํ / ์ธ๋ถ์์ ์ ๊ทผํ ์์๊ฒ!
Connection conn = null; //import
//์์ธ์ฒ๋ฆฌ (์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ด๋ป๊ฒ ํ ๊ฑฐ๋) : try catch
try {
//์ฃผ์ด์ง url, id, pw ๋ฅผ ๊ฐ์ง๊ณ DB ์ฐ๊ฒฐ ๊ฐ์ฒด๋ฅผ ํ๋
conn = DriverManager.getConnection(db_url, db_id, db_pw);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//conn์ ํ์ฉํด์ DB ๋ฐ์ดํฐ ์ ์ฅ, ์กฐํ, ์์ , ์ญ์
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} //DB Connection ์ฐ๊ฒฐ ์ข
๋ฃ
: ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋ ๋์ฒ
(1) ์ปดํ์ผ ์์ธ / ์ผ๋ฐ์์ธ / Checked Exception
=> ์ปดํ์ผ ๋จ๊ณ์์ ํ์ธ์ด ๊ฐ๋ฅํ ์ค๋ฅ
(2) ๋ฐํ์ ์์ธ / ์คํ์์ธ / UnChecked Exception
=> ์คํํด์ผ ํ์ธํ ์ ์๋ ์ค๋ฅ
try {
์์ธ๊ฐ ๋ฐ์ํ ์๋ ์๋ ์ฝ๋
} catch (Exception e) {
try์์ ์์ธ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋์ฒ ์ฝ๋
}
try {
A
} catch (Exception e) { //try์์ ์ค๋ฅ๊ฐ ์์ผ๋ฉด ์คํ
B
} finally { //๋ฌด์กฐ๊ฑด ์คํ!
C
}
try ์ค๋ฅ ๋ฐ์O => A -> B -> C
try ์ค๋ฅ ๋ฐ์X => A -> C
=> try ์ ์ค๋ฅ๊ฐ ์์ผ๋ฉด catch + finally
=> try ์ ์ค๋ฅ๊ฐ ์์ผ๋ฉด finally
try {
System.out.println(arr[5]);
} catch (Exception e) {
System.out.println("Catch 1");
} // Catch 1
try {
System.out.println(arr[1]);
} catch (Exception e) {
System.out.println("Catch 2");
} // 2
try {
System.out.println(arr[1]);
} catch (Exception e) {
System.out.println("Catch 3");
} finally {
System.out.println("Finally 3"); //๋ฌด์กฐ๊ฑด์คํ
} // 2 Finally 3
try {
System.out.println(arr[7]);
} catch (Exception e) {
System.out.println("Catch 4");
} finally {
System.out.println("Finally 4"); //๋ฌด์กฐ๊ฑด์คํ
} // Catch 4 Finally 4
๋ฉ์๋() throws Exception ๋ช
์
-> ๋ ํธ์ถํ ์ชฝ์ ์ด ๋ฉ์๋๋ ์์ธ๊ฐ ๋ฐ์ํ ์์์์ ์๋ฆฌ๋ ์ญํ (๊ฒฝ๊ณ ) -> ์์ธ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋ฉ์๋์
๋๋ค!
throw new Exception()
-> ์ง์ ์์ธ๋ฅผ ๋ฐ์ ์ํค๋ ์ญํ !
=> ์์ชฝ(๋ ํธ์ถํ ์ชฝ)์ ์์ธ ๋ฐ์์ ์ ๋ฌ! (์ฑ
์์ ๊ฐ)
try {
ex.addItem3("์ธ๋ฒ์งธ"); //์ค๋ฅX -> if์ ๊ฑธ๋ ค์์
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
void addItem3(String str) throws Exception { //Exception์ ๋์ง๋ค : ์์ธ๋ฐ์ํ ์๋์์ผ๋๊น ์์ธ์ฒ๋ฆฌํ์ธ์~
//์ฑ
์์ ๊ฐ..ใ
ใ
๋ง๋์ฝ๋์ฌ๋ ์ปดํ์ผ๋จ๊ณ๋ถํฐ ๋นจ๊ฐ์ค์ด ๋ธ
if (list == null) { //null์ด๋ฉด ์๋๋๊น null ์ผ๋ list ๋ง๋ค์ด์ค๋ค ๋ผ๊ณ ์กฐ๊ฑด์์ผ๋ก ๊ฑธ์๋!
list = new ArrayList<String>();
throw new Exception(); //์ผ๋ถ๋ฌ ์์ธ ๋ฐ์์ํค๊ธฐ -> ์๋ก ์ฌ๋ ค
}
list.add(str); //์์ธ๋ฐ์๊ฐ๋ฅ์ฑ์ด ์๋ ์ฝ๋}