- 先写一个REST端点——
Controller
Class: controller/TestController.class
package controller;
@GetMapping("/search")
public List<UserInfo> search(String keyword) {
return userInfoService.searchByKeyWord(keyword);
}
- 写业务接口——
sevice
Class:service/UserinfoService.class
package service;
@Service
public interface UserInfoService {
//关键词模糊查询
List<UserInfo> searchByKeyWord(String keyword);
}
- 写业务接口的实现类——
service/impl
Class: service/impl/UserInfoServiceImpl.class
package service.impl;
@Service
public class UserInfoServiceImpl implements UserInfoService {
@Override
public List<UserInfo> searchByKeyWord(String keyword) {
return userInfoDao.searchByKeyWord(keyword);
}
}
- 写映射层接口——
dao
Class: dao/UserInfoDao.class
package dao;
@Mapper
public interface UserInfoDao {
//关键词模糊查询
List<UserInfo> searchByKeyWord(String keyword);
}
- 写sql映射文件——
resource/mapper
UserInfo.xml
<?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="dao.UserInfoDao">
<select id="searchByKeyWord" parameterType="String" resultType="UserInfo">
SELECT * FROM userinfo
WHERE 1 = 1
<if test="keyword != null and keyword != ''">
AND id||username||role LIKE '%'||#{keyword}||'%'
</if>
ORDER BY id
</select>
</mapper>
- Id, username, role 是要查询表中的字段
||
用于拼接,与CONCAT关键字类似