SpringBoot-集成通用mapper
SpringBoot-集成通用mapper
SpringBoot-集成通用mapper
我们在SpringBoot中整合了MyBatis,但是大量重复的增删改查还是很头疼的问题,MyBatis也给出了解决方案:通用Mapper。
Mapper的作用:自动生成增删改查的SQL语句 大大减化对单表的操作,不过多表操作还是要我们实现的。
-
首先我们将SpringBoot中的MyBatis启动器删除,加入通用Mapper的启动器(此启动器中已经整合了MyBatis需要的相关依赖)。
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
-
然后我们需要在Mapper接口中继承Mapper
类,其泛型需要指定表对应的Bean对象。(注意导包)
package cn.rayfoo.mapper;
import cn.rayfoo.pojo.Hero;
import tk.mybatis.mapper.common.Mapper;
public interface HeroMapper extends Mapper<Hero> {
}
3. 在Bean对象中加入@Table注解和Id注解,用于指定表名称以及主键如果主键是自增长需要用@KeySql指定,如果查询时要忽某个字段需要使用@Transient指定要忽略的字段。
package cn.ryafoo.core.bean;
import com.sun.javafx.beans.IDProperty;
import lombok.Data;
import tk.mybatis.mapper.annotation.KeySql;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
* @author 张瑞丰
* @description
* @date 2019/11/14
*/
@Data
@Table(name = "person")
public class Person {
@Id
@KeySql(useGeneratedKeys = true)
private Integer id;
private String name;
@Transient
private Integer age;
}
4. 在启动类上修改MapperScan的包名为通用Mapper的包
package cn.ryafoo.core;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;
@MapperScan("cn.ryafoo.core.mapper")
@SpringBootApplication
public class CoreApplication {
public static void main(String[] args) {
SpringApplication.run(CoreApplication.class, args);
}
}