mybatis框架我们都熟悉了,是用来操作数据库的属于ORM框架。mybatis-plus是什么框架,看名称和手机似的,带有plus一定是加强版,其官网是:MyBatis-Plus (baomidou.com)
开始mybatis-plus的实践吧。
这里,基于springboot集成mybatis-plus。先看下具体的版本,
springboot:2.3.3.RELEASE
mybatis-plus-boot-starter:3.5.0
mysql驱动:8.0.32
由于mybatis-plus是基于mybatis的,这里引入mybats-plus后就不必引入mybatis的依赖了。官网也给出了提醒,
引入依赖后,下面看mybatis-plu需要哪些配置文件。由于mybatis-plus是基于mybatis的,不会对其作任何改变,所以任何mybatis的配置都不需要作改变,包括数据源的配置及mapper-locations。application.yml
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8&autoReconnect=true&allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false username: root password: 123456 type: com.zaxxer.hikari.HikariDataSource mybatis: mapper-locations: classpath*:mapper/*.xml
也可以使用这个配置,
mybatis-plus: mapper-locations: classpath*:mapper/*.xml
都是可以的。另外,mybatis-plus还有很多配置,可以自行去探究。
mybatis-plus对单表CRUD提供了方便的API,已经默认了很多方法,主要体现在下面两个接口,
Service接口
Mapper接口
在单表的CRUD操作可以继承这两个接口,会少写很多代码。
看下mapper接口
package com.wcj.my.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.wcj.my.entity.User; /** * @date 2023/6/8 15:18 */ public interface UserMapper extends BaseMapper<User> { }
继承了BaseMapper接口,给了一个泛型User,User则是和数据库表一一对应的实体。
看下service接口,这里做了一些处理,所以没有集成IService接口。
package com.wcj.my.service; import com.wcj.my.dto.UserDto; import com.wcj.my.entity.User; import com.wcj.my.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * @date 2023/6/8 15:19 */ @Service public class UserService { @Autowired private UserMapper userMapper; public boolean saveUser(UserDto userDto){ User user=new User(); user.setUName(userDto.getName()); user.setUCode(userDto.getCode()); user.setUAge(userDto.getAge()); user.setUAddress(userDto.getAddress()); int num=userMapper.insert(user); if(num>0){ return true; } return false; } }
最后就是controller了,就是调用Service层的接口。IService和BaseMapper接口可以选择继承,也可以不继承,根据实际情况而定。
使用mybatis-plus的一个简单插入操作就是这些了,很简单,相对于mybatis来说,多了IService和BaseMapper接口,在单表操作时会减少很多代码的编写。
除了上面的这些功能,mybatis-plus还有其他功能,像主键生成策略、自定义ID、逻辑删除等,总体来说通过官网都可以实现,这里就不一一演示了。
mybatis-plus是对mybatis的一个增强,简化mybatis的操作,使开发更简便。
1、集成使用mybatis-plus-boot-starter依赖;
2、配置文件使用mybatis的即可,另外mybatis-plus也有自己的配置;
3、单表操作建议继承IService、BaseMapper接口;
最后,本文用到的源码均可关注下方公众号获得。另外,关注公众号回复”45“可获得一份极客时间的”mysql实战45讲“,很干的干货!