MyBatis-Plus使用简介


前言

本文只做MyBatis-Plus简单使用总结,想进行高阶学习的小伙伴,建议直接官网学习。MyBaits-Plus官网。个人也做了将项目从MyBatis升级为MyBatis-Plus的工作,可以说不需要进行任何改动,目前还没有发现任何问题,大家可以放心食用。


一、MyBatis-Plus是什么?

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

二、使用步骤

1.引入库

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

2.增加配置

mybatis-plus:
  mapper-locations: classpath:mapper/**/*.xml
  type-aliases-package: cn.biosan.cloud.servicehealthadmin.dao

3.启动类增加包扫描

在这里插入图片描述

4.构建Service

package cn.biosan.cloud.servicehealthadmin.service.demo;

import cn.biosan.cloud.servicehealthadmin.entity.SysValue;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * All rights Reserved, Designed By www.biosan.cn
 *
 * @Description:
 * @author: 牛二强
 * @date: 2021/1/29 14:13
 */
public interface DemoService extends IService<SysValue> {
}

5.构建ServiceImpl

package cn.biosan.cloud.servicehealthadmin.service.demo.impl;

import cn.biosan.cloud.servicehealthadmin.dao.DemoMapper;
import cn.biosan.cloud.servicehealthadmin.entity.SysValue;
import cn.biosan.cloud.servicehealthadmin.service.demo.DemoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

/**
 * All rights Reserved, Designed By www.biosan.cn
 *  * @Description:
 * @author: 牛二强
 * @date: 2021/1/29 14:14
 */
@Service
public class DemoServiceImpl extends ServiceImpl<DemoMapper, SysValue> implements DemoService {
}

6.功能测试

  • 注入Service
    @Autowired
    private DemoService demoService;
  • 使用通用IService提供的方法
    @Test
    public void plusTest1(){
        QueryWrapper query = new QueryWrapper();
        query.eq("VALUE","AKIDwmRl18QdAWgolWwty3IPNBtTu9UDpKem");
        SysValue sysValue = demoService.getOne(query);
        System.out.println(JSON.toJSONString(sysValue));
    }

7.分页的使用

  • 使用自带的IPage

    增加配置类

package cn.biosan.cloud.servicehealthadmin.config;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * All rights Reserved, Designed By www.biosan.cn
 *
 * @Description:
 * @author: 牛二强
 * @date: 2021/1/28 14:55
 */
@Configuration
public class MybatisPlusConfig {
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
        // paginationInterceptor.setOverflow(false);
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        // paginationInterceptor.setLimit(500);
        // 开启 count 的 join 优化,只针对部分 left join
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize());
        return paginationInterceptor;
    }
}

demo测试

 @Test
    public void testIPage(){
        IPage<SysValue> page = new Page<SysValue>(1,1);
        QueryWrapper query = new QueryWrapper<>();
        query.eq("VALUE", "11592158");
        IPage iPage = demoService.page(page, query);

        System.out.println(JSON.toJSONString(iPage));
        //页数
        System.out.println("页数 :" + iPage.getCurrent());
        //分页大小
        System.out.println("分页大小 :" + iPage.getSize());
        //总条数
        System.out.println("总条数 :" + iPage.getTotal());
        //获取结果
        System.out.println(JSON.toJSONString(iPage.getRecords()));
    }
  • 使用插件PageHelper
    引入依赖
        <!--pageHelper-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
            <exclusions>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis-spring</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

增加配置

	pagehelper:
	  auto-dialect: mysql
	  reasonable: true
	  support-methods-arguments: true
	  page-size-zero: true
	  params: count=countSql

demo测试

    @Test
    public void testPageHelper(){
        PageHelper.startPage(1,1);
        QueryWrapper query = new QueryWrapper<>();
        query.eq("VALUE", "11592158");
        List<SysValue> list = demoService.list(query);
        System.out.println(JSON.toJSONString(list));
        PageInfo<SysValue> info = new PageInfo<>(list);
        //页数
        System.out.println("页数 :" + info.getPageNum());
        //分页大小
        System.out.println("分页大小 :" + info.getPageSize());
        //总条数
        System.out.println("总条数 :" + info.getTotal());
        //总页数
        System.out.println("总页数 :" + info.getPages());
        //获取结果
        System.out.println(JSON.toJSONString(info.getList()));
    }

据个人目前了解,mybatis-plus自带的IPage不能直接获取到总页数,但是这个值对于我们页面显示其实也是不可缺少的。对于这个问题PageHelper就直接帮我们处理好了,而且根据个人使用体验PageHelper也更加方便,因此比较推荐使用。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了Mybatis-Plus的使用,而Mybatis-Plus提供了大量能使我们快速便捷地处理数据的函数和方法。如有兴趣,可以自行到官网学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Mybatis-Plus是基于MyBatis的增强工具包,实现了在MyBatis中的增删改查等操作的一系列便捷功能,同时还提供了代码自动生成、性能优化等功能。 使用Mybatis-Plus可以大大简化MyBatis操作的代码量,同时提供了更多的查询方式,例如实现了类似JPA的Lambda表达式查询方式。开发者可以自由选择是否使用Mybatis-Plus中的功能,自由扩展和配置。 使用Mybatis-Plus可以通过引入依赖包并在应用程序中进行简单的配置,就可以轻松地实现复杂的SQL操作。MyBatis-Plus还提供了许多自定义注解,如@TableField、@TableName、@TableId等,使得实体类编写更加方便。 在使用Mybatis-Plus时,首先需要在pom.xml中添加Maven依赖,然后在Mybatis的配置文件中添加Mybatis-Plus的配置。之后,可以通过继承Mybatis-Plus中提供的基础Mapper接口,或通过注解方式实现,方便快捷地进行数据库操作。 总之,Mybatis-Plus提供了一种快速、可靠地开发方式,可以用更少的代码实现更多的功能。但是开发者要注意,使用Mybatis-Plus时需要了解相关的SQL语法和Mybatis的使用方式,才能真正发挥出它的优势。 ### 回答2: Mybatis-Plus是基于Mybatis二次开发的全功能增强库,简化了MyBatis的使用,提高了查询效率。它可以通过简单的配置来增强MyBatis的功能,包括:自动生成Mapper接口和XML文件、动态SQL、逻辑删除、分页插件、性能分析插件等。下面分5个方面简单介绍一下使用Mybatis-plus的注意点: 1. 配置信息 Mybatis-Plus的配置信息写在application.properties(或application.yaml)文件中。列如: mybatis-plus.mapper-locations=classpath:mapper/*Mapper.xml mybatis-plus.typeAliasesPackage=com.example.entity mybatis-plus.global-config.db-config.id-type=auto 详细配置可以查看Mybatis-Plus文档,也可以复制spring boot starter的模板工程。 2. 自动代码生成 Mybatis-Plus提供了自动生成代码的功能,即我们只需提供指定表名,就能自动生成对应的Mapper接口和XML文件。在IDEA中,可以通过Mybatis-Plus插件实现,也可以通过命令行执行。 3. 公共方法 MyBatis-Plus提供了一些实用的公共方法,例如:selectById、selectBatchIds、selectOne、insert、insertAndGetId、updateById、deleteById、deleteBatchIds等方法。可以方便我们操作数据库。 4. 分页插件 Mybatis-Plus提供了分页插件,可以轻松完成分页查询操作,支持多种数据库。只需在查询语句之前添加分页参数即可实现,如: Page<User> page = new Page<>(1, 10); QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().like(User::getName, "John"); this.userService.page(page, queryWrapper); 5. 高级查询 Mybatis-Plus提供了强大的Wrapper类,可以构建一些高级查询条件,例如:等值条件、模糊查询、多条件组合、子查询等。lambda表达式格式也很清晰,可以快速构建复杂的查询条件。 以上是我关于Mybatis-Plus使用一些注意点的介绍,Mybatis-Plus还拥有其他功能,但这里只是简单的介绍。Mybatis-Plus可以提高开发效率,减少代码量,减轻程序员的工作负担,大大提高了开发效率。如果你还没有使用Mybatis-Plus,建议你试一下,相信你会有很好的体验! ### 回答3: MyBatis-Plus 是基于 MyBatis 的快速开发框架,可以极大地提高开发效率。它不仅仅提供了基本的增删改查方法,还提供了各种查询功能和代码自动生成工具。接下来我将从以下几个方面介绍如何使用 MyBatis-Plus。 一、引入 MyBatis-Plus 首先,在 Maven 或 Gradle 中添加 MyBatis-Plus 的依赖: Maven: ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> ``` Gradle: ``` compile 'com.baomidou:mybatis-plus-boot-starter:${mybatis-plus.version}' ``` 其中,`${mybatis-plus.version}` 表示 MyBatis-Plus 的版本号。 二、配置 MyBatis-Plus 在 Spring Boot 中,可以在 `application.yml` 文件中配置 MyBatis-Plus: ``` mybatis-plus: mapper-locations: classpath:/mapper/*.xml typeAliasesPackage: com.example.entity ``` 其中,`mapper-locations` 表示 MyBatis 的 Mapper 文件所在的路径;`typeAliasesPackage` 表示实体类的包路径。 三、使用 MyBatis-Plus 封装的方法 接下来,就可以使用 MyBatis-Plus 封装的方法进行增删改查操作了。例如,查询所有记录: ```java List<User> userList = userMapper.selectList(null); ``` 其中,`userMapper` 是 MyBatis 自动生成的 Mapper 类,`null` 表示查询条件为空。 插入一条记录: ```java User user = new User(); user.setName("张三"); user.setAge(20); int result = userMapper.insert(user); ``` 更新一条记录: ```java User user = new User(); user.setId(1L); user.setName("李四"); int result = userMapper.updateById(user); ``` 删除一条记录: ```java int result = userMapper.deleteById(1L); ``` 四、使用 MyBatis-Plus 的查询功能 除了基本的增删改查方法,MyBatis-Plus 还提供了各种查询功能。例如,条件查询: ```java LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(User::getName, "张三"); List<User> userList = userMapper.selectList(queryWrapper); ``` 其中,`LambdaQueryWrapper` 是一个用于构建查询条件的类,`eq` 表示精确匹配条件,`User::getName` 表示查询实体类中的 `name` 属性。 分页查询: ```java Page<User> page = new Page<>(1, 10); LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(User::getName, "张三"); IPage<User> userPage = userMapper.selectPage(page, queryWrapper); ``` 其中,`Page` 是分页查询的类,`selectPage` 方法可实现分页查询;`IPage` 是返回的分页结果集。 五、使用 MyBatis-Plus 的代码生成器 MyBatis-Plus 还提供了一个代码生成器,可以根据数据库表结构自动生成实体类、Mapper 类和 Mapper.xml 文件。在 Spring Boot 项目中,我们可以在 `application.yml` 中进行配置: ``` mybatis-plus: global-config: db-config: auto-fill: true generator: dataSource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 username: root password: root strategy: naming: underline_to_camel include: t_.* package: parent: com.example entity: model mapper: mapper service: service service-impl: service.impl controller: controller ``` 其中,`dataSource` 表示数据库连接信息;`strategy` 表示生成代码的规则,可以根据实际情况进行设置;`package` 表示生成的实体类、Mapper 类等文件的包名。 配置完成后,执行以下命令即可生成代码: ``` Mybatis-Plus/code-generator/CodeGenerator.main() ``` 以上就是 MyBatis-Plus使用方法。总之,MyBatis-Plus 提供了许多快捷的开发工具,可以极大地提高开发效率,值得我们去了解和使用

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值