JDBC를 이용하여 ASE/ASIQ 데이타를 가져오기 위한 간단한 방법과 설정에 관해서 정리했습니다..
먼저, 자바 구동을 위한 JDK 가 인스톨되어야 합니다..
JDK는 http://java.sun.com/ 에서 각 OS에 해당되는 파일을 다운로드 하신 후 설치하시면 됩니다...
그리고, 데이타베이스 연결을 위한 JDBC를 인스톨해야 합니다...
JDBC는 Sybase에서 제공하는 jConnect를 사용하도록 하겠습니다...
http://www.sybase.com/ 에서 다운로드 가능합니다...
그리고, 해당 환경변수를 잡아주시고, 프로그램을 작성하면 되겠습니다...
순서는 다음과 같습니다...
1) JDK 인스톨
2) jConnect 인스톨
jConnect4.2(jConnect4.5) : JDK 1.1 이하
jConnect5.2(jConnect5.5) : JAVA 2 이상
3) 환경설정
JDBC_HOME=/sybase/jConnect-5_2
<- jConnect가 Install 되어 있는 디렉토리
JAVA_HOME=/usr/java1.2
<- JDK가 install되어 있는 디렉토리
CLASSPATH=.:/sybase/jConnect-5_2/jcon2.jar:$CLASSPATH
PATH=.:/usr/java1.2/bin:$PATH
윈도우즈라면 autoexec batch file에다가 추가하시고요, windows2000계열이라면 컴퓨터의 시스템등록정보 다이얼로그 박스에서 환경변수 설정을 누르시고 추가하시면 됩니다..
이제 일단 관련 환경설정은 됬습니다... 이젠 프로그램 소스를 작성해 보겠습니다... 먼저 간단한 소스를 보여드리겠습니다...
-------------------------------------------------------------------
import java.io.*;
import java.util.*;
import java.sql.*;
import com.sybase.jdbcx.*; //sybase jdbc관련 클래스
public class DbConnTest
{
public static void main(String[] args) throws Exception {
Connection conn=null; //Connection Class 선언
Class.forName("com.sybase.jdbc2.jdbc.SybDriver"); //sybase class loading
String query = "select au_id, au_lname from pubs2..authors"; //수행되어질 쿼리
try {
conn = DriverManager.getConnection("jdbc:sybase:Tds:192.168.10.115:4100/pubs2", "sa", "");
//대상 시스템의 ip하고 포트번호, 유저, 패스워드를 적어 주시면 됩니다...
}
catch( Exception e ) {
System.out.println("Connection error: " + e.toString() );
}
Statement stmt = conn.createStatement();
try {
ResultSet rs = stmt.executeQuery(query); //쿼리 수행
while (rs.next()) //결과 값이 있을때까지
{
System.out.println("au_id:" + rs.getString("au_id") + "au_lname:" + rs.getString("au_lname") );
}
}
catch(Exception e){
e.printStackTrace();
}
finally {
try { conn.close();}catch(Exception e){}
}
}
}
--------------------------------------------------------------------
이제 이 소스를 DbConnTest.java라는 파일로 저장합니다..
그리고 나서 소스를 컴파일 합니다...
예) javac DbConnTest.java
실행....
예) java DbConnTest
이렇게 하면 원하는 결과값이 나올것입니다...
update나 insert/delete인 경우에는 executeUpdate를 사용하시면 됩니다..
Dynamic SQL을 사용하시려고 한다면 createStatement대신에 PreparedStatement를 사용하시고 되구요... 다음과 같이요...
PreparedStatement stmt=con.prepareStatement("select au_id from pub2..authors where au_id=?");
stmt.setInt(1,10);
기타 자세한 내용은 JDBC관련 서적을 참조하시구요....
다음편에는 ASE에서 사용가능한 JAVA type/function에 관해 설명드리겠습니다..
수고하세요....
|