美文网首页
mybatis-plus模糊查询

mybatis-plus模糊查询

作者: 墨色尘埃 | 来源:发表于2019-04-11 17:41 被阅读0次

mybatis-plus分页查询
mybatis-plus分页查询模糊搜索
new EntityWrapper<>(userInfo).like("firstname", name).or().like("lastname", name)
且看这一句条件构造器,userInfo是需要模糊查询的表对应的model,firstname和lastname则是需要模糊查询的字段,or()是指两个条件或者的关系,在sql中执行的语句是:
SELECT * FROM users WHERE (firstname LIKE '%海%' OR lastname LIKE '%海%')

control
//模糊查询方法一

    //模糊查询方法一
    @RequestMapping(value = "/testTask", method = RequestMethod.GET)
    public ResponseObj<List<UserInfo>> testTask(@RequestParam("name") String name) {


        List<UserInfo> userInfos = userInfoMapper.selectList(new EntityWrapper<>(userInfo).like("firstname", name)
                .or().like("lastname", name));

        return new ResponseObj<>(userInfos, null);


    }

这里selectList方法是mybatis-plus中的

//模糊查询方法二
这个是通过传入对象进行模糊查询

    //模糊查询方法二
    @RequestMapping(value = "/testTask1", method = RequestMethod.GET)
    public ResponseObj<List<TimeEntries>> testTask1(@ModelAttribute UserInfo userInfo) {

        List<UserInfo> list = userInfoMapper.list(new EntityWrapper<>(userInfo));

        List<TimeEntries> listAll = new ArrayList<>();
        if (list != null && list.size() > 0) {
            for (UserInfo info : list) {

                List<TimeEntries> list1 = timeEntriesMapper.list(info.getId());
                listAll.addAll(list1);

            }
        }
        System.out.println(listAll.size());

        // 按userId升序、username降序、birthDate升序排序
        String[] sortNameArr = {"spentOn", "fullName", "hoursSum"};
        boolean[] isAscArr = {false, true, true};
        ListUtils.sort(listAll, sortNameArr, isAscArr);
        System.out.println("\n--------按按userId升序、username降序、birthDate升序排序(如果userId相同,则按照username降序," +
                "如果username相同,则按照birthDate升序)------------------");

        return new ResponseObj<>(listAll, null);


    }

UserInfoMapper

@Mapper
public interface UserInfoMapper extends BaseMapper<UserInfo> {

    List<UserInfo> list(@Param("ew") Wrapper<UserInfo> wrapper);
}

UserInfoMapper.xml

  <select id="list" resultType="com.cicdi.servertemplate.modules.work.model.UserInfo">
    SELECT
       *
    FROM
       users
    WHERE
        1=1
    <if test="ew!=null">
      <if test="ew.entity!=null">
        <if test="ew.entity.name!=null">
          AND CONCAT(lastname, firstname) LIKE CONCAT('%',#{ew.entity.name},'%')
        </if>
      </if>
      <if test="ew.sqlSegment!=null">
        ${ew.sqlSegment}
      </if>
    </if>
  </select>

相关文章

网友评论

      本文标题:mybatis-plus模糊查询

      本文链接:https://www.haomeiwen.com/subject/luxxwqtx.html