Mybatis-plus

Mybatis-plus

mybatis-plus简单使用:

  1. 创建数据库

    1. DROP TABLE IF EXISTS user;
      
      CREATE TABLE user
      (
      	id BIGINT(20) NOT NULL COMMENT '主键ID',
      	name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
      	age INT(11) NULL DEFAULT NULL COMMENT '年龄',
      	email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
      	PRIMARY KEY (id)
      );
      
      DELETE FROM user;
      
      INSERT INTO user (id, name, age, email) VALUES
      (1, 'Jone', 18, 'test1@baomidou.com'),
      (2, 'Jack', 20, 'test2@baomidou.com'),
      (3, 'Tom', 28, 'test3@baomidou.com'),
      (4, 'Sandy', 21, 'test4@baomidou.com'),
      (5, 'Billie', 24, 'test5@baomidou.com');
      

    导入完成后开始创建项目

  2. 创建项目

    1. 创建一个springboot项目

    2. 引入pom依赖,刷新maven等待加载完成

      <!--mybatis-plus依赖-->
      <dependency>
          <groupId>com.baomidou</groupId>
          <artifactId>mybatis-plus-boot-starter</artifactId>    <version>3.2.0</version>
      </dependency>
      <!--数据库依赖-->
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
      </dependency>
      <!--lombok-->
      <dependency>
          <groupId>org.projectlombok</groupId>    <artifactId>lombok</artifactId>
      </dependency>
      
    3. 配置数据库

      spring:
      	datasource:
          	url: jdbc:mysql://localhost:3306/test    
          	username: root
              password: 123456
              driver-class-name: com.mysql.cj.jdbc.Driver
      
    4. 创建实体类 com.example.demo.pojo.User.java

      注:实体类的名字要和查询的表名字要一致,如果不一致要注解

      • @TableName(“stu_work”) name 名字,表名注解

      • @TableId(value = “id”, type = IdType.AUTO) ID 自增,自增注解

      • @TableField(“class”) 别名,字段注解

      @Data
      public class User {
          private Long id;
          private String name;
          private Integer age;
       private String email;
      }
      
      
    
    
  3. 创建接口 com.example.demo.mapper.java

    BaseMapper基础映射器的意思

    user泛型是刚创建实体类的名字

    @Mapper
    public interface UserMapper extends BaseMapper<User> {
    }
    
  4. 配置MapperScan注解 com.example.mybatisplus.MybatisPlusApplication.java

    @SpringBootApplication
       @MapperScan("com.example.mybatisplus.dao")
       public class MybatisPlusApplication {
       
           public static void main(String[] args) {
               SpringApplication.run(MybatisPlusApplication.class, args);
           }
       
       }
    
  5. 测试

    创建测试类com.example.demo.SampleTest.java

    @SpringBootTest
    public class SampleTest {
        
        @Autowired
        private UserMapper userMapper;
    
        @Test
        void print(){
            //查询他的所有方法
            List<User> users = userMapper.selectList(null);
            //遍历
            users.forEach(System.out::println);
     	}
    }
    

注解

  1. @TableName(value=“”)表名注解

  2. @TableId id(value=“”,IdTable.AUTO)注解,
    1. Auto:数据库自增

  3. @TableField() 字段注解

  4. @Version() 乐观锁注解

  5. @EnumValue() 枚举类注解

  6. TableLogic(逻辑未删除值,逻辑删除值)字段逻辑处理注解(逻辑删除)

  7. @KeySequence()序列主键策略

  8. @Interceptorlgnore()插件主体

  9. @OrderBy(是否倒叙查询(默认:是),数字越小越靠前)

CRUD

//查询所有  selectList
    @Test
    public void testSelect() {
        List<stu_work> stus = stuMapper.selectList(null);
        stus.forEach(System.out::println);
    }

    //插入  insert
    @Test
    public void testInsert(){

        int insert = stuMapper.insert(new stu_work(null,"name", "sex", "work", "class"));
        System.out.println("insert:"+insert);

    }
    //修改  updateById  根据id修改
    @Test
    public void testUpdate(){
        //先查询
        stu_work stu_work = stuMapper.selectById(2);
        stu_work.setName("台女侠");
        //再修改
        int i = stuMapper.updateById(stu_work);
        System.out.println(i);
    }

    //查询 selectByMap  多条件查询
    @Test
    public void testSelectByMap() {
        Map<String, Object> map = new HashMap<>();
        map.put("name",1);
        map.put("sex","女");
        List<stu_work> stu_works = stuMapper.selectByMap(map);
        System.out.println("查询结果:"+stu_works);
    }

    //批量查询 selectBatchIds
    @Test
    public void testSelectBatchIds(){
        List<stu_work> stu_works = stuMapper.selectBatchIds(Arrays.asList(1, 2, 3));
        stu_works.forEach(System.out::println);
}

构造器

简介:

MyBatis-Plus 通过 EntityWrapper(简称 EW,MP 封装的一个查询条件构造器)或者 Condition(与 EW 类似) 来让用户自由的构建查询条件,简单便捷,没有额外的负担, 能够有效提高开发效率,它主要用于处理 sql 拼接,排序,实体参数查询等

注意:使用的是数据库字段,不是Java属性

使用:
 /*
  * 构造器
  * */
 
     //带条件的查询
     @Test
     public void testSelectList1(){
         QueryWrapper<stu_work> queryWrapper = new QueryWrapper<>();
         queryWrapper
                 .like("name","n")
                 .eq("sex","男")
                 .gt("class","class");
         List<stu_work> stu_works = stuMapper.selectList(queryWrapper);
         stu_works.forEach(System.out::println);
     }
 
     //查询全部
     @Test
     public void testSelectList2(){
         List<stu_work> stu_works = stuMapper.selectList(null);
         stu_works.forEach(System.out::println);
     }
 
     //条件查询:返回值是数量
     @Test
     public void testSelectList3(){
         QueryWrapper<stu_work> queryWrapper = new QueryWrapper<>();
         queryWrapper.like("name","J").eq("sex","女");
         Integer integer = stuMapper.selectCount(queryWrapper);
         System.out.println(integer);
     }
 
     //带条件的修改
     @Test
     public void testUpdate1(){
         UpdateWrapper<stu_work> updateWrapper = new UpdateWrapper<>();
         //查询条件
         updateWrapper.eq("id",2).like("sex","e");
         //创建实例
         stu_work stu_work = new stu_work();
         //修改名字
         stu_work.setA("kaka");
         //放入修改数据库的语句中
         //值1:修改内容
         //值2:查询条件
         int update = stuMapper.update(stu_work, updateWrapper);
         System.out.println(update);
         //查询全部内容
         List<stu_work> stu_works = stuMapper.selectList(null);
         stu_works.forEach(System.out::println);
     }
 
     //带条件的删除
     @Test
     public void testDelete(){
         QueryWrapper<stu_work> queryWrapper = new QueryWrapper<>();
         queryWrapper.like("name","name");
         int delete = stuMapper.delete(queryWrapper);
         System.out.println(delete);
}

分页查询

配置类添加

@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }

直接用他里面提供的方法分页

@GetMapping("/page/{page}/{size}")
    @ResponseBody
    public Object selectBookPage1(@PathVariable("page") int num,@PathVariable("size") int size){
        Page<Attr> page = new Page<>(num, size);
        Page<Attr> page1 = attrMapper.selectPage(page, null);
        System.out.println("页数"+page1.getPages());
        System.out.println("总数"+ page1.getTotal());
        return page;
    }

条件构造器

方法表示含义用法
gt>gt(“字段名”,值)
ge>=ge(“字段名”,值)
lt<lt(“字段名”,值)
le<=le(“字段名”,值)
isNull查询该字段为null值的数据isNull(“字段名”)
isNotNull查询该字段不为null值的数据isNotNull(“字段名”)
eq=eq(“字段1”,“字段2”)
ne!=ne(“字段1”,“字段2”)
between表示两个值之间数据between(“字段1”,“字段2”)
notbetween表示两个值之外数据notbetween(“字段1”,“字段2”)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lucky me.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值