Mybatis-plus

核心功能1: 代码生成器

hibernate框架可以反向生成实体类,从而节省代码时间.
反向生成即通过读取数据库中的字段名和字段类型,在指定的代码包下生成entity/bean的java代码.

mybatis下本身是一个非常纯粹的ORM框架,没有提供反向映射的功能.

mybatis-plus的核心功能之一,即代码生成器(http://mp.baomidou.com/#/generate-code).
通过对代码生成器的编写,提供从entity到controller的一键生成.在前后端分离的场景下,基本够用.
通过自定义配置,还可以直接生成前端vm模板.

对于生成的service层和controller并没有实际意义,毕竟实际的业务逻辑还是要根据需求去写的.
生成的entity配合mybatis-plus和lomok食用风味更佳.


spring-boot整合

1.pom依赖

添加依赖:

```
<dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>最新版本号</version>
  </dependency>
```

需要干掉的依赖:

```
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>
<!-- pageHelper分页插件 若不使用mybatis-plus分页,可以先不替换-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.2</version>
</dependency>

```


 2.修改application.yml

干掉mybatis节点的配置.

添加mybatis-plus的配置节点.参考 http://mp.baomidou.com/#/spring-boot

添加配置文件 MybatisPlusConfig 参考 http://mp.baomidou.com/#/install
由于maven依赖版本不一致,可能有细微差别.

至此,springboot可以正常启动完毕.
之后需要修改dao层,使用mybatis-plus提供的函数,根据业务逻辑自行修改.

 

轻微踩坑:
整合完毕后报错sqlSessionFactory Bean Created Error.

spring整体框架使用IOC的核心思想.所以spring存在各种配置文件,来对bean之间的关系进行依赖注入.
自下而上从别是dataSource, sqlSessionFactory/TransactionManager, Dao...

springboot通过读取配置文件中的spring.databases.xxx属性的配置进行dataSource的生成.
mybatis集成springboot的依赖,即<artifactId>mybatis-spring-boot-starter</artifactId>中,
包含MybatisAutoConfiguration,在包含此以来下,sqlsession及相关Bean不需要配置.

引入Mybatis-plus后,需要重新配置.(http://mp.baomidou.com/#/install)

 

坑:

  1. 由于写getter/setter实在好麻烦,所以引入了lomok. 
    mybatis-plus样例代码中也使用了lomok的data注解.原本以为两者一起食用风味更加,然并卵.
    实体类很多都有isDeleted字段,来标记数据库中一份数据是否被逻辑删除.
    lomok为这些标记字段生成的setter/getter函数名为:setIsDeleted/getIsDeleted.个人觉得十分合理.
    然而,mybatis-plus自带的insert方法,对前缀为is,且为boolean类型的字段做了去前缀处理,即:mybatis-plus需要的getter函数为getDeleted.
    如果没有,直接GG.
    mybaits-plus官网给出的解决方案比较丧病:    jdbc:mysql://127.0.0.1:3306/mp?tinyInt1isBit=false (http://mp.baomidou.com) 实测后并没有什么卵用.
    现阶段的改进方案是: 1 明确给出mybatis-plus需要的get函数.   (smile)
    https://stackoverflow.com/questions/42619986/lombok-annotation-getter-for-boolean-field   将Boolean对象封装类型改为原生类型boolean。  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值