このチャプターで提供されている例は myTableテーブルを作成し、 3レコードを登録し、 それらを検索するアプリケーションを示しています。
例のmyDemo.javaを実行するためには 以下のステップを行ってください。
myDemo.javaはEmpress コネクティビティ ( ODBC) サーバー上の Empressデータベースをアクセスするクライアントアプリケーションです。 ユーザーはmyDemo.javaにしたがってgetConnectionパラメータを 修正しなければなりません。 例えば:
"jdbc:empress://SERVER=workstn1;PORT=6322;DATABASE=testdb",
"joe", "code123"
このgetConnectionパラメータはEmpress ODBC サーバーが起動されている マシンとしてworkstn1を示しています。 6322 はこのサーバーのポート番号です。 testdb はサーバーによってアクセス可能なサーバー上の Empressデータベースの位置です。 joe と code123は Empress サーバー パスワード ファイルに存在する クライアントログイン名とパスワードアカウントです。
サンプルコードをコンパイルします。Java コンパイラでコンパイルしなければなりません。
javac myDemo.java
このコマンドでmyDemo.classは作成されます。
作成されたmyDemo.classを実行します。Java インタプリタで実行しなければなりません。 例えば:
java myDemo
以下はmyDemo.javaコードです。
import java.sql.*;
public class myDemo
{
private static Connection TheConnection;
private static Statement SqlHandle;
private static ResultSet Results;
private static ResultSetMetaData MResults;
public static void main (String args[])
{
int count;
int num_attrs;
String name;
String type_name;
int type;
try
{
Class.forName ("empress.jdbc.empressDriver");
TheConnection = DriverManager.getConnection (
"jdbc:empress://SERVER=emery;PORT=6322;DATABASE=testdb",
"joe", "code123");
SqlHandle = TheConnection.createStatement ();
SqlHandle.executeUpdate("CREATE myTable (a char,
b double precision, c date)");
SqlHandle.executeUpdate("INSERT INTO myTable VALUES
('blue', 2.34, 19980213)");
SqlHandle.executeUpdate("INSERT INTO myTable VALUES
('red', 3.45, 19980214)");
SqlHandle.executeUpdate("INSERT INTO myTable VALUES
('green', 4.56, 19980215)");
Results = SqlHandle.executeQuery ("SELECT * FROM myTable");
MResults = Results.getMetaData ();
num_attrs = MResults.getColumnCount ();
while (Results.next () == true)
{
for (count=1; count<=num_attrs; count++)
{
name = MResults.getColumnName (count);
type = MResults.getColumnType (count);
type_name = MResults.getColumnTypeName (count);
System.out.print (name+"["+type_name+"]["+
MResults.getPrecision (count)+"]["+
MResults.getScale(count)+"]["+
MResults.isNullable (count)+"]: ");
switch (type)
{
case Types.DOUBLE:
System.out.println ("(double)" +
Results.getDouble (count));
break;
case Types.DATE:
System.out.println ("(date)" +
Results.getDate (count));
break;
default:
System.out.println ("(string)" +
Results.getString (count));
break;
}
}
}
}
catch (SQLException ex)
{
SQLException eptr;
for (eptr = ex; eptr != null; eptr = eptr.getNextException())
{
System.out.println ("Message: "+eptr.getMessage());
}
ex.printStackTrace ();
}
catch (Exception other)
{
other.printStackTrace ();
}
}
}