專案總結之MyBatis Mapper傳參
阿新 • • 發佈:2018-11-28
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 傳遞引數的三種方式
-
多個引數的傳遞方式
形式如:
GoodMapper.java:
public Good selectGood(String id, String name);
GoodMapper.xml :
select * from good where id = #{0} and name=#{1}
注: #{0} 代表的是第一個引數,#{1} 代表的是第二個引數,以此類推
-
固定引數的傳遞方式
形式如:
GoodMapper.java:
public Good selectGood(@param("id")String id,@param("name")String name);
GoodMapper.xml :
3.物件封裝n個屬性的傳參select * from good where id = #{id} and name=#{name}