数据层
1、使用lombok @Data快速定义实体类
package com.tj.domain;
import lombok.Data;
//实体类
@Data
public 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
@Repository
public 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;
@Service
public 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;
@SpringBootTest
public 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);
}
}