基本介绍
mybatisplus,就是强化版的mybatis,可以简化很多的工作,比较基础的用法的就是对单表的crud,可以不用写sql语句,只需要dao层继承BaseMapper<实体类>,就可以引用各种crud的方法了。以下是简单例子
创建user表
创建maven项目
user类
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("user")
public class User {
@TableId(value = "id",type = IdType.ID_WORKER)
private Integer id;
@TableField(select = false)
private String name;
@TableField(value = "age")
private Integer age;
@TableField(exist = false)
private Integer addre;
@TableLogic(value = "0",delval = "1")
private Integer deleted;
@Version
private Integer version;
}
userdao类
package mybatisTest.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import mybatisTest.pojo.User;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserDao extends BaseMapper<User> {
}
mpConfig类
package mybatisTest.config;
import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class mpConfig {
@Bean
public PaginationInterceptor myInterceptor(){
PaginationInterceptor mybatisPlusInterceptor = new PaginationInterceptor();
//mpInteceptor.addInnerInteceptor(new PaginationInterceptor());
return mybatisPlusInterceptor;
}
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor(){
OptimisticLockerInterceptor optimisticLockerInterceptor = new OptimisticLockerInterceptor();
return optimisticLockerInterceptor;
}
}
mybatisPlusApplicationTest类
package mybatisTest;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import mybatisTest.dao.UserDao;
import mybatisTest.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RunWith(SpringRunner.class)
@SpringBootTest
public class mybatisPlusApplicationTest
{
@Resource
UserDao userDao;
@Test
public void testUserDao()
{
List<User> users = userDao.selectList(null);
System.out.println(users);
}
@Test
public void testUserDao1()
{
System.out.println("hello world");
}
@Test
public void save(){
User user = new User();
user.setId(4);
user.setName("joker");
user.setAge(22);
userDao.insert(user);
}
@Test
public void delete(){
int a = userDao.deleteById(4);
System.out.println(a);
}
@Test
public void update(){
User user = new User();
user.setId(1);
user.setAge(100);
int a = userDao.updateById(user);
}
@Test
public void select(){
User user = userDao.selectById(2);
System.out.println(user);
}
@Test
public void selectPage(){
IPage page = new Page(1,3);
userDao.selectPage(page,null);
System.out.println(page.getSize());
System.out.println(page.getPages());
System.out.println(page.getTotal());
System.out.println(page.getCurrent());
System.out.println(page.getRecords());
}
@Test
public void selectQuery(){
LambdaQueryWrapper<User> lambdaQueryChainWrapper = new LambdaQueryWrapper<User>();
lambdaQueryChainWrapper.eq(User::getId,1).or().eq(User::getId,2);
List<User> users = userDao.selectList(lambdaQueryChainWrapper);
System.out.println(users);
}
@Test
public void selectIfNull(){
User user = new User();
user.setAge(30);
user.setId(3);
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
lqw.lt(null!= user.getAge(),User::getAge,user.getAge());
lqw.eq(null!= user.getId(),User::getId,user.getId());
List<User> users = userDao.selectList(lqw);
System.out.println(users);
}
@Test
public void selectRelaction(){
QueryWrapper<User> qw = new QueryWrapper<User>();
qw.select("id","name");
List list = userDao.selectList(qw);
System.out.println(list);
}
@Test
public void selectCount(){
QueryWrapper<User> qw = new QueryWrapper<>();
qw.select("count(*) as count");
List<Map<String, Object>> maps = userDao.selectMaps(qw);
System.out.println(maps);
}
@Test
public void selectGroup(){
QueryWrapper<User> qw = new QueryWrapper<>();
qw.select("count(*) as count","age");
qw.groupBy("age");
List<Map<String, Object>> maps = userDao.selectMaps(qw);
System.out.println(maps);
}
@Test
public void selectBetween(){
LambdaQueryWrapper<User> qw = new LambdaQueryWrapper<>();
qw.between(User::getAge,20,30);
List<User> users = userDao.selectList(qw);
System.out.println(users);
}
@Test
public void SelectLike(){
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
lqw.like(User::getName,"m");
List<User> users = userDao.selectList(lqw);
System.out.println(users);
}
@Test
public void SelectLikeLeft(){
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
lqw.likeLeft(User::getName,"m");
List<User> users = userDao.selectList(lqw);
System.out.println(users);
}
@Test
public void SelectLikeRight(){
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
lqw.likeRight(User::getName,"m");
List<User> users = userDao.selectList(lqw);
System.out.println(users);
}
@Test
public void save2(){
User user = new User();
user.setName("jessica");
user.setAge(20);
userDao.insert(user);
}
@Test
public void selectList(){
List<Integer> ids = new ArrayList<>();
ids.add(3);
ids.add(4);
ids.add(5);
List<User> users = userDao.selectBatchIds(ids);
System.out.println(users);
}
@Test
public void deleteLogic(){
int i = userDao.deleteById(5);
List<User> users = userDao.selectList(null);
System.out.println(users);
}
@Test
public void updateLeGuanLock(){
User user = userDao.selectById(2);
user.setAge(32);
userDao.updateById(user);
}
}