Mybatis学习笔记——通用mapper
在使用mybatis-generator自动生成mapper代码的时候,对于基本的增删改查方法可以通过继承通用mapper的方式进行简化,参考:MyBatis 通用 Mapper 5. 高级用法
mapper接口,参考:Mapper 接口大全
1.依赖
<!-- mybatis --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.1.5</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>3.3.9</version> </dependency>
2.由于需要使用增删改查的方法,所以通用的MyMapper类为
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.MySqlMapper; public interface MyMapper<T> extends Mapper<T>, MySqlMapper<T> { }
3.对于具体mapper,只主要继承MyMapper即可,如
public interface UserMapper extends MyMapper<User> { }
对于UserMapper接口,需要添加 @Mapper 注解,或者使用 @MapperScan(basePackages = "com.example.demo.mapper") 的方式,为其生成动态代理类
代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。
动态代理,参考:什么是动态代理?
Java动态代理之InvocationHandler最简单的入门教程
静态代理: 在编译时就已经实现,编译完成后代理类是一个实际的class文件
动态代理: 在运行时动态生成的,即编译完成后没有实际的class文件,而是在运行时动态生成类字节码,并加载到JVM中
@Mapper注解 和 @MapperScan注解,参考:详解 @MapperScan 注解和 @Mapper 注解
本文只发表于博客园和tonglin0325的博客,作者:tonglin0325,转载请注明原文链接:https://www.cnblogs.com/tonglin0325/p/5267526.html