mybatis的使用-Mapper文件各种语法

本文介绍了一种使用MyBatis进行自定义查询的方法,通过传递参数字符串、映射参数和分页限制来灵活地构建SQL查询语句。具体实现包括了通过条件构造SQL语句、使用动态SQL语法及参数传递。

一、查询

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;
	}

	
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值