★ 오라클 서버 설치된 컴퓨터에서 방화벽 설정하기
오라클 서버 기본 포트: 1521
방화벽에서 1521 포트를 열어주더라도 작동을 하지 않는다.
오라클은 기본적으로 1521을 사용하나, 클라이언트가 접속하면 랜덤하게 포트를 설정해서
클라이언트에게 할당한다. 따라서 이 임의의 포트는 방화벽에 막히므로 접속 불가.
그렇다고 방화벽을 열 수도 없는 노릇.
따라서 방화벽 설정 중에서 포트 단위가 아니라, 프로그램 단위로 접속을 허용하게 해 준다.
oracle.exe, tnslsnr.exe(? 암튼 이거 비슷한거)를 열어주면 된다.
★ JDBC에서 내리는 모든 명령어는 Auto Commit 이다.
Create든 Insert든...
Auto Commit 을 막는 설정도 있다고 한다.
/*******************************************************************************************
* 파일 : Exam03_01.java
* 용도 : 오라클 DB에 연결한 후, 테이블을 생성한다.
* 작성자 : 성홍제
* 작성일 : 2006. 07. 24
* Version : 1.0
*******************************************************************************************/
// ① 관련 패키지 임포트
import java.sql.*;
public class Exam03_01
{
// Fields
// Constructor
// Method
// Main Method
public static void main (String args[])
{
Connection conn = null;
Statement stmt = null;
String url = "jdbc:oracle:thin:@61.109.232.128:1521:ora92";
// ② 드라이버 로딩
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex1)
{
System.out.println("드라이버 로딩 에러 : "+ ex1.toString());
return;
}
catch(Exception ex2)
{
System.out.println("DB 접속 실패 : "+ ex2.toString());
return;
}
String sql=
"CREATE TABLE member(id CHAR(10) CONSTRAINT mb_id_pk PRIMARY KEY, pw CHAR(10) CONSTRAINT mb_pw_nn NOT NULL, name VARCHAR2(10) CONSTRAINT mb_name_nn NOT NULL, sex CHAR(1) CONSTRAINT mb_sex_ck CHECK (sex IN ('F', 'M')), ssn NUMBER(13) CONSTRAINT mb_ssn_uk UNIQUE)";
try
{
// ③ 오라클 연결
conn = DriverManager.getConnection(url, "lonelycat", "ora123");
System.out.println("DB연결 성공");
// ④ sql 명령문 구문 객체 생성
stmt=conn.createStatement();
// ⑤ sql query 실행
stmt.executeUpdate(sql);
}
catch(Exception ex3)
{
System.out.println("SQL 문 수행 오류 : "+ ex3.toString());
return;
}
finally
{
// ⑥ 연결 객체 반납
try
{
stmt.close();
conn.close();
}
catch(Exception ex4)
{}
}
System.out.println("DB 접속 및 SQL 문 수행 성공!");
}// main end
}//class end
/*******************************************************************************************
* 파일 : Exam03_02.java
* 용도 : 오라클 DB에 연결한 후, Exam03_01에서 생성한 테이블에 데이터를 넣는다.
* 작성자 : 성홍제
* 작성일 : 2006. 07. 24
* Version : 1.0
*******************************************************************************************/
import java.sql.*;
public class Exam03_02
{
// Fields
// Constructor
// Method
// Main Method
public static void main(String[] args)
{
Connection conn = null;
Statement stmt = null;
String url = "jdbc:oracle:thin:@61.109.232.128:1521:ora92";
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex1)
{
System.out.println("드라이버 로딩 에러 : "+ ex1.toString());
return;
}
catch(Exception ex2)
{
System.out.println("DB 접속 실패 : "+ ex2.toString());
return;
}
try
{
conn = DriverManager.getConnection(url, "lonelycat", "ora123");
System.out.println("DB연결 성공");
stmt = conn.createStatement();
String sql =
"insert into member values( 'lonelycat', 'ora123', '성홍제', 'M', 7901161069111)";
System.out.println("SQL : " + sql);
int result = stmt.executeUpdate(sql);
System.out.println(result + "개의 Data 입력 성공!!");
}
catch(Exception e)
{
System.out.println("Data 입력 실패!! : " + e.getMessage());
}
finally
{
try
{
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
}
catch(Exception ex)
{}
}
}
/*static String toDB(String str) throws UnsupportedEncodingException{
return new String(str.getBytes("KSC5601"), "8859_1");
}
static String fromDB(String str) throws UnsupportedEncodingException{
return new String(str.getBytes("8859_1"), "KSC5601");
}*/
}// class end
/*******************************************************************************************
* 파일 : Exam03_03.java
* 용도 : 오라클 DB에 연결한 후, Exam03_01에서 생성한 테이블의 데이터를 확인한다.
* 작성자 : 성홍제
* 작성일 : 2006. 07. 24
* Version : 1.0
*******************************************************************************************/
import java.sql.*;
public class Exam03_03
{
public static void main(String[] args)
{
Connection conn = null;
Statement stmt = null;
String url = "jdbc:oracle:thin:@61.109.232.128:1521:ora92";
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, "lonelycat", "ora123");
}
catch(ClassNotFoundException ex1)
{
System.out.println("드라이버 로딩 에러 : "+ ex1.toString());
return;
}
catch(Exception ex2)
{
System.out.println("DB 접속 실패 : "+ ex2.toString());
return;
}
try{
stmt = conn.createStatement();
String sql = "SELECT * FROM member";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
String s = rs.getString("id")+ "\t";
s += rs.getString("pw")+"\t";
s += rs.getString("name")+"\t";
s += rs.getString("sex")+"\t";
s += rs.getLong("ssn");
System.out.println(s);
}
}
catch(Exception e)
{
System.out.println("SELECT 실패! : " + e.getMessage());
}
finally
{
try
{
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
}
catch(Exception ex)
{
}
}
} // main end
}// class end
/*******************************************************************************************
* 파일 : Exam03_04.java
* 용도 : 오라클 DB에 연결한 후, 입력 받은 id를 이용해서 테이블을 검색한다.
* 작성자 : 성홍제
* 작성일 : 2006. 07. 24
* Version : 1.0
*******************************************************************************************/
// ① 관련 패키지 임포트
import java.io.*;
import java.sql.*;
public class Exam03_04
{
// Fields
// Constructor
// Method
// Main Method
public static void main (String args[])
{
Connection conn = null;
Statement stmt = null;
String url = "jdbc:oracle:thin:@61.109.232.128:1521:ora92";
// id 입력받기
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String id = "";
try
{
System.out.print("ID를 입력해주세요>> ");
id = in.readLine();
}
catch(Exception e)
{
e.printStackTrace();
}
//System.out.println(id);
// ② 드라이버 로딩
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, "lonelycat", "ora123");
}
catch(ClassNotFoundException ex1)
{
System.out.println("드라이버 로딩 에러 : "+ ex1.toString());
return;
}
catch(Exception ex2)
{
System.out.println("DB 접속 실패 : "+ ex2.toString());
return;
}
String sql=
"SELECT * FROM member WHERE id = '" + id.trim() + "'";
System.out.println(sql);
try
{
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
String s = rs.getString("id")+ "\t";
s += rs.getString("pw")+"\t";
s += rs.getString("name")+"\t";
s += rs.getString("sex")+"\t";
s += rs.getLong("ssn");
System.out.println(s);
}
}
catch(Exception e)
{
System.out.println("SELECT 실패! : " + e.getMessage());
}
finally
{
// ⑥ 연결 객체 반납
try
{
stmt.close();
conn.close();
}
catch(Exception ex4)
{}
}
System.out.println("DB 접속 및 SQL 문 수행 성공!");
}// main end
}//class end
'프로그래밍 > DB' 카테고리의 다른 글
[JDBC] 06 PL/SQL (0) | 2007.11.27 |
---|---|
[JDBC] 05 ResultSet (0) | 2007.11.27 |
[JDBC] 04 JDBC - Connection Pool... (0) | 2007.11.27 |
[JDBC] 03 3일째 (0) | 2007.11.27 |
[JDBC] 01 JDBC 시작 (0) | 2007.11.27 |