数据层
1、使用lombok @Data快速定义实体类
package com.tj.domain;import lombok.Data;//实体类@Datapublic class Users { private Integer id; private Integer isuse; private String user_id; private String password; private String user_name;}
2、继承MP的BaseMapper的方法类,可以自定义其他的接口方法
package com.tj.dao;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.tj.domain.Users;import org.apache.ibatis.annotations.Mapper;import org.springframework.stereotype.Repository;@Mapper@Repositorypublic interface UsersDao extends BaseMapper<Users> { //除了继承,还可以自定义接口,名称不要和继承相同否则会覆盖}
业务层
1、继承MP的通用接口IService的方法
package com.tj.service;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.service.IService;import com.tj.domain.Users;public interface IUserService extends IService<Users> { IPage<Users> getPage(int pagenum, int pagesize, Users user);}
2、extends 通用实现类ServiceImpl implements IUserService实现类
package com.tj.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.tj.dao.UsersDao;import com.tj.domain.Users;import com.tj.service.IUserService;import org.apache.logging.log4j.util.Strings;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Servicepublic class UserServiceImpl extends ServiceImpl<UsersDao, Users> implements IUserService { @Autowired private UsersDao usersDao; //分页查询 @Override public IPage<Users> getPage(int pagenum, int pagesize, Users user) { //查询条件 LambdaQueryWrapper<Users> lqw = new LambdaQueryWrapper<>(); //user_id lqw.like(Strings.isNotEmpty(user.getUser_id()), Users::getUser_id, user.getUser_id()); //and id lqw.like(user.getId() != null, Users::getId, user.getId()); //and user_and lqw.like(Strings.isNotEmpty(user.getUser_name()), Users::getUser_name, user.getUser_name()); IPage page = new Page(pagenum, pagesize); usersDao.selectPage(page, lqw); return page; }}
3、测试业务层
package com.tj.dao.service;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.tj.domain.Users;import com.tj.service.IUserService;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@SpringBootTestpublic class UserServiceTest { @Autowired private IUserService userService; @Test void testGetById() { System.out.println(userService.getById(2)); } @Test void testSave() { //新增 Users user = new Users(); user.setId(10); user.setIsuse(0); user.setUser_id("ceshi"); user.setUser_name("测试"); user.setPassword("87976494d664ds46dfsd6f4sfsfsd"); userService.saveOrUpdate(user); } @Test void testModify() { //修改 Users user = new Users(); user.setId(10); user.setIsuse(0); user.setUser_id("xiug"); user.setUser_name("测试xiugai"); user.setPassword("87976494d664ds46dfsd6f4sfsfsd"); userService.updateById(user); } @Test void testDelete() { //删除 userService.removeById(10); } @Test void testGetPage() { //分页查询 IPage<Users> page = new Page<Users>(3, 5); userService.page(page,null); long current = page.getCurrent();//当前页 long pages = page.getPages();//总页数 long size = page.getSize();//每页显示几条 long total = page.getTotal();//总条数 List records = page.getRecords();// 分页对象记录列表 } @Test void testGetBy() { //按条件查询 LambdaQueryWrapper<Users> lqw = new LambdaQueryWrapper<>(); String name = "1"; String name2 = "2"; String name3 = "3"; lqw.like(name3 != null, Users::getUser_name, name3); lqw.and(e -> { e.like(name != null, Users::getUser_name, name).or(); e.like(name2 != null, Users::getUser_name, name2); }); //等于 WHERE (user_name LIKE ? AND (user_name LIKE ? OR user_name LIKE ?)) List<Users> userList = userService.list(lqw); }}