naobe @ ウィキ
MyBatis
最終更新:
naobe
-
view
OpenSourceに戻る
概要/特徴
- iBatisの後継ソフトウェア
iBatisとの相違点
- Mapperクラスを作成して、SQLの結果を取得できる。select要素のid属性を指定しないのでミスを削減できる
- マップコンフィグファイルの要素に変更あり
- springとの連携にMyBatisが用意したクラスを使う(Springの対応遅れのため)
設定ファイル
マップコンフィグファイル
クラスパスディレクトリに置く。
typeAliasは、mapperのresultmapで使う。
typeAliasは、mapperのresultmapで使う。
mybatis/kakeiboKakeiboMapConfig.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> <typeAliases> <typeAlias alias="InOutName" type="suna.kakeibo.InOutName" /> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.ibm.db2.jcc.DB2Driver" /> <property name="url" value="jdbc:db2://localhost:50000/suna" /> <property name="username" value="user" /> <property name="password" value="password" /> </dataSource> </environment> </environments> <mappers> <mapper resource="mybatis/kakeibo/mapper/inOutNameMapper.xml" /> </mappers> </configuration>
マップファイル
クラスパスディレクトリに置く
inOutNameMapper.xml <?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="suna.kakeibo.mapper.InOutNameMapper"> <resultMap id="inOutNameResult" type="InOutName"> <id property="nameId" column="NAMEID" /> <result property="name" column="NAME" /> <result property="nameType" column="NAMETYPE" /> </resultMap> <select id="selectInoutName" resultMap="inOutNameResult"> select NAMEID, NAME, NAMETYPE from INOUTNAME </select> </mapper>
プログラム
package test;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import suna.kakeibo.InOutName;
import suna.kakeibo.mapper.InOutNameMapper;
public class TestMyBatis {
public static void main(String[] args) {
TestMyBatis test = new TestMyBatis();
try {
test.execute();
} catch (IOException e) {
e.printStackTrace();
}
}
private void execute() throws IOException {
//マップコンフィグファイルをロード
String resource = "mybatis/kakeibo/kakeiboMapConfig.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sqlMapper =
new SqlSessionFactoryBuilder().build(reader);
//SqlSessionの作成
SqlSession session = sqlMapper.openSession();
try {
//マッパクラス取得
InOutNameMapper mapper = session.getMapper(InOutNameMapper.class);
//検索実行
List<InOutName> nameList = mapper.selectInoutName();
//結果出力
dbg("nameList:" + nameList);
} finally {
session.close();
}
}
private void dbg(String string) {
System.out.println(string);
}
}
package suna.kakeibo.mapper;
import java.util.List;
import suna.kakeibo.InOutName;
public interface InOutNameMapper {
public List<InOutName> selectInoutName();
}
