// 以下のパッケージをインポートします。
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
// クラスを定義します。
public class MyScrollAccess
{
public static void main(String args[])
{
try
{
// JNDI環境を指定します。
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.fujitsu.symfoware.jdbc2.jndisp.SYMContextFactory");
env.put(Context.PROVIDER_URL,"SYM://myhost:10326");
InitialContext ctx = new InitialContext(env);
// JDBCデータソースを取得します。
DataSource ds = (DataSource)ctx.lookup("jdbc/ds1");
// データベースと接続します。
Connection con = ds.getConnection();
// 自動コミットの設定
con.setAutoCommit(false);
// スクロール可能なResultSetオブジェクトを生成するよう指定し、
// Statementのオブジェクトを生成します。
Statement stmt =
con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
java.sql.ResultSet.CONCUR_READ_ONLY);
// SQL文を実行し、ResultSetの
// オブジェクトを生成します。
ResultSet rs =
stmt.executeQuery("SELECT ID,NAME FROM GENERAL.EMPLOYEE");
int iID = 0;
String sName = null;
int iCursor = 0;
// カーソルを3行目に移動する。
if(rs.absolute(3))
{
// 結果セットに3行目のデータがあった場合、データを取得します。
iID = rs.getInt(1);
sName = rs.getString(2);
// 取得した情報を表示します。
System.out.println("ID = " + iID);
System.out.println("NAME = " + sName);
// カーソルの位置が何行目にあるかを印字する。
iCursor = rs.getRow();
System.out.println("カーソル位置 = " + iCursor);
}
// ResultSetのオブジェクトをクローズします。
rs.close();
// Statementのオブジェクトをクローズします。
stmt.close();
// Connectionのオブジェクトをクローズします。
con.close();
}
// SQLExceptionが発生した場合の処理を記述します。
catch (SQLException e)
{
// エラー情報を出力します。
System.out.println("ERROR MESSAGE : " + e.getMessage());
System.out.println("SQLSTATE : " + e.getSQLState());
System.out.println("ERROR CODE : " + e.getErrorCode());
e.printStackTrace();
}
// その他のExceptionが発生した場合の処理を記述します。
catch (Exception e)
{
// スタックトレースを出力します。
e.printStackTrace();
System.out.println("ERROR MESSAGE : " + e.getMessage());
}
}
} |