JDB C JDBC JDBC API JDBC Manager JDBC
JDB C
JDBC 구조 자바 프로그램 JDBC API JDBC Manager JDBC Driver API JDBC Network Driver JDBC-ODBC Bridge Driver Direct JDBC Driver ODBC Manager & ODBC Driver DBMS
JDBC 접속 3. JDBC 드라이버 로딩 § § § 자바 소스 프로그램 내에, 사용할 JDBC 드라이버를 로드한다. Class. for. Name(“드라이버 클래스 명”); 예 ) Class. for. Name(“sun. jdbc. odbc. Jdbc. Odbc. Driver”); Class. for. Name(“oracle. jdbc. odbc. Oracle. Driver”); 4. JDBC 연결 § Java. sql. Driver. Manager 클래스에 의해 Connection 객체를 생성하여 DB와 연결 § § Connection con = Driver. Manager. get. Connection( “JDBC URL” ); JDBC URL의 형태 jdbc : <하위 프로토콜 명> : <데이터베이스 원본> Connection con = Driver. Manager. get. Connection(“jdbc: odbc: student”); Connection con = Driver. Manager. get. Connection( “jdbc: oracle: thin@www. dbserver. co. kr: 8080: student” );
JDBC 프로그래밍 Create. Table. java import java. sql. *; public class Create. Table { public static void main(String[] args) { try { Class. for. Name("sun. jdbc. odbc. Jdbc. Odbc. Driver"); // JDBC 드라이버 로딩 System. err. println("JDBC-ODBC 드라이버를 정상적으로 로드함"); } catch(java. lang. Class. Not. Found. Exception e) { System. err. println("드라이버 로드에 실패했습니다. "); }
Create. Table. java (계속) try { Connection con = Driver. Manager. get. Connection("jdbc: odbc: student"); //DB연결 Statement db. St = con. create. Statement(); // Statement 객체 생성 System. out. println("JDBC 드라이버가 정상적으로 연결되었습니다. "); String str. Sql = "CREATE TABLE student_info (학번 long, 주민번호 varchar, 성별 varchar, 핸드폰 varchar)"; // SQL 질의어 생성 db. St. execute. Update(str. Sql); // SQL 질의어 실행 System. out. println("테이블을 생성했습니다. "); db. St. close(); // Statement 객체 종료 con. close(); // DB 연결 해제 } catch (SQLException e) { System. out. println("SQLException : "+e. get. Message()); } } }
JDBC 프로그래밍 Insert. Data. java import java. sql. *; public class Insert. Data { public static void main(String[] args) { try { Class. for. Name("sun. jdbc. odbc. Jdbc. Odbc. Driver"); System. err. println("JDBC-ODBC 드라이버를 정상적으로 로드함"); } catch(java. lang. Class. Not. Found. Exception e) { System. err. println("드라이버 로드에 실패했습니다. "); }
Insert. Data. java (계속) try { Connection con = Driver. Manager. get. Connection("jdbc: odbc: student"); Statement db. St = con. create. Statement(); System. out. println("JDBC 드라이버가 정상적으로 연결되었습니다. "); String str. Sql = "INSERT INTO student_info (학번, 주민번호, 성별, 핸드폰) VALUES (2008081001, ‘ 891225 -1234567', '남', '010 -1234')"; db. St. execute. Update(str. Sql); System. out. println("데이터 삽입 완료"); db. St. close(); con. close(); } catch (SQLException e) { System. out. println("SQLException : "+e. get. Message()); } } }
JDBC 프로그래밍 Update. Data. java import java. sql. *; public class Update. Data { public static void main(String[] args) { try { Class. for. Name("sun. jdbc. odbc. Jdbc. Odbc. Driver"); // System. err. println("JDBC-ODBC 드라이버를 정상적으로 로드함"); } catch(java. lang. Class. Not. Found. Exception e) { System. err. println("드라이버 로드에 실패했습니다. "); }
Update. Data. java (계속) try { Connection con = Driver. Manager. get. Connection("jdbc: odbc: student"); Statement db. St = con. create. Statement(); System. out. println("JDBC 드라이버가 정상적으로 연결되었습니다. "); String str. Sql = "UPDATE student_info SET 주민번호 = ‘ 880101 -1234567', 핸드폰 = '010 -1234‘ WHERE 학번 = 2008081001"; db. St. execute. Update(str. Sql); System. out. println("데이터 수정 완료"); db. St. close(); con. close(); } catch (SQLException e) { System. out. println("SQLException : "+e. get. Message()); } // catch 문 } // main } // 프로그램 종료
JDBC 프로그래밍 Delete. Data. java import java. sql. *; public class Delete. Data { public static void main(String[] args) { try { Class. for. Name("sun. jdbc. odbc. Jdbc. Odbc. Driver"); // System. err. println("JDBC-ODBC 드라이버를 정상적으로 로드함"); } catch(java. lang. Class. Not. Found. Exception e) { System. err. println("드라이버 로드에 실패했습니다. "); }
Delete. Data. java (계속) try { Connection con = Driver. Manager. get. Connection("jdbc: odbc: student"); Statement db. St = con. create. Statement(); System. out. println("JDBC 드라이버가 정상적으로 연결되었습니다. "); String str. Sql = "DELETE FROM student_info WHERE 학번 = 2008081004"; db. St. execute. Update(str. Sql); System. out. println("데이터 삭제 완료"); db. St. close(); con. close(); } catch (SQLException e) { System. out. println("SQLException : "+e. get. Message()); } // catch 문 } // main } // 프로그램 종료
JDBC 프로그래밍 Insert. Data. From. GUI. java import java. sql. *; import java. awt. event. *; public class Insert. Data. From. GUI extends Frame implements Action. Listener{ Text. Field hakbun, no, male, tel; Button ok, cancel; public Insert. Data. From. GUI(String title) { super(title); set. Layout(new Grid. Layout(5, 1));
Insert. Data. From. GUI. java (계속) Panel top = new Panel(); // 화면을 5개의 판넬로 구성 top. set. Layout(new Flow. Layout(Flow. Layout. LEFT)); Panel middle 1 = new Panel(); middle 1. set. Layout(new Flow. Layout(Flow. Layout. LEFT)); Panel middle 2 = new Panel(); middle 2. set. Layout(new Flow. Layout(Flow. Layout. LEFT)); Panel middle 3 = new Panel(); middle 3. set. Layout(new Flow. Layout(Flow. Layout. LEFT)); Panel bottom = new Panel(); bottom. set. Layout(new Flow. Layout(Flow. Layout. LEFT)); hakbun = new Text. Field("", 10); no = new Text. Field("", 14); male = new Text. Field("", 4); tel = new Text. Field("", 13); ok = new Button("확인"); cancel = new Button("취소");
Insert. Data. From. GUI. java (계속) ok. add. Action. Listener(this); cancel. add. Action. Listener(this); top. add(new Label("학번")); top. add(hakbun); middle 1. add(new Label("주민번호")); middle 1. add(no); middle 2. add(new Label("성별")); middle 2. add(male); middle 3. add(new Label("휴대폰")); middle 3. add(tel); bottom. add(ok); bottom. add(cancel); add(top); } // 생성자 끝 add(middle 1); add(middle 2); add(middle 3); add(bottom);
Insert. Data. From. GUI. java (계속) public void action. Performed(Action. Event ae) { String t_hakbun, t_no, t_male, t_tel; String s = ae. get. Action. Command(); if (s. equals("취소")) { hakbun. set. Text(""); no. set. Text(""); male. set. Text(""); tel. set. Text(""); } else { // 입력된 데이터를 DB에 저장하기 t_hakbun = hakbun. get. Text(); t_no = no. get. Text(); t_male = male. get. Text(); t_tel = tel. get. Text();
Insert. Data. From. GUI. java (계속) // else 블록이 계속됨 try { Class. for. Name("sun. jdbc. odbc. Jdbc. Odbc. Driver"); } catch(java. lang. Class. Not. Found. Exception e) { System. err. println("드라이버 로드에 실패했습니다. "); } try { Connection con = Driver. Manager. get. Connection("jdbc: odbc: student"); Statement db. St = con. create. Statement(); String str. Sql = "INSERT INTO student_info (학번, 주민번호, 성별, 핸드폰) VALUES" +"("+t_hakbun+", '"+t_no+"', '"+t_male+"', '"+t_tel+"')"; db. St. execute. Update(str. Sql); System. out. println("데이터 삽입 완료"); db. St. close(); con. close(); }
Insert. Data. From. GUI. java (계속) catch (SQLException e) { System. out. println("SQLException : "+e. get. Message()); } } // else } // action. Performed 끝 public static void main(String[] args) { Insert. Data. From. GUI win = new Insert. Data. From. GUI("회원관리"); win. set. Size(300, 200); win. set. Visible(true); } // main } // 끝
JDBC 프로그래밍 Read. Data. From. GUI. java import java. sql. *; import java. awt. event. *; public class Read. Data. From. GUI extends Frame implements Action. Listener{ Text. Field hakbun, no, male, tel; Button ok, query, cancel; public Read. Data. From. GUI(String title) { super(title); set. Layout(new Grid. Layout(5, 1));
Read. Data. From. GUI. java (계속) Panel top = new Panel(); // 화면을 5개의 판넬로 구성 top. set. Layout(new Flow. Layout(Flow. Layout. LEFT)); Panel middle 1 = new Panel(); middle 1. set. Layout(new Flow. Layout(Flow. Layout. LEFT)); Panel middle 2 = new Panel(); middle 2. set. Layout(new Flow. Layout(Flow. Layout. LEFT)); Panel middle 3 = new Panel(); middle 3. set. Layout(new Flow. Layout(Flow. Layout. LEFT)); Panel bottom = new Panel(); bottom. set. Layout(new Flow. Layout(Flow. Layout. LEFT)); hakbun = new Text. Field("", 10); no = new Text. Field("", 14); male = new Text. Field("", 4); tel = new Text. Field("", 13); ok = new Button("확인"); query = new Button("조회"); cancel = new Button("취소");
Read. Data. From. GUI. java (계속) ok. add. Action. Listener(this); query. add. Action. Listener(this); cancel. add. Action. Listener(this); top. add(new Label("학번")); top. add(hakbun); middle 1. add(new Label("주민번호")); middle 1. add(no); middle 2. add(new Label("성별")); middle 2. add(male); middle 3. add(new Label("휴대폰")); middle 3. add(tel); bottom. add(ok); bottom. add(query); bottom. add(cancel); add(top); add(middle 1); add(middle 2); add(middle 3); add(bottom); }
Read. Data. From. GUI. java (계속) public void action. Performed(Action. Event ae) { String t_hakbun, t_no, t_male, t_tel; String str. Sql; String s = ae. get. Action. Command(); if (s. equals("취소")) { // 취소버튼이 선택된 경우 hakbun. set. Text(""); no. set. Text(""); male. set. Text(""); tel. set. Text(""); } else { // 저장이나 조회 버튼이 선택된 경우 try { // JDBC Driver 로드 Class. for. Name("sun. jdbc. odbc. Jdbc. Odbc. Driver"); } catch(java. lang. Class. Not. Found. Exception e) { System. err. println("드라이버 로드에 실패했습니다. "); } try { // 데이터베이스에 연결 Connection con = Driver. Manager. get. Connection("jdbc: odbc: student"); Statement db. St = con. create. Statement();
Read. Data. From. GUI. java (계속) if (s. equals("확인")) { //화면에 입력된 내용을 DB에 저장하기 t_hakbun = hakbun. get. Text(); t_no = no. get. Text(); t_male = male. get. Text(); t_tel = tel. get. Text(); str. Sql = "INSERT INTO student_info (학번, 주민번호, 성별, 핸드폰) VALUES" +"("+t_hakbun+", '"+t_no+"', '"+t_male+"', '"+t_tel+"')"; db. St. execute. Update(str. Sql); System. out. println("데이터 삽입 완료"); } else { // 조회버튼-화면에 입력된 학번을 DB에서 찾아 학생정보를 화면에 출력하기 long key_hakbun = Integer. parse. Int(hakbun. get. Text()); // 화면에 입력된 학번을 문자열에서 long 으로 형변환하여 key_hakbun에 저장 str. Sql = "SELECT * FROM student_info WHERE 학번 ="+ key_hakbun; Result. Set result = db. St. execute. Query(str. Sql); while (result. next()) { no. set. Text(result. get. String("주민번호")); male. set. Text(result. get. String("성별")); tel. set. Text(result. get. String("핸드폰")); } // while 끝 } // else - 조회 버튼이 선택된 경우
Read. Data. From. GUI. java (계속) db. St. close(); con. close(); } catch (SQLException e) { System. out. println("SQLException : "+e. get. Message()); } } // else - 저장이나 조회 버튼이 선택된 경우 } // action. Performed 끝 public static void main(String[] args) { Read. Data. From. GUI win = new Read. Data. From. GUI("회원관리"); win. set. Size(300, 200); win. set. Visible(true); } // main } // 프로그램 종료
- Slides: 37