对于通用mapper的一些简单理解

通用mapper可以自动生成sql语句用于mybatis框架使用。那么,通用mapper的一些基本概念,我们需要了解。

1.通用mapper是一个mybatis框架的插件。

2.通用mapper可以理解为JPA的一种实现。

3.既然是一种JPA的实现,那么,就有一些ORM的思想在其中。

4.通用mapper中有多种接口,每种接口中定义了相关方法,供使用者调用。

5.请区别JPA、spring data JPA、Hibernate这三者的区别,至于具体区别,可以通过百度查询三者的相关概念,进行区别。

下面对上述内容进行一些解释:

1.既然是插件,就算不上框架,它是基于mybatis对JPA的一种实现,是mybatis的一种封装。其实现原理相对简单,利用IOC就能做到(个人臆测,没时间看源码,欢迎斧正)。

2.既然是JPA实现。那么,就需要相关的注解来标明成员变量的一些属性和类上的表名等内容。即@Id@Column@Table等等。里面有一些小坑,比如如果你在Entity的成员变量上不加@Id注解去标明哪个是主键,那么你在调用selectByPrimaryKey方法时,他会进行多个and,把你这个表每个字段都联合起来,作为联合主键,并且每个列都要等于这个值。means会生成这样的sql

select * from table where columnA = '' and columnB = '' and ... ...;

3.那么多接口,你可以选择你去继承哪个接口,从而定制自己的通用mapper。

public interface Mapper extends
        BaseMapper,
        ExampleMapper,
        RowBoundsMapper,
        Marker {}

 

你可能感兴趣的:(Mybatis,通用Mapper)