캄사합니다. 저의 질문에 관심을 가져주셔서... ㅠㅠ
### 서버환경
Alzza6.0 / Oracle8.0.5(Patched) / jdk118(ibm) / jsdk20 / apache1.3.12 / apacheJServ / gnuJsp
적은대로 목적은 자바환경 구축에 있습니다. 기종은 팬티엄150에 리눅스만 세팅되어 있습니다.
### 세팅 상황
에러는 없습니다. 모든 툴들이 정상적으로 깔린것을 샘플을 가지고 테스트 확인 했습니다. DB 생성도 이상없음을 데모 디비를 가지고 확인했습니다. 물론 lsnrctl start/stop도 정상입니다.
### 문제점
서버에서 JDBC 샘플 프로그램을 돌리면 정상적으로 접속 및 query가 되는데 옆에 있는 윈도그에서 컴파일하고(에러없음) 실행시키면 테이터베이스에 접속이 되지 않습지다.
윈도그에 ODBC도 없고, SQL*NET도 없습니다. 단지 JDK1.2.2만 설치 되어있습니다.
클라이언트 측에 무언가(오라클 클라이언트 또는 SQL8NET) 설치 되어 있어야만 연결이 될 수 있는건가요??? 기냥 JDK만 있으면 절대로 안되나요???
P.S :참고로 테스트 한 프로그램을 올립니다.... 이 못난 초보를 넓은 아량으로......................... ㅠㅠ..............
### 테스트에 쓰인 소스...^^;;
import java.io.*;
import java.sql.*;
import java.util.*;
public class JDBCTest {
public static void main(String args[]) {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin@210.119.X.X:1521:ORCL";
String user = "edu";
String passwd = "edu";
String query = "select * from tabs";
Connection con = null;
try {
// 데이터베이스 드라이버를 올린다.
Class.forName(driver);
System.out.println("Oracle Driver registering success");
// Connection 객체를 얻는다.
con = DriverManager.getConnection(url,user,passwd);
// connection 중에 발생한 에러를 표시하는 루틴을 둔다.
//checkForWarning(con.getWarnings());
// Connect 에서 발생한 경고내용의 표시를 위한 수정루틴
// getWarning 메소드에 대하여 잘 모른상태라 편법적으로...^^;;
SQLWarning warn;
warn = con.getWarnings();
if(warn!=null) {
System.out.println("\n *** Warning *** \n");
while(warn!=null) {
System.out.println("SQLState : " + warn.getSQLState());
System.out.println("Message : " + warn.getMessage());
System.out.println("Vendor : " + warn.getErrorCode());
System.out.println("");
warn = warn.getNextWarning();
}
}
// DatabaseMetaData 객체를 얻어서 connection 정보를 얻어낸다.
DatabaseMetaData dma = con.getMetaData();
System.out.println("\nConnected to " + dma.getURL());
System.out.println("Driver " + dma.getDriverName());
System.out.println("Version " + dma.getDriverVersion());
// SQL문을 드라이버에게 보낼 Statement 객체를 생성
Statement stmt = con.createStatement();
// query를 보내고 생성된 ResultSet 객체를 얻는다.
ResultSet rs = stmt.executeQuery(query);
// ResultSet의 모든 열을 화면에 표시
while(rs.next()) {
int empno = rs.getInt(1);
String ename = rs.getString(2);
String job = rs.getString(3);
int mgr = rs.getInt(4);
String hiredate = rs.getString(4);
int sal = rs.getInt("sal");
int comm = rs.getInt("comm");
int deptno = rs.getInt("deptno");
System.out.println(empno + " " + ename + " " + job + " "
+ mgr + " " + hiredate + " " + sal + " "
+ comm + " " + deptno);
}
rs.close(); // ResultSet 닫기
stmt.close(); // Statement 닫기
con.close(); // Connection 닫기
} catch(Exception e) {
System.err.println("Error occurred at registering oracle driver");
System.err.println(e.getMessage());
System.exit(1);
}
} // End of main()
/* Connect에 의해서 발생한 경고 관련내용을 표시하기 위한 루틴
private static boolean checkForWarning(SQLWarning warn) throws SQLException {
boolean rc = false;
if(warn!=null) {
System.out.println("\n *** Warning *** \n");
rc = true;
while(warn!=null) {
System.out.println("SQLState : " + warn.getSQLState());
System.out.println("Message : " + warn.getMessage());
System.out.println("Vendor : " + warn.getErrorCode());
System.out.println("");
warn = warn.getNextWarning();
}
}
return rc;
} // End of checkForWarning() */
} // End of JDBCTest
|