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(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント