Springboot+mybatis-plus实现模糊查询
首先对于mybatis映射的配置
mybatis:
mapper-locations: classpath:mapper/*.xml #注意:一定要对应mapper映射xml文件的所在路径
type-aliases-package: com.example.demo.pojo # 注意:对应实体类的路径
对于mapper-locations的配置非常重要,一定是你mapper映射的.xml文件所在的路径,我的路径为当前项目下的mapper文件夹。
其次是对于你namespace路径的配置,该路径为你mapper类的路径。
<mapper namespace="com.fjnu.kb.dao.sk.KbMapper" >
路径配置正确后,就是对于你所定义结果的映射书写,需要注意的是resultmap中的id值要与select语句中的resultMap值对应。select中的id为你mapper类中自己定义的类名。多的不说,放代码:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.fjnu.kb.dao.sk.KbMapper" >
<!--定义结果映射-->
<resultMap id="KbResultMap" type="com.fjnu.kb.bean.sk.Kb">
<!--主键-->
<id column="kb_id" property="kbId"></id>
<!--普通字段-->
<result column="user_id" property="userId"></result>
<result column="kb_create_time" property="kbCreateTime"></result>
<result column="kb_title" property="kbTitle"></result>
</resultMap>
<!--定义查询-->
<select id="getKbByTitle" resultMap="KbResultMap">
select a.kb_id,a.user_id,a.kb_create_time,a.kb_title from t_kb a where kb_title like CONCAT('%',#{kbTitle},'%')
</select>
</mapper>
select语句:CONCAT(’%’,#{kbTitle},’%’)
对于搜索语句的书写,重点在于like后面要怎么写,我个人推荐使用CONCAT(’%’,#{kbTitle},’%’)得方法去书写,{}中放的是你传入的值,’%${question}%’ 个人不是很推荐。
控制类代码如下
因为没有什么难度,所以不做解释,于一般搜索一致。
@RequestMapping("/searchKb/{kbTitle}")
public Result searchKb(@PathVariable String kbTitle){
System.out.println(kbTitle);
List<Kb> list=null;
list = kbService.searchKbByTitle(kbTitle);
Result result = ResultUtils.success(list);
result.setCode(0);
result.setMsg("查询成功");
return result;
}
具体展示如下: