栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis-plus

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis-plus

mybatis-plus简单使用:
  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等待加载完成

      
          com.baomidou
          mybatis-plus-boot-starter    3.2.0
      
      
      
          mysql
          mysql-connector-java
      
      
      
          org.projectlombok    lombok
      
      
    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 {
    }
    
  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 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 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 map = new HashMap<>();
         map.put("name",1);
         map.put("sex","女");
         List stu_works = stuMapper.selectByMap(map);
         System.out.println("查询结果:"+stu_works);
     }
 
     //批量查询 selectBatchIds
     @Test
     public void testSelectBatchIds(){
         List 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 queryWrapper = new QueryWrapper<>();
         queryWrapper
                 .like("name","n")
                 .eq("sex","男")
                 .gt("class","class");
         List stu_works = stuMapper.selectList(queryWrapper);
         stu_works.forEach(System.out::println);
     }
 
     //查询全部
     @Test
     public void testSelectList2(){
         List stu_works = stuMapper.selectList(null);
         stu_works.forEach(System.out::println);
     }
 
     //条件查询:返回值是数量
     @Test
     public void testSelectList3(){
         QueryWrapper queryWrapper = new QueryWrapper<>();
         queryWrapper.like("name","J").eq("sex","女");
         Integer integer = stuMapper.selectCount(queryWrapper);
         System.out.println(integer);
     }
 
     //带条件的修改
     @Test
     public void testUpdate1(){
         UpdateWrapper 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_works = stuMapper.selectList(null);
         stu_works.forEach(System.out::println);
     }
 
     //带条件的删除
     @Test
     public void testDelete(){
         QueryWrapper 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 page = new Page<>(num, size);
        Page page1 = attrMapper.selectPage(page, null);
        System.out.println("页数"+page1.getPages());
        System.out.println("总数"+ page1.getTotal());
        return page;
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/322243.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号