咱们应用 MyBatis 作为 ORM 框架,搭配 MyBatis-Plus 的加强性能,进步开发效率。
上面就来进行必要的一些配置。
目录的层级和命名在遵循最佳实际的根底上带有集体习惯带来的不同,这里能够灵便变通。
增加全局配置
默认状况简直不必配置其余内容,只须要加上 spring.datasource 的必要信息就好:
spring: datasource: url: jdbc:mysql://127.0.0.1:3306/wxbox?useUnicode=true&characterEncoding=UTF-8&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8 username: root password: driver-class-name: com.mysql.cj.jdbc.Driver
后续如果有其余须要定制化的配置咱们再加。
增加数据库
以用户表为例,咱们有如下表:
CREATE TABLE `wxbox`.`user` ( `id` int(0) NOT NULL AUTO_INCREMENT, `username` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `secret_key` char(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `expired_at` datetime(0) NULL DEFAULT NULL, `created_at` datetime(0) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, UNIQUE INDEX `username`(`username`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
创立实体类
在我的项目中创立 model 目录,新建 User.java 文件:
package com.foxescap.wxbox.model;import com.baomidou.mybatisplus.annotation.FieldFill;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableId;import lombok.Data;import java.time.LocalDateTime;/** * @author imxfly */@Datapublic class User { @TableId(type = IdType.AUTO) private Long id; private String username; private String secretKey; private LocalDateTime expiredAt; @TableField(fill = FieldFill.INSERT) private LocalDateTime createdAt;}
须要留神的是:
• 咱们应用 Lombok 依赖提供的 @Data 注解帮咱们主动生成实体类中所有字段的通用 Getter、Setter 以及类的 toString 和 Equals 和 HashCode 办法,举荐应用,无效地缩小样板代码的便携式。
• 咱们应用 MyBatis-Plus 依赖提供的 @TableId 注解指定以后数据表的自增字段,其中类型为 type = IdType.AUTO。
• 咱们应用 MyBatis-Plus 依赖提供的 @TableField 注解来帮咱们实现主动填充,依据填充规定 fill = FieldFill.INSERT 示意新增记录的时候主动将该字段填充进去(然而须要配置一下,否则依赖不晓得要填充什么值)
创立映射
在我的项目中创立 mapper 目录,新建 UserMapper.java 文件:
package com.foxescap.wxbox.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.foxescap.wxbox.model.User;/** * @author imxfly */public interface UserMapper extends BaseMapper<User> {}
通过继承 MyBatis-Plus 为咱们封装好的 BaseMapper 接口,即可应用。
当初咱们须要通知 MyBatis-Plus 我的项目的映射目录在哪,在我的项目中创立 config 目录,新建 MyBatisPlusConfig.java 文件:
package com.foxescap.wxbox.config;import org.mybatis.spring.annotation.MapperScan;import org.springframework.context.annotation.Configuration;/** * @author imxfly */@Configuration@MapperScan("com.foxescap.wxbox.mapper")public class MyBatisPlusConfig {}
在 @MapperScan 注解中配置映射的包门路即可。
参考链接
• mybatis-spring-boot-autoconfigure
• MyBatis-Plus Docs