摘要:MyBatis 初識
MyBatis 的好處在於可以將SQL語法抽出。
因為SQL語法都寫在XML上所以移植性較佳。
支援 JAVA NET RUBY
一支JAVA 對應一支 XML
JAVA主要是interface 對應XML中不同的SQL語法宣告。
public interface ExamineeDao {
/**
* 查詢考生報名資料
*/
public ArrayList qryExaminee(ExamineeQryObj qryObj);
}
<select id="qryExaminee" resultMap="BasicMap">
SELECT
<include refid="columns" />
FROM exm_examinee
WHERE
exam_seq_no = #{exmSeqNo}
</select>
在xml中有幾個重要屬性,parameterType 、resultType、resultMap
這是指他傳入參數的屬性以及從DB查完後存入的屬性。
如 :
<resultMap id="BasicExamineeMap"
type="xxx.xxx.xxx.xxx.ExmExaminee">
<id property="examSeqNo" column="EXAM_SEQ_NO" />
<id property="signSeqNo" column="SIGN_SEQ_NO" />
<result property="grantNo" column="GRANT_NO" />
<result property="examSubject" column="EXAM_SUBJECT" />
<result property="mechanicType" column="MECHANIC_TYPE" />
<result property="idNo" column="ID_NO" />
</resultMap>
resultMap id 對應到SQL中Select玩所對應的物件type
<id> 開頭的為PK(主鍵)或FK(相依鍵)
property 為物件中的屬性
column為DB欄位的名稱
透過此方式將DB欄位資料放入物件屬性中。
回到qryExmExaminee
其中有一段是<include refid="columns" />
主要是可以將select欄位有效整理
<sql id="columns">
RTRIM(exam_seq_no) exam_seq_no,
sign_seq_no,
RTRIM(grant_no)
grant_no,
RTRIM(exam_subject) exam_subject,
RTRIM(mechanic_type)
mechanic_type
<sql>