|
Sybase jConnect for JDBCを使ってみる 接続するRDBMSが何であっても、 サンが規定しているJDBCのAPIさえ知っていればプログラムが書ける、 というのがJDBCの最大の利点なわけですが、そうなんです。 Sybase Adaptive Server Anywhereに接続するプログラムも、 接続パラメータが違う他はOracleに接続する場合とほとんど同じ書き方が通用します。
import java.sql.*;
import java.io.*;
import com.sybase.jdbcx.*;
public class SybJdbcTester {
public static void main (String args [])
throws SQLException, IOException {
// Sybase jConnect for JDBC driver 5.2をロードします。
DriverManager.registerDriver(new com.sybase.jdbc2.jdbc.SybDriver());
// 接続情報をセットします。
// HOST:PORTは$ASA_HOME/win32/asasrv.iniで設定します。
String user = "DBA";
String password = "SQL";
Connection conn =
DriverManager.getConnection(
"jdbc:sybase:Tds:ushi2:2638/factory?JCONNECT_VERSION=5",
user, password);
System.out.println ("connected.");
// SQL文(DML文)を作ります。
Statement stmt = conn.createStatement ();
// SELECT文の場合はexecuteQuery()を実行します。
ResultSet rset = stmt.executeQuery ("SELECT * FROM BASE_PARTS");
while (rset.next ()){
String rowData = rset.getString(1) + "\t" + rset.getString(2) +
"\t" + rset.getString(3);
System.out.println (rowData);
}
System.out.println ("Your JDBC installation is correct.");
// 結果セットを解放
rset.close();
// SQL文を解放
stmt.close();
// データベースから切断して、完了。
conn.close();
}
}
// end.
Sybaseの(JDBC2.0対応)JDBCドライバの本体は com.sybase.jdbc2.SybDriverというクラスです。
DriverManager.registerDriver(new com.sybase.jdbc2.jdbc.SybDriver());
そしてDriverManager.getConnectionで接続する際のパラメータは、次のようになります。
Connection conn =
DriverManager.getConnection(
"jdbc:sybase:Tds:ushi2:2638/factory?JCONNECT_VERSION=5",
user, password);
jdbcとsybaseはいいでしょう。
Tds(Tabular Data Stream)というのは、
jConnectがSybaseのRDBMSに接続する際に使うデータ通信プロトコルの名前です。
次のushi2はホスト名、2638はポート番号です。
あるASAデータベースがポート何番で常駐しているのかは、
%SYBASE_HOME%\SQL Anywhere 7\win32\asasrv.iniというファイルの中にこのように書かれています。 [factory] Link=TCPIP Address=127.0.0.1:2638factoryというのがここでの接続相手のデータベースの名前です。 で、'?' の後ろに "オプション=値" を '&' で区切って並べます。 数多くのオプションがありますが、その詳細はマニュアルのHTML文書をご覧ください。 いったん接続してしまえば、後のSQL文を発行する処理はどのRDBMSが相手でもほとんど変わりません。 ここでは簡単なSELECT文を発行し、結果を出力しています。 |