SpringBoot2.0 整合Mybatis Mapper接口继承
通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及Example 相关的单表操作。那么,如何在springboot中使用呢?
第一步:添加pom依赖。
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
版本号可以根据自己的项目情况进行选择。我这里使用spring-boot 2.0.0.
第二步:配置数据库连接。
spring.datasource.url=jdbc:mysql://数据库ip:port/数据库名?characterEncoding=UTF-8
spring.datasource.username=用户名
spring.datasource.password=密码
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
第三步:添加mapper接口类。
@Mapper
public interface ScheduleInfoMapper extends BaseMapper<ScheduleEntity>{
}
@Mapper 注解,当应用启动时,自动扫描进行bean生成。
BaseMapper为通用mapper提供的接口,包含基本的单表增删改查。源码如下:
@RegisterMapper
public interface BaseMapper<T> extends BaseSelectMapper<T>, BaseInsertMapper<T>, BaseUpdateMapper<T>, BaseDeleteMapper<T> {
}
第四步:添加表结构对应的实体类。
@Table(name="schedule_info")
public class ScheduleEntity {
@Id
@GeneratedValue(generator = "JDBC")
private Long id;
@Column(name = "user_id")
private Long userId;
private String title;
private String content;
private String location;
@Column(name="start_time")
private Long startTime;
@Column(name="end_time")
private Long endTime;
@Column(name="count_down")
private String countDown;
@Column(name = "is_delete")
private Integer isDelete;
@Column(name="create_time")
private Long createTime;
@Column(name="update_time")
private Long updateTime;
}
@GeneratedValue,注解指明主键的生成方式。generator = “JDBC” 等价于AUTO,但自增只能使用generator = “JDBC”,否则会报错。
@Table指明表名称。
@Column指明表列与实体字段的对应关系
GItHub示例项目:https://github.com/guojixiang/SpringBoot 项目名:schedule。