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

来源:互联网 发布:c语言入门编程 编辑:程序博客网 时间:2024/05/29 15:02

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

1.mybatis的xml文件中:

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

<span style="font-family:Microsoft YaHei;"><!-- 根据商户名称或者地址,或者区域,或者街道来查询商户</span><span style="font-family: 'Microsoft YaHei';">(parameterType为参数类型,resultMap是查询的结果集)</span><span style="font-family:Microsoft YaHei;">-->  <select id="selectMerchants" parameterType="string" resultMap="BaseResultMap">  select * from seller_merchant   where name like "%"#{name}"%"   or address like "%"#{name}"%"   or city like "%"#{name}"%"  or country like "%"#{name}"%"  </select></span>

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

<span style="font-family:Microsoft YaHei;"><select id="selectMerchants" parameterType="string" resultMap="BaseResultMap">  select * from seller_merchant   where name like CONCAT(CONCAT('%', #{name}), '%')   or address like CONCAT(CONCAT('%', #{name}), '%')   or city like CONCAT(CONCAT('%', #{name}), '%')   or country like CONCAT(CONCAT('%', #{name}), '%')   </select></span>

2.dao中:

<span style="font-family:Microsoft YaHei;">        /** * 查询商家 */<span style="font-family: 'Microsoft YaHei';font-size:14px;">public List<SellerMerchant> selectMerchants(String s);</span></span>


3.service代码:

<span style="font-family:Microsoft YaHei;"><span style="white-space:pre"></span>/** * 根据商户名称或者地址,或者区域,或者街道来查询商户  */public List<SellerMerchant> selectMerchants(String s);</span>


4.service中的Impl:

<span style="font-family:Microsoft YaHei;"><span style="white-space:pre"></span>/** * 查询商家 */public List<SellerMerchant> querySellerMerchant(String s) {return sellerMerchantMapper.selectMerchants(s);}</span>


5.Controller中:

<span style="font-family:Microsoft YaHei;"><span style="white-space:pre"></span>/** * 查询商家 */@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);}}</span>


6.junit测试类:

<span style="font-family:Microsoft YaHei;">@Testpublic 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();}}</span>







0 0
原创粉丝点击