/*
 * blancoDbTutorial: blancoDbチュートリアル・サンプル
 * 
 * Copyright (C) 2005 tosiki.iga@nifty.ne.jp
 */

package ora9i;

import igapyon.query.DeptAllIterator;
import igapyon.row.DeptAllRow;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import junit.framework.TestCase;

/**
 * 注意: このクラスをコンパイルするためには、それまでの手順で自動生成したblancoDbソースコードが必要になります。
 */
public class BlancoDbTest01Ora9i extends TestCase {
	/**
	 * JDBCドライバ名を指定します。
	 */
	public static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";

	/**
	 * JDBC接続時の文字列を指定します。
	 */
	public static final String JDBC_URL = "jdbc:oracle:thin:@localhost:1521:orcl";

	/**
	 * JDBC接続時のユーザ名を指定します。
	 */
	public static final String JDBC_USERNAME = "scott";

	/**
	 * JDBC接続時のパスワードを指定します。
	 */
	public static final String JDBC_PASSWORD = "tiger";

	public void testProcess01() throws Exception {
		Class.forName(JDBC_DRIVER);
		Connection conn = null;
		try {
			conn = DriverManager.getConnection(JDBC_URL, JDBC_USERNAME,
					JDBC_PASSWORD);
			conn.setAutoCommit(false);

			// まず空の状態にします。
			processDeleteAll(conn);

			conn.commit();
			System.out.println("全ての処理終了しました.");
		} finally {
			conn.rollback();
			conn.close();
			conn = null;
		}
	}

	public void processDeleteAll(Connection conn) throws SQLException {
		System.out.println("単純な検索を実施します。");
		DeptAllIterator iterator = new DeptAllIterator(conn);
		try {
			for (; iterator.next();) {
				DeptAllRow row = iterator.getRow();
				System.out.println("DeptNo:" + row.getDeptno());
				System.out.println("  Dname:" + row.getDname());
				System.out.println("  Loc:" + row.getLoc());
			}
		} finally {
			iterator.close();
		}
	}

}