mybatis模糊查询--前台传过来一个字符串,然后将这个字符串作为where条件进行模糊查询

最近做项目时有这么一个查询的功能,它可以通过名字模糊查询,也可以通过地址模糊查询,还可以根据地区模糊查询等,但无论通过哪个查询,前台只传过来一个字符串,然后根据该字符串去模糊查询。代码如下:

1.mybatis的xml文件中:

第一种:"%"#{name}"%"


  

还有另一种方式:CONCAT(CONCAT('%', #{name}), '%') 


2.dao中:

        /**
	 * 查询商家
	 */
	public List selectMerchants(String s);


3.service代码:

	/**
	 * 根据商户名称或者地址,或者区域,或者街道来查询商户 
	 */
	public List selectMerchants(String s);


4.service中的Impl:

	/**
	 * 查询商家
	 */
	public List querySellerMerchant(String s) {
		return sellerMerchantMapper.selectMerchants(s);
	}


5.Controller中:

	/**
	 * 查询商家
	 */
	@RequestMapping("/q...")
	public ResultData queryMerchant(@RequestParam("name") String name){
		try {
			return new ResultData(sms.querySellerMerchant(name));
		} catch (Exception e) {
			e.printStackTrace();
			return SchExceptionUtil.ExceptionConvertState(e);
		}
	}


6.junit测试类:

@Test
	public void queryMerchant(){
		try {
			ResultActions ra = this.mockMvc.perform(MockMvcRequestBuilders.post("/m.../q...")
					.param("name", "九")
					);
			String mvc = ra.andReturn().getResponse().getContentAsString();
			System.out.println("++++++++++++++++++++"+mvc);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}







你可能感兴趣的:(mybatis)