MyBatisの記述方法
iBatisもバージョン3からMyBatisというように名前が変わったようです。
mybatis-3.0.4.jarを使用しています。以下は、src/conf配下にmapper.xmlがある場合の記述方法です。
package jp.co.confrage;
public class DbManager {
private Connection conn;
private SqlSession session;
// グローバル変数
private static SqlSessionFactory sqlSessionFactory;
/**
* プライベートコンストラクタ
*/
private DbManager() {
// インスタンス不可
}
/**
* SqlSessionFactoryインスタンスを同期をとって返す
* @return sqlSessionFactory SqlSessionFactoryインスタンス
*/
public static synchronized SqlSessionFactory getInstance() {
if (sqlSessionFactory == null) {
Reader reader = Resources.getResourceAsReader("conf/mapper.xml");
sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
}
return sqlSessionFactory;
}
/**
* トランザクションをコミットします。
* @throws Exception
*/
public void commit() throws Exception {
SqlSession session = sqlSessionFactory.openSession();
if (session != null) {
Connection conn = session.getConnection();
conn.commit();
}
}
}
SqlSessionFactoryをシングルトンにする事によって1つのインスタンスを使用することを保証します。
MyBatisについてです。
mapper.xmlの記述方法
ここでは、mapper.xmlと命名していますが別名でもかまいません。
mapper.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>
<mappers>
<mapper resource="sqlmap/common/a.xml" />
<mapper resource="sqlmap/common/b.xml" />
</mappers>
</configuration>
src配下にsqlmap/common/a.xml等が配置されている例です。
a.xmlの記述方法
これもここではa.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="jp.co.confrage.domain.repostiory.CustomerRepostiory">
<select id="selectTEST" parameterType="jp.co.confrage.Aaa1000Bean" resultType="Integer">
SELECT COUNT(1)
FROM テーブル名
</select>
</mapper>
このように記述していきます。
parameterTypeとは
parameterTypeとは、SQL文中の置換パラメータにセットするパラメータのことで、java.util.Mapなどでも指定することができます。但し、置換パラメータがない場合はparameterTypeは指定する必要がなく、省略可能です。
parameterType="java.util.Map" parameterType="Map" parameterType="map"
上記はすべて同じ意味で、Mapとmapは、java.util.Mapのエイリアス(別名)です。
Mapをパラメータとする例です。
Map<String, String> param = new HashMap<String, String>();
param.put("key","123");
SQLの記述例です。
<select id="sqlid001" parameterType="Map" resultType="int">
SELECT
COUNT(1)
FROM SAMPLE_TBL
WHERE CODE = #{key}
</select>
resultTypeとは
resultTypeとは、SQL文の戻り値を受けるクラスを指定します。
intとすると、int型のラッパークラスであるIntegerとなります。
_intとするとプリミティブ型のint型となります。
以下、resultTypeをMapとした例です。
<select id="sqlid001" parameterType="Map" resultType="java.util.Map">
SELECT CODE, NAME, AGE
FROM SAMPLE_TBL
WHERE CODE = #{key}
</select>
取得するカラムが複数の場合はMapで受けることができます。
Javaのコーディング例です。
Map<String, Object> map = (Map<String, Object>) dbm.selectOne("sqlid001", map);
SQL文内のコメント
XMLファイル内のSQL構文内でのコメント記述方法です。
--の後ろが1行コメントになります。
<select id="selectOne" resultMap="BaseMap"> SELECT a.* FROM テーブル a -- コメントです </select>

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント