mybatis-plus(入门)

mybatis-plus(入门)

1. MP–mybatis-plus

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

愿景

我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

注意: mybatis-plus 它使用于单表的所有操作。 不能用于联表操作【mybatis联表操作】

2.创建spring-boot项目

在这里插入图片描述
以user表为准
在这里插入图片描述
1.引入pom依赖

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.5.1</version>
    </dependency>

2.配置数据源

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.password=(数库的密码)
spring.datasource.username=root
spring.datasource.url=jdbc:mysql://localhost:3306/[自己的数据库]?serverTimezone=Asia/Shanghai
#日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

3.创建实体类
在这里插入图片描述
4.创建dao层接口

public interface UserDao extends BaseMapper<User> {
}

:实体类
5.在主启动类扫描dao接口
在这里插入图片描述
6.测试

    @Autowired
    private UserDao userDao;
    // 根据用户ID查询信息
     @Test
    void TestSelectById(){
         User user = userDao.selectById(1);
         System.out.println(user);
  }

测试结果
在这里插入图片描述

CRUD操作

1.条件查询

@Test
    public void testSelect(){
         // 根据条件查询多条记录--如果传递的为null 则查询所有
      QueryWrapper<User> queryWrapper = new QueryWrapper<>();

      queryWrapper.isNotNull("name");
      List<User> users = userDao.selectList(queryWrapper);
      for (User user : users ){
          System.out.println(user);
      }
  }

结果:在这里插入图片描述
1.1 但条件查询

@Test
    public void testSe(){
         // 单条件查询
      QueryWrapper<User> queryWrapper = new QueryWrapper<>();
      queryWrapper.eq("name","Jone");
      User user = userDao.selectOne(queryWrapper);
      System.out.println(user);

  }

结果:
1.2:分页查询
配置分页查询插件

@Configuration
public class MybatisPlusConfig {
    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }

}
 @Test
    public void testSe(){
      /**
       * P page,分页对象 current:当前页面 size:每页的条数
       * @Param("ew") wrapper<T> queryWrapper:条件对象
       */
      Page<User> page = new Page<>(2, 3);
      Page<User> userPage = userDao.selectPage(page, null);
      System.out.println("当前页的记录:"+userPage.getRecords());
      System.out.println("总条数:"+userPage.getTotal());
      System.out.println("总页数:"+userPage.getPages());
  }

结果:
在这里插入图片描述

2.添加

@Test
    public void testInsert(){
      User user = new User("小王", 18, "123456@qq.com");
      userDao.insert(user);
  }

结果:
在这里插入图片描述

3:修改

3.1 :分局id修改
@Test
    public void update(){
         // 根据id修改
      User user = new User(1, "小刘", 22, "123456@qq.com");
      userDao.updateById(user);
  }

结果:在这里插入图片描述
3.2:根据条件修改

 @Test
    public void update(){
     // 根据条件修改
      User user = new User(1, "小花", 22, "123456@qq.com");
      UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
      updateWrapper.eq("name","小李");
      userDao.update(user,updateWrapper);
  }

结果:在这里插入图片描述

4: 删除

4.1:根据ID删除

 @Test
    public void deleteUser(){
     int i = userDao.deleteById(1);
 }

结果:在这里插入图片描述
4.2 : 根据主键批量删除

 @Test
    public void deleteUser(){
     ArrayList<Object> ids = new ArrayList<>();
        ids.add(2);
        ids.add(3);
     int i = userDao.deleteBatchIds(ids);
     System.out.println(i);
 }

结果:
在这里插入图片描述4.3 : 根据条件删除

 @Test
    public void deleteUser(){
   // MP  把条件封装成一个wrapper条件抽象类.---UpdateWrapper QueryWrapper LambdaUpdateWrapper
     UpdateWrapper<User> wrapper = new UpdateWrapper<>();
     wrapper.like("name","小王");
     wrapper.or();
     wrapper.ge("age",18);
     userDao.delete(wrapper);
 }

结果:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值