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でやっといた方が保守性があがるかなと思った。