springboot快速集成mybatis-plus

简介
Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus官网。那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于JPA。

springBoot快速集成mybatis-plus
一、pom文件引入mybatis-plus依赖

 <dependencies>
        <!--web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.25</version>
        </dependency>
        <!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!---test-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

注: 这里最主要的是mybatis-plus-boot-starter依赖,其他依赖都是基本的

二、基础配置 application.properties

#mysql数据库
spring.datasource.url= jdbc:mysql://127.0.0.1:3306/springbootdemo?characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8
spring.datasource.username= root
spring.datasource.password= 111111
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#mybatis
#开启驼峰
mybatis.configuration.map-underscore-to-camel-case=true
#打印日志
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

#mybatis-plus配置
mybatis-plus.mapper-locations=classpath*:/mappers/*.xml
#主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
mybatis-plus.global-config.id-type=0
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
mybatis-plus.global-config.field-strategy= 1
#驼峰下划线转换
mybatis-plus.global-config.db-column-underline=true

三、MybatisPlusConfig

/**
 * MybatisPlus配置类
 */
@EnableTransactionManagement
@Configuration
@MapperScan(basePackages = "com.example.demo.mapper")
public class MybatisPlusConfig {

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

四、测试

  • 实体类 主键使用@TableId(value = "id",type = IdType.AUTO)指定类型
    @TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的。

    @Data
    public class SysUser implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
    * 主键
    /
    @TableId(value = “id”,type = IdType.AUTO)
    private Integer id;
    /
    *
    * 用户名
    /
    private String username;
    /
    *
    * 密码
    /
    private String password;
    /
    *
    * 电话
    /
    private String phone;
    /
    *
    * 邮箱
    /
    private String email;
    /
    *
    * 创建时间
    /
    private Date createDate;
    /
    *
    * 更新时间
    /
    private Date updateDate;
    /
    *
    * sys_user
    */
    }

  • 新建SysUserMapper继承 BaseMapper

    public interface SysUserMapper extends BaseMapper {
    }

  • 测试

    @Autowired
    private SysUserMapper sysUserMapper;

    /**
     * 插入
     */
    @Test
    public void insert() {
        SysUser sysUser=new SysUser();
        sysUser.setPhone("18787878787");
        sysUser.setPassword("123456");
        sysUser.setUsername("root");
        sysUser.setCreateDate(new Date());
        sysUser.setUpdateDate(new Date());
        sysUserMapper.insert(sysUser);
    }
    
    /**
     * 分页查询
     */
    @Test
    public void selectByPage() {
        Page<SysUser> page=new Page(1,1);
        IPage p= sysUserMapper.selectPage(page,new QueryWrapper<SysUser>().eq("password","123456"));
        System.out.println(p.getRecords());
    }
    
  • 分页一般使用

    List getCallLogList(ApiLogDTO dto, Page page); mapper
    IPage getCallLogList(ApiLogDTO dto); IService
    serviceImpl
    @Override
    public IPage getCallLogList(ApiLogDTO dto) {
    Page page=new Page(dto.getCurrent(),dto.getSize());
    Listlist= apiLogMapper.getCallLogList(dto,page);
    page.setRecords(list);
    return page;
    }
    controller
    @PostMapping(“/call/log”)
    @ApiOperation(“api调用日志列表”)
    public IPage callLog(@ModelAttribute ApiLogDTO dto){
    return sysService.getCallLogList(dto);
    }

附上目录结构
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值