MyBatis

いつのまにか日本語のドキュメントができあがってる

http://www.mybatis.org/core/ja/getting-started.html

普段はiBatisなので、MyBatisをまとめる。

SqlSessionFactoryが中心

SqlSessionFactoryBuilderからSqlSessionFactoryのインスタンスを生成(生成の設定はxmlか独自Configurationクラス)

SqlSessionFactoryからSqlSessionのインスタンスを生成(SqlSessionには,一連のSQLコマンドを実行するためのメソッドが全て用意されている)

補足:iBatisとちがってMyBatisはネームスペースが必須

<結局重要な4つのクラス>

・SqlSessionFactoryBuilder(ローカルスコープ)

・SqlSessionFactory(アプリケーションスコープ)

・SqlSession(ローカルスコープ ※スレッドセーフじゃないから)

・Mapper(当然SqlSessionと同じ)


簡単な例

SqlSession session = sqlSessionFactory.openSession(); 
try {
  BlogMapper mapper = session.getMapper(BlogMapper.class);
} finally {
  session.close();
}

補足
SQLステートメントをxmlでやるのか、あのテーションでやるのかというところで
個人的にはアノテーションよりもxmlでやる方が好き!!
なぜならアノテーションではそれなりに制限がある(まだすべて把握できていないけど)
だから簡単なのはアノテーションで難しいのはxmlみたいにしてステートメントが散らばるのがいやだから。
だったら複雑なのも簡単なのもxmlでやっといた方が保守性があがるかなと思った。