小白练习-使用springboot+mybatis-plus实现基础的增删改查
以下内容仅供自己学习使用,侵权必删
- 实体类
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
@Data
@TableName(value = "sys_user")
public class User {
@TableId(type = IdType.AUTO)
private Integer id;
private String username;
@JsonIgnore //不展示这个信息给前端
private String password;
private String nickname;
private String email;
private String phone;
private String address;
}
- controller控制器
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.el.springboot.entity.User;
import com.el.springboot.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 查询管理员列表
*
* @return
*/
@GetMapping("/all")
public List<User> findAll() {
return userService.list();
}
/**
* 新增或修改
*/
@PostMapping("/save")
public Boolean save(@RequestBody User user) {
return userService.saveUser(user); //saveUser是调用了Service类的方法
}
/**
*根据id进行删除
*/
@DeleteMapping("/{id}")
public Boolean delete(@PathVariable Integer id) {
return userService.removeById(id);
}
/**
* 批量删除
*/
@PostMapping("/del/batch")
public Boolean deleteBatch(@RequestBody List<Integer> ids) {
return userService.removeBatchByIds(ids);
}
/**
* 分页查询
*
* @param pageNum
* @return SELECT * from sys_user LIMIT 0,2;--第一页
* --(2-1)*2=2
* SELECT * from sys_user LIMIT 2,2;--第二页
* --(3-1)*2=4
* SELECT * from sys_user LIMIT 4,2;--第三页
* limit第一个参数=(pageSize-1)*pageNum
*/
//@GetMapping("/page")
//public Map<String, Object> findPage(
// @RequestParam Integer pageNum,
// @RequestParam Integer pageSize,
// @RequestParam String username
//) {
// pageNum = (pageNum - 1) * pageSize;
// List<User> data = userMapper.selectPage(pageNum, pageSize,username);
// Integer total = userMapper.selectTotal(username);
// Map<String, Object> res = new HashMap<>();
// res.put("total", total);//返回总条数
// res.put("data", data);//返回数据
// res.put("pageNum", pageNum);//页数
// res.put("pageSize", pageSize);//条
// return res;
//}
/**
* 分页查询
*/
@GetMapping("/page")
public IPage<User> findPage(@RequestParam Integer pageNum,
@RequestParam Integer pageSize,
@RequestParam(defaultValue = "") String username,
@RequestParam(defaultValue = "") String email,
@RequestParam(defaultValue = "") String address
) {
IPage<User> page = new Page<>(pageNum, pageSize);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
if (!"".equals(username)) {
queryWrapper.like("username", username);
}
if (!"".equals(email)) {
queryWrapper.like("email", email);
}
if (!"".equals(address)) {
queryWrapper.like("address", address);
}
queryWrapper.orderByDesc("id");
return userService.page(page, queryWrapper);
}
}
- config配置mybatis-plus分页插件
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@MapperScan("com.el.springboot.mapper")
public class MybatisPlusConfig {
/**
* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
- service类
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.el.springboot.entity.User;
import com.el.springboot.mapper.UserMapper;
import org.springframework.stereotype.Service;
@Service
public class UserService extends ServiceImpl<UserMapper,User> {
public Boolean saveUser(User user) {
//if (user.getId() == null) {
// return save(user);
//}
//return updateById(user);
return saveOrUpdate(user); //saveOrUpdate是mybatis-plus自带的
}
}
- mapper类
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.el.springboot.entity.User;
//@Mapper //因为在配置类那边扫描了全部,所以这里可以注释起来
public interface UserMapper extends BaseMapper<User> {
}
- 使用postman测试
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!