1. 程式人生 > >專案總結之MyBatis Mapper傳參

專案總結之MyBatis Mapper傳參

Mapper類本質是使用了動態代理
什麼是Mybatis?

官話來說: MyBatis 是支援定製化 SQL、
儲存過程以及高階對映的優秀的持久層框架。
MyBatis 避免了幾乎所有的 JDBC 程式碼和手工設定引數以及抽取結果集。
MyBatis 使用簡單的 XML 或註解來配置和對映基本體,
將介面和 Java 的 POJOs(Plain Old Java Objects,普通的 Java物件)對映成資料庫中的記錄。

Mybatis的原理

Mybatis實現了DAO介面與xml對映檔案的繫結,
自動為我們生成介面的具體實現,使用起來變得更加省事和方便。 

Mybatis執行流程
在這裡插入圖片描述


執行原理
MyBatis應用程式根據XML配置檔案建立SqlSessionFactory,SqlSessionFactory在根據配置,配置來源於兩個地方,一處是配置檔案,一處是Java程式碼的註解,獲取一個SqlSession。SqlSession包含了執行sql所需要的所有方法,可以通過SqlSession例項直接執行對映的sql語句,完成對資料的增刪改查和事務提交等,用完之後關閉SqlSession。

設定別名

它的作用是讓Mapper.xml中的引數找到對應類,如下面parameterType=“TestTb”>,如果沒有配置別名,則要改為parameterType=“cn.itcast.core.bean.TestTb”>,

駝峰命名

<settings>
    <!-- 開啟駝峰,開啟後,只要資料庫欄位和物件屬性名字母相同,無論中間加多少下劃線都可以識別 (在返回的結果集中)-->
    <setting name="mapUnderscoreToCamelCase" value="true" />
</settings>

mybatis 傳遞引數的三種方式

  1. 多個引數的傳遞方式

    形式如:

    GoodMapper.java:

    public Good selectGood(String id, String name);

    GoodMapper.xml :

        select * from good where id = #{0} and name=#{1}
    

注: #{0} 代表的是第一個引數,#{1} 代表的是第二個引數,以此類推

  1. 固定引數的傳遞方式

    形式如:

    GoodMapper.java:

    public Good selectGood(@param("id")String id,@param("name")String name);
    

    GoodMapper.xml :

       select * from good where id = #{id} and name=#{name}
    
    3.物件封裝n個屬性的傳參