beta7まで出たiBATIS3

iBATIS3 もbeta7 まで出た。正式版が出たら、iBATIS 2 はやめて、iBATIS 3 にしようかな。
SqlMapClient の代わりに SqlSession というクラスを使うことになるが、
アノテーションでSQLを記述する以外の古くからある手法では、
SqkMapClient で使用された 
    queryForObject は、selectOne
    queryForList   は、selectList
startTransaction や endTransaction はなく、
いきなり commit() , rollback() 実行でロジックの流れでトランザクション
管理することになる。
さらに、SqlSession のメソッドは、SQLException のcatch or throws を求めて
来ない。

Google Guice で SqlSession 生成のための provide を書くと楽になるであろう。
iBATIS3 のコンフィギュレーションファイル名= Configuration.xml 
なら、以下のように、com.google.inject.AbstractModule 継承クラス
に付与すれば良い。

   @Provides
   protected SqlSession providedSqlSession() throws IOException{
      SqlSessionFactory factory = new SqlSessionFactoryBuilder()
      .build(Resources.getResourceAsReader(
           "Configuration.xml"
      ));
      return factory.openSession();

   }

しかし、@Insert , @Update を記述したマッパーと呼ぶ interfaceのインスタンス
Sqlsessionから、getMapper(Class) で取得してもコミットやロールバックは、
Sqlsession インスタンスで実行しなければならない。