teach

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

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讲“,很干的干货!

 

相关文章: