1. 程式人生 > >對於通用mapper的一些簡單理解

對於通用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實現。那麼,就需要相關的註解來標明成員變數的一些屬性和類上的表名等內容。即@[email protected]@Table等等。裡面有一些小坑,比如如果你在Entity的成員變數上不加@Id註解去標明哪個是主鍵,那麼你在呼叫selectByPrimaryKey方法時,他會進行多個and,把你這個表每個欄位都聯合起來,作為聯合主鍵,並且每個列都要等於這個值。means會生成這樣的sql

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

3.那麼多介面,你可以選擇你去繼承哪個介面,從而定製自己的通用mapper。

public interface Mapper<T> extends
        BaseMapper<T>,
        ExampleMapper<T>,
        RowBoundsMapper<T>,
        Marker {}