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 생성
//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의 객체정의(필드명,타입,갯수..)
//셀랙트된 구조를 저장해 줄 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 -> 생성자 자동 호출(초기화를 위해)
// 전체 클래스타입의 객체 정의 ->JDBCTest -> 생성자 자동 호출(초기화를 위해)
//Object-> compernant-> container(다른컨트롤사용)
-> window(다이얼로그와 공동사용시 속성참조용)-> Frame(super)-> JDBCTest(this)
//(프로세스:)->super("Simple JDBC Application"); 윈도우 창이름 생성 -> 생성자 실행
-> 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 스태틱 변수 -> .으로 접근
// getConnection 스태틱 변수 -> .으로 접근
// 제어판 ODBC에서의 이름 jdbc:odbc:Addr + 암호
// Test는 ODBC드라이브명
// aaa는 사용자명
// bbb는 패스워드
Statement MyStmt = myCon.createStatement();
//createStatement ->Statement의 포인터를 반환
//createStatement ->Statement의 포인터를 반환
ResultSet myResults = MyStmt.executeQuery(theQuery);
//ResultSet=저장 / theQuery="sun.jdbc.odbc.JdbcOdbcDriver"
//ResultSet=저장 / theQuery="sun.jdbc.odbc.JdbcOdbcDriver"
displayResults(myResults);
//displayResults스태틱맴버함수를 매개변수로해서 ->displayResults
//displayResults스태틱맴버함수를 매개변수로해서 ->displayResults
//결과를 보여줄 myResults 객체생성
myResults.close();
MyStmt.close();
myCon.close();
}
}
// 스터디 : SQL문장 배우기 -> 스트럿츠 -> 스프링 -> jQuery -> 안드로이드
// 스터디 : 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 |
댓글