寫設定檔應該是比較多人早期的用法~
(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...
沒有留言:
張貼留言