2015年10月8日 星期四

spring4 + mybatis3 sample (簡易版) - mybatis with mapper config

寫設定檔應該是比較多人早期的用法~
(ibatis也是寫設定檔,然後跟 mybatis ...長得很像,但有微妙的不同!!)

首先他的 mapper xml resource 會定在主要的 mybatis-config 裡
      <mappers>
          <mapper resource="xxx/xxx/xxx/xxx/sample/SampleConfigDao.xml"/>
      </mappers>

然後在其對應的路徑下就是要有這麼一個 xml。
namespace 要 對應到 其 interface 的 class name
/WEB-INF/classes/xxx/xxx/xxx/xxx/sample/SampleConfigDao.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="xxx.xxx.xxx.xxx.sample.SampleConfigDao" >
  
    <select id="selectSampleConfig" parameterType="java.lang.String" resultType="java.util.HashMap">
        SELECT * FROM aa where name = #{name}
    </select>
  
</mapper>


所以對應的dao(mapper)要跟 xml 對應到~ namesapce,method name,input/output
/WEB-INF/classes/xxx/xxx/xxx/xxx/sample/SampleConfigDao.java

import java.util.*;
import org.springframework.stereotype.Repository;

@Repository
public interface SampleConfigDao {
   
    public List<HashMap> selectSampleConfig(String name);
}


和 annotation 的差別在於, annoatation 可以直接把 xml的內容,寫在 java (interface) 內,省了兩個檔~
但是 annoation 有個問題就是,總體要看到這系統用了幾個檔,就不太容易看~只能靠search...
寫設定檔~是很囉唆~加個(改個)功能,要動到 3隻 以上的程式 (mybatis-config.xml,xxx ineterface,xxx.xml)

總之軟體就是沒有100分的解~這樣工程師才不會失業阿Orz...

沒有留言: