我使用MyBatis通常都是搭配xml ,但有時候會用到 Annotation  

如果SQL語法簡單我覺得也挺好用的 

可是如果需要傳參數,或是需要多個條件判斷就可能需要用到 @SelectProvider

下面是我寫的方式,給大家參考

這是Dao的 interface  

@SelectProvider(type = SQLBuilder.class, method = "selectCitiesByArea")
@ResultMap("BaseResultMap")
ThwCities[] selectCitiesByArea(@Param("XXX") String xxx);

type指向一隻calss, 並告知要使用裡面的哪一個 method

後面設定的 @Param("XXX") String xxx 是要使用的參數,前面@Param 可以想成key的意思

======================

下面是SQLBulider.java  用一個Map 接, 取到裡面的xxx, 然後去組你的SQL語法

看到這裡是不是覺得有點麻煩==不能像xml 一樣 用 <if test="> 去判斷,所以只能自己無腦寫判斷去組 

public class SQLBuilder {

	public String selectCitiesByArea(Map<String, Object> para) {
		
		logger.info("selectCitiesByArea XXX="+para.get("XXX"));
		
		String sqlCommand = null;
		if(para.get("XXX") != null){
			sqlCommand =  "SELECT * FROM TABLE WHERE XXX= '" + para.get("XXX") +"'";
		}else{
			sqlCommand =  "SELECT * FROM TABLE ";
		}
		return sqlCommand +" ORDER BY AAA";
	}
}

使用後心得,還是回去用XML吧 朋友XD

文章標籤
創作者介紹
創作者 瑞、瑪姬與小昆妮 的頭像
瑞、瑪姬與小昆妮

瑞瑪姬與小昆妮♫趴趴走黑白吃

瑞、瑪姬與小昆妮 發表在 痞客邦 留言(0) 人氣()