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

package postgresql;

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

import junit.framework.TestCase;

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

	/**
	 * JDBC接続時の文字列を指定します。
	 */
	public static final String JDBC_URL = "jdbc:postgresql://localhost:5432/template1";

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

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

	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);

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

			System.out.println("この試験はJUnitによるチェックは行えていません.");
			System.out.println("目視により同じ行が２度登場しないことを確認してください.");

			BlancoDbTest02PostgreSQLThread thread1 = new BlancoDbTest02PostgreSQLThread(
					0);
			thread1.start();
			Thread.sleep(5000);
			BlancoDbTest02PostgreSQLThread thread2 = new BlancoDbTest02PostgreSQLThread(
					500);
			thread2.start();
			thread1.join();
			thread2.join();

			System.out.println("試験完了しました.");
		} finally {
			conn.rollback();
			conn.close();
		}
	}

}