一、查询
mybatis自定义查询条件,queryString、queryMap、limit,Mapper文件写法如下:
<select id="getByQueryParam" parameterType="com.systom.base.BaseDaoQueryParam" resultMap="BaseResultMap">
SELECT
*
FROM
user
WHERE 1 = 1
<if test="paramString != null">
and ${paramString}
</if>
<foreach collection="paramMap.keys" item="k" separator="">
<if test="null != paramMap[k]">
and ${k} = #{paramMap.${k}}
</if>
</foreach>
<if test="paramInt1 != null and paramInt1 > 0 and paramInt2 != null and paramInt2 > 0">
limit #{paramInt1,jdbcType=INTEGER}, #{paramInt2,jdbcType=INTEGER}
</if>
</select>
以及传入参入的bean类:
package com.systom.base;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
public class BaseDaoQueryParam implements Serializable {
private static final long serialVersionUID = -8917191044499296040L;
private String paramString;
private Map<String, Object> paramMap = new HashMap<String, Object>();
private int paramInt1;
private int paramInt2;
private String orderBy;
private String orderType;
public BaseDaoQueryParam(String paramString, Map<String, Object> paramMap, int paramInt1,
int paramInt2) {
super();
this.paramString = paramString;
if(paramMap != null) this.paramMap = paramMap;
this.paramInt1 = paramInt1;
this.paramInt2 = paramInt2;
}
public BaseDaoQueryParam(String paramString, Map<String, Object> paramMap, int paramInt1,
int paramInt2, String orderBy, String orderType) {
super();
this.paramString = paramString;
if(paramMap != null) this.paramMap = paramMap;
this.paramInt1 = paramInt1;
this.paramInt2 = paramInt2;
this.orderBy = orderBy;
this.orderType = orderType;
}
public String getParamString() {
return paramString;
}
public void setParamString(String paramString) {
this.paramString = paramString;
}
public Map<String, Object> getParamMap() {
return paramMap;
}
public void setParamMap(Map<String, Object> paramMap) {
this.paramMap = paramMap;
}
public int getParamInt1() {
return paramInt1;
}
public void setParamInt1(int paramInt1) {
this.paramInt1 = paramInt1;
}
public int getParamInt2() {
return paramInt2;
}
public void setParamInt2(int paramInt2) {
this.paramInt2 = paramInt2;
}
public String getOrderBy() {
return orderBy;
}
public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
}
public String getOrderType() {
return orderType;
}
public void setOrderType(String orderType) {
this.orderType = orderType;
}
}