Spring使用Mybatis-plus

124 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

Mybatis-plus是Mybatis的增强版 使用它会简化开发 而具体的使用如下

首先是在pom文件里导入Mybatis-plus依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>${mybatis.plus.version}</version>
</dependency>

然后在yml里对项目进行配置

这里有几个点要说一下

1.typeAliasesPackage 这是实体类扫描 如果有多个包需要用逗号分隔

2.id-type:auto 这是设置主键自增的意思

3.field-strategy:字段判断策略 有三个值 1.IGNORED:"忽略判断",2.NOT_NULL:"非 NULL 判断",3.NOT_EMPTY:"非空判断"

mybatis-plus:
  mapper-locations: classpath:mappers/*.xml
  typeAliasesPackage: com.zl.orm.mybatis.plus.entity
  global-config:
    db-config:
      id-type: auto
      field-strategy: not_empty
      table-underline: true
      db-type: mysql

    refresh: true
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: true

然后开始写实体类

其中有几个点我说一下

1.@TableName("orm_user") 与数据库里的表做一个映射

  1. @TableField(fill = INSERT)通过注解配置自动填充
@TableName("orm_user")
public class User implements Serializable {
    private static final long serialVersionUID = -18784543L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 用户名
     */
    private String name;

    /**
     * 加密后的密码
     */
    private String password;

    /**
     * 加密使用的盐
     */
    private String salt;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 手机号码
     */
    private String phoneNumber;

    /**
     * 状态,-1:逻辑删除,0:禁用,1:启用
     */
    private Integer status;

    /**
     * 创建时间
     */
    @TableField(fill = INSERT)
    private Date createTime;

    /**
     * 上次登录时间
     */
    private Date lastLoginTime;

    /**
     * 上次更新时间
     */
    @TableField(fill = INSERT_UPDATE)
    private Date lastUpdateTime;
}

然后写mapper类

mapper类继承了Mybatis-plus的baseMapper

public interface UserMapper extends BaseMapper<User> {
}

然后写service接口类

public interface UserService extends IService<User>{}

最后写service接口实现类

@Service
class UserServiceIml extends ServiceImpl<UserMapper,User> implements UserService{

}

然后就可以在controller里使用了

直接创建一个service对象

@Autowired
UserService userService;

然后调用对象里面继承了IService里面的模板方法来获取你想要的数据

public User getbyId(@PathVariable("id") int id){
    User user = userService.getById(id);
    return user;
}

如果你还想更简单的话 就直接创建实体类就好了

List<Role> roles = new Role().selectAll();

通过实体类来获取数据

这样就完成了一个mybatis-plus的小demo 这样子看 mybatis-plus 简化了许多我们应该写的代码 但是也有一点点小的缺点 比如项目更新要是快的 未来项目可能不兼容