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文を発行し、結果を出力しています。 |