Mybatis Xml 传入动态字段 排序

太原  2019.6-28

 

主要思路是 使用${} ,

#{}传过来的参数带单引号'',而${}传过来的参数不带单引号。

下面是Mybatis中Xml格式的写法

#{}  ${} 可以混用,  好像不太建议 ,不过就是这么一回事

	<select id="findBookMemberPagerConditionList" resultMap="BaseResultMap"
			parameterType="com.leimingtech.service.utils.page.Pager">

		select * from book_contact_member
		WHERE 1 = 1
		<if test="condition.companyPosition != null and condition.companyPosition != ''">
			AND company_position = #{condition.companyPosition}
		</if>

		<if test="condition.filterItem != null and condition.filterItem != ''">
			<if test="condition.sortItem == 0">
				order by ${condition.filterItem} desc
			</if>
			<if test="condition.sortItem == 1">
				order by ${condition.filterItem} asc
			</if>
		</if>
	</select>

Controller

@RequestMapping("/searchTermList")
	public ModelAndView searchTermList(
			@RequestParam(value = "pageNo", required = false, defaultValue = "1")String pageNo,
			@RequestParam(required=false, value="goodClass",defaultValue="")String goodClass,
			@RequestParam(required=false, value="tradeType",defaultValue="")String tradeType,
			@RequestParam(required=false, value="position",defaultValue="")String position,
			@RequestParam(required=false, value="filterItem",defaultValue="")String filterItem,
			@RequestParam(required=false, value="filterSort",defaultValue="")String filterSort) {

		ModelAndView model = new ModelAndView("html5/bookContact/contactMemberList-page");
		Pager pagerMember = new Pager();
		pagerMember.setPageSize(5);
		pagerMember.setPageNo(Integer.parseInt(pageNo));

		BookContactMember Member = new BookContactMember();
		Member.setIsFamous("1");//设置查询条件 大腕
		Member.setCompanyPosition(position);//职务
		Member.setTradeType(position);//职务
		Member.setTradeType(tradeType);//行业
		Member.setGoodsClass(goodClass);//产品 (一级分类)
		//判断排序字段
		if(StringUtils.isNotBlank(filterItem)){
			if(StringUtils.equalsIgnoreCase(filterItem,"readNum")){
				Member.setFilterItem("read_num");
			}
			if(StringUtils.equalsIgnoreCase(filterItem,"needNum")){

				Member.setFilterItem("need_num");
			}
			if(StringUtils.equalsIgnoreCase(filterItem,"bbsNum")){
				Member.setFilterItem("bbs_num");
			}
			//判断排序的顺序
			if(StringUtils.isNotBlank(filterSort)){
				//1是正序  0是倒序
				if(StringUtils.equalsIgnoreCase(filterSort,"1")){
					Member.setSortItem(Integer.parseInt(filterSort));
				}
				if(StringUtils.equalsIgnoreCase(filterSort,"0")){
					Member.setSortItem(Integer.parseInt(filterSort));
				}
			}

		}

		pagerMember.setCondition(Member);
		List<BookContactMember> bookMemberPageList = bookContactMemberService.findBookMemberPagerConditionList(pagerMember);
}

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值