聞いたことはあるけどよく知らないMyBatisにちょっと近づいてみる
- MyBatisは、O/Rマッパーです。
- ということでMyBatisは、リレーショナルデータベースとJavaプログラムを手軽につなげてくれるフレームワークです。
- Eclipseを使う場合の便利なプラグイン
- MyBatisでエラーになって困った事例集
MyBatisは、O/Rマッパーです。
O/Rマッパーっていうのはオブジェクト指向のプログラムとリレーショナルデータベースをつなげてくれます。
O/RマッパーはObject/Relationalマッパーの略で、オブジェクト指向のプログラムと、RDBをライブラリで橋渡ししようという考え方です。
cfm-art.sakura.ne.jp
ということでMyBatisは、リレーショナルデータベースとJavaプログラムを手軽につなげてくれるフレームワークです。
MyBatis はカスタム SQL、ストアドプロシージャ、高度なマッピング処理に対応した優れた永続化フレームワークです。 MyBatisを使うことで、直接 JDBC を扱うコードを書いたり、クエリ引数やクエリ結果を手動で設定する必要がほとんどなくなります。 MyBatis の設定やデータベースレコードと Java オブジェクトの関連付けは、XML またはアノテーションを使って行うことができます。
MyBatis – MyBatis 3 | イントロダクション
JDBCは、リレーショナルデータベースにアクセスするための標準Java APIです。
Java Database Connectivityの省略という噂はありますがホントの名称はわからないっぽいです。
JDBCを使って「データベースへの接続」「SQLの実行」「データベースからの結果取得」ができます。
このJDBCを直接使うよりもMyBatisをJDBCの手前に置いて使うほうがカンタンにデータベースとプログラムをつなげることができます。
5.2. データベースアクセス(MyBatis3編) — TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.1.0.RELEASE documentation
設定やSQLはXMLに書けばMyBatisが頑張ってくれます。
XML 形式の設定ファイルを使って SqlSessionFactory を生成する
XML 形式の設定ファイルには、MyBatis システムの基本設定が含まれます。 例えば、データベースから Connection のインスタンスを取得する DataSource や、トランザクションの制御方法を決定する TransactionManager などです。
XML 形式の設定ファイルの詳細については後ほど改めて説明しますが、ここでは簡単なサンプルを挙げておきます。<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <mappers> <mapper resource="org/mybatis/example/BlogMapper.xml"/> </mappers> </configuration>Mapped SQL Statements について
以下は、先ほどの例で SqlSession のメソッドを呼び出したときに実行されることを想定した XML ベースの Mapped Statement です。<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.mybatis.example.BlogMapper"> <select id="selectBlog" resultType="Blog"> select * from Blog where id = #{id} </select> </mapper>BloggerMapper のような Mapper クラスなら、実は XML を使う必要はありません。 代わりに、Java アノテーションを使って下記のように Mapped Statement を記述することができます。
public interface BlogMapper { @Select("SELECT * FROM blog WHERE id = #{id}") Blog selectBlog(int id); }
5.2. データベースアクセス(MyBatis3編) — TERASOLUNA Server Framework for Java (5.x) Development Guideline 5.1.0.RELEASE documentation
Eclipseを使う場合の便利なプラグイン
MyBatis Generatorは、オブジェクトを自動生成してくれます。
- 構成ファイルを作成する
- [実行] > [実行構成] > [MyBatis Generator] > 構成ファイルを選択 > 実行