Springboot+Mybatis实现分页加条件查询功能

网友投稿 1528 2022-10-12

Springboot+Mybatis实现分页加条件查询功能

Springboot+Mybatis实现分页加条件查询功能

本文实例为大家分享了Springboot+Mybatis实现分页加条件查询的具体代码,供大家参考,具体内容如下

User.xml

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

-- 这里的id为函数名

update user

username=#{userhttp://name},

nickname=#{nickname},

email=#{email},

phone=#{phone},

address=#{address}

id = #{id}

select * from user

limit #{startIdx},#{size}

select count(*) from user

1=1

and username like concat("%",#{username},"%")

and email like concat("%",#{email},"%")

and address like concat("%",#{address},"%")

UserMapper.java

package com.shelbourne.schooldelivery.mapper;

import com.shelbourne.schooldelivery.entity.User;

import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper

public interface UserMapper {

//查询所有用户

@Select("select * from user")

//mybatis提供注解,注意SQL语句后不能加分号

List findAll();

//新增用户

@Insert("insert into user(username,password,nickname,email,phone,address)" +

"values(#{username},#{password},#{nickname},#{email},#{phone},#{address})")

public Integer insert(User user);

//通过注解(静态)和xml里面(动态)两种方式编写SQL语句

int update(User user);

//删除单个用户

@Delete("delete from user where id=#{id}")

Integer deleteById(@Param("id") Integer id);//最后加上@Param参数,参数名和上面的#{}里面的一样

//查询记录条数

@Select("select count(*) from user")

Integer selectTotal();

//编写动态SQL实现分页查询+条件查询

//查询满足条件的某一页用户

List selectPageWithParam(Integer startIdx, Integer size, String username, String email, String address);

//查询满足条件的所有用户数

int selectTotalWithParam(String username, String email, String address);

}

UserController.java

package com.shelbourne.schooldelivery.controller;

import com.shelbourne.schooldelivery.entity.User;

import com.shelbourne.schooldelivery.mapper.UserMapper;

import com.shelbourne.schooldelivery.service.UserService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.*;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

@RequestMapping("/user") //统一给接口加前缀,postman后台接口localhost:9090/user

@RestController

public class UserController {

@Autowired //注入其他类的注解

private UserMapper userMapper;

@Autowired

private UserService userService;

//查询所有用户

@GetMapping

public List findAll(String username) {

return userMapper.findAll();

}

//通过POST请求进行新增和更新操作

@PostMapping

public Integer save(@RequestBody User user) {//一定要加上RequestBody,可以把前端传回的jsON对象转换为Java对象

return userService.save(user);

}

//删除请求接口

@DeleteMapping("/{id}")

public Integer delete(@PathVariable Integer id) {//这里的“id”必须和DeleteMapping里面的名字一样

return userMapper.deleteById(id);

}

@GetMapping("/page")

public Map findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @RequestParam String username,

@RequestParam String email, @RequestParam String address) {

AlyuEbIbs int startIdx = (pageNum - 1) * pageSize, size = pageSize;

List data = userMapper.selectPageWithParam(startIdx, size, username, email, address);//获取一页的数据

int total = userMapper.selectTotalWithParam(username, email, address);//查询总条数

Map res = new HashMap<>();

res.put("data", data);//表格数据

res.put("total", total);//分页使用

return res;

}

}

Home.vue中:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:轻松实现图片上传,只用 2kb大小不需要框架(如何不让图片自动上传)
下一篇:自学HarmonyOS应用开发(73)- 准备相机(2)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~