본문 바로가기
  • think normal
새로워지기/서른의 생활코딩

ex) java_ JDBC

by 청춘만화 2012. 3. 6.

import java.awt.*;        // 멀티미디어, 
import java.awt.event.*;  // 윈도우관련 이벤트
import java.net.*;        // 네트워크관련 패키지
import java.sql.*; 


class JDBCTest extends Frame {   // 윈도우 구조
static TextArea myTextArea;  // TextArea = 엔터키 쳐 가면서 여러 라인 입력할 수 있도록 해줌
//1
public JDBCTest() {//생성자
super("Simple JDBC Application");
addWindowListener(new WindowAdapter() {  // 윈도우관련 이벤트(종료)
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
setLayout(new FlowLayout()); //원래 윈도우 boderLayout ->FlowLyout으로 배치 변경
myTextArea = new TextArea(25, 50);
                                      //myTextArea객체정의 (라인수,문자수)만큼의 myTextArea 생성
 
add(myTextArea); //앞에 this 생략 (componant의 Frame사용!!) : 프레임 
setSize(500, 500); //앞에 this 생략 (componant의 Frame사용!!) : 전체 윈도우
setVisible(true);  //화면에 윈도우를 보여줌!
myTextArea.append("Please wait while the SQL query executes...\n"  //안에 프레임
);
}//여기까지 생성자의 역할 !!!!
//3:출력
static void displayResults(ResultSet results) throws SQLException{
        // 스태틱, 객체정의안하고도  + .으로 연결가능
ResultSetMetaData resultsMetaData = results.getMetaData ();
                 //셀랙트된 구조를 저장해 줄 
 ResultSetMetaData의 객체정의(필드명,타입,갯수..)
int cols = resultsMetaData.getColumnCount();  //cols = 필드의 갯수=4
 
while (results.next()) {   //results마지막 레코드 + next()커서 이동
for (int i=1; i<=cols; i++) { //트루일 경우 ,cols = 필드의 갯수=4
if (i > 1) myTextArea.append("\t");  // "\t"=행간 간격 띄워가며 출력
myTextArea.append(results.getString(i));  //i= i번째 필드
}
myTextArea.append("\n");
}
}
//2
public static void main(String argv[]) throws SQLException, Exception {
String theQuery = "SELECT id,irum,juso,tel FROM addr"; // SELECT 문장 
                          // *(모두인 경우) = id,irum,juso,tel=필드명
                                          // SQL문의 예약어 = FROM (+ 테이블명)(+where 조건식)
JDBCTest myJDBCTest = new JDBCTest();
                // 전체 클래스타입의 객체 정의 ->JDBCTest -> 생성자 자동 호출(초기화를 위해)
//Object-> compernant-> container(다른컨트롤사용)
                   -> window(다이얼로그와 공동사용시 속성참조용)-> Frame(super)-> JDBCTest(this)

 
//(프로세스:)->super("Simple JDBC Application"); 윈도우 창이름 생성 -> 생성자 실행

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 드라이브명 기재! 
Connection myCon =
DriverManager.getConnection("jdbc:odbc:Addr", "aaa", "bbb");  
                // getConnection 스태틱 변수 -> .으로 접근
        // 제어판 ODBC에서의 이름 jdbc:odbc:Addr + 암호

 
// Test는 ODBC드라이브명
// aaa는 사용자명
// bbb는 패스워드
Statement MyStmt = myCon.createStatement();  
                //createStatement  ->Statement의 포인터를 반환
ResultSet myResults = MyStmt.executeQuery(theQuery);  
                //ResultSet=저장  / theQuery="sun.jdbc.odbc.JdbcOdbcDriver"
displayResults(myResults);
                //displayResults스태틱맴버함수를 매개변수로해서 ->displayResults  
//결과를 보여줄 myResults 객체생성
myResults.close();
MyStmt.close();
myCon.close();
}
}


// 스터디  : SQL문장 배우기   -> 스트럿츠  -> 스프링   -> jQuery -> 안드로이드  

'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글

JSP 주요 키워드 2  (0) 2012.04.15
JSP 주요 키워드 1  (0) 2012.04.15
java _2012.03.06  (0) 2012.03.06
ex16) java.io.* _Tokenizer + .hasMoreTokens()  (0) 2012.03.06
ex15) java.io.* _DataOutputStream + DataInputStream  (0) 2012.03.06

댓글