谷粒学苑项目第一天-MybatisPlus基础

1.导入相关依赖

复制代码
 1 <dependencies>
 2     <dependency>
 3         <groupId>org.springframework.boot</groupId>
 4         <artifactId>spring-boot-starter</artifactId>
 5     </dependency>
 6 
 7     <dependency>
 8         <groupId>org.springframework.boot</groupId>
 9         <artifactId>spring-boot-starter-test</artifactId>
10         <scope>test</scope>
11         <exclusions>
12             <exclusion>
13                 <groupId>org.junit.vintage</groupId>
14                 <artifactId>junit-vintage-engine</artifactId>
15             </exclusion>
16         </exclusions>
17     </dependency>
18 
19     <!--mybatis-plus-->
20     <dependency>
21         <groupId>com.baomidou</groupId>
22         <artifactId>mybatis-plus-boot-starter</artifactId>
23         <version>3.0.5</version>
24     </dependency>
25 
26     <!--mysql-->
27     <dependency>
28         <groupId>mysql</groupId>
29         <artifactId>mysql-connector-java</artifactId>
30     </dependency>
31 
32     <!--lombok用来简化实体类-->
33     <dependency>
34         <groupId>org.projectlombok</groupId>
35         <artifactId>lombok</artifactId>
36     </dependency>
37 </dependencies>
复制代码

  再到主启动类添加@MapperScan("com.atguigu.mybatisplus.mapper")包扫描,因为mapper接口都没有实现类

2.简单的增删改查

  第一步:自动注入相应的Mapper对象

    @Autowired
    private UserMapper userMapper;

  第二步:

    2.1 插入操作

    User user = new User(“猪猪”,“18”);

    userMapper.insert(user);

    2.2查询操作

      2.2.1根据id查询记录

      User user = userMapper.selectById(1L);

      2.2.2 通过多个id批量查询

    3. 简单条件查询

    HashMap<String, Object> map = new HashMap<>();
    map.put("name", "Helen");
    map.put("age", 18);
    List<User> users = userMapper.selectByMap(map);

    4.分页操作

     首先创建配置类MyConfig,再其中加入以下代码

/**
 * 分页插件
 */
@Bean
public PaginationInterceptor paginationInterceptor() {
    return new PaginationInterceptor();
}

      测试

复制代码
@Test
public void testSelectPage() {

    Page<User> page = new Page<>(1,5);
    userMapper.selectPage(page, null);查询第一页的五个数据

    page.getRecords().forEach(System.out::println);
    System.out.println(page.getCurrent());//当前页码
    System.out.println(page.getPages());//总页码
    System.out.println(page.getSize());//页码大小
    System.out.println(page.getTotal());//查询得到数据总数
    System.out.println(page.hasNext());//是否有下一页
    System.out.println(page.hasPrevious());//是否有上一页
}
复制代码

  5.删除操作

   userMapper.deleteById(8L);//通过ID单个删除

   int result = userMapper.deleteBatchIds(Arrays.asList(8, 9, 10));//通过ID多个删除

  其中还可以逻辑删除,首先需要再表示数据是否删除的字段加上

  @TableField(fill = FieldFill.INSERT)

  @TableLogic 

  再application.properties 加入配置

mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0

 

  最后再MyConfig文件中加入

@Bean
public ISqlInjector sqlInjector() {
    return new LogicSqlInjector();
}

  6.开发环境设置

  在application.properties文件中设置

#环境设置:dev、test、prod
spring.profiles.active=dev

  然后再到MyConfig配置文件中配置

  

复制代码
/**
 * SQL 执行性能分析插件
 * 开发环境使用,线上不推荐。 maxTime 指的是 sql 最大执行时长
 */
@Bean
@Profile({"dev","test"})// 设置 dev test 环境开启
public PerformanceInterceptor performanceInterceptor() {
    PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
    performanceInterceptor.setMaxTime(100);//ms,超过此处设置的ms则sql不执行
    performanceInterceptor.setFormat(true);
    return performanceInterceptor;
}
复制代码

  7.条件构造器

  

复制代码
 @Test
    // mybatisPlus中复杂的条件查询
    public void WrapperTests(){
        // 创建QuerryWrapper对象
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        // 通过QueryWrapper设置条件
        //1、ge(大于)、gt(大于等于)、le(小于)、lt(小于等于)、
        // 1.1查询age大于30的
        //queryWrapper.ge("age",30);

        //2、eq(等于), ne(不等于)
        //queryWrapper.eq("name","吴俊杰");
        //queryWrapper.ne("name","吴俊杰");

        //3.between
        //3.1 年龄在20-30
        //queryWrapper.between("age",20,30);

        //4.like
        //queryWrapper.like("name","H");

        //5.orderByDesc(升序) orderByAsc(降序)
        //queryWrapper.orderByAsc("id");

        //6.last(在后面拼接sql语句)
        //queryWrapper.last("limit 1");

        //7. 指定要查询的列
        queryWrapper.select("name","age");
        List<User> users = userMapper.selectList(queryWrapper);
        for (User user : users) {
            System.out.println(user);
        }
    }
复制代码

 

posted @   –WuJunJie–  阅读(130)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示