教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

MyBatis的基本使用

更新時間:2018年12月13日14時49分 來源:傳智播客 瀏覽次數(shù):

一:MyBatis整體架構(gòu)

  

二:配置文件詳解

  1.配置文件

  全局配置文件:mybatis-config.xml作用:配置數(shù)據(jù)源,引入映射文件

  映射文件:XxMapper.xml 作用:配置sql語句、參數(shù)、結(jié)果集封裝類型等

  2.SqlSessionFactory作用:獲取SqlSession

  通過new SqlSessionFactoryBuilder().build(inputStream)來構(gòu)建,inputStream:讀取配置文件的IO流

  3.SqlSession作用:執(zhí)行CRUD操作

  4.Executor

  執(zhí)行器,SqlSession通過調(diào)用它來完成具體的CRUD它是一個接口,提供了兩種實現(xiàn):緩存的實現(xiàn)、數(shù)據(jù)庫的實現(xiàn)

  5.Mapped Statement

  在映射文件里面配置,包含3部分內(nèi)容:

  具體的sql,sql執(zhí)行所需的參數(shù)類型,sql執(zhí)行結(jié)果的封裝類型

  參數(shù)類型和結(jié)果集封裝類型包括3種:

  HashMap,基本數(shù)據(jù)類型,pojo

  6.xxxMapper.xml映射文件

  名稱空間必須改成UserMapper接口的全路徑,StatementId必須和接口方法名一致,結(jié)果集的封裝類型已經(jīng)和方法的返回類型一致

  7.mybatisconfig.xml配置文件

  講究嚴(yán)格的順序,具體順序遵循文檔的順序:

  

  

  

  8.settings參數(shù):

  

  9.類型別名

  1.typeAlias

  <typeAliases>

           <!-- 類型別名:type-pojo類的全路徑,alias-別名名稱(可隨便寫,推薦和類名一致) -->
           <typeAlias type="cn.itcast.mybatis.pojo.User" alias="user" />
      </typeAliases>

  2.package

  3.typeHandlers

  4.environments

  1.default

  2.build

  5.Mappers 映射

  1.resource

  2.file

  3.class

  4.package

  6.CRUD標(biāo)簽

  1.insert :

  useGeneratedKeys : 開啟主鍵的回顯 , true & false

  keyColumn : 主鍵的列名

  keyProperty : 主鍵對應(yīng)的屬性名

  2.update

  3.select

  4.delete

  7.parameterType 參數(shù)

  parameterType有三種類型的輸入?yún)?shù):

  1.基本數(shù)據(jù)類型

  2.hashMap

  3.pojo包裝類

  hashMap類型通過#{key}或者${key},復(fù)雜類型通過${key.屬性名}或者#{key.屬性名}

  接收參數(shù)兩種方式:

  1.#{} : 預(yù)編譯

  2.${} : 非預(yù)編譯 sql拼接,不能防止sql注入

  ${}用法:

  使用${} 去接收參數(shù)信息,在一個參數(shù)時,默認(rèn)情況下必須使用${value}獲取參數(shù)值,

  #{}用法:

  #{} 只是表示占位,與參數(shù)的名字無關(guān),如果只有一個參數(shù),可以使用任意參數(shù)名接收參數(shù)值,會自動對應(yīng)。

  推薦使用@Param注解指定參數(shù)名:

  #{參數(shù)名},${參數(shù)名}

  #{}接收多個參數(shù):

  1.默認(rèn)規(guī)則獲取參數(shù){0,1,param1,param2}

  2.使用@Param注解指定參數(shù)名

  如果沒指定參數(shù)名,用#{0},#{1}或者#{param1},#{param2}

  注意:

  1.單個參數(shù)時,#{}與參數(shù)名無關(guān)的。

  2.多個參數(shù)時,#{} ${}與參數(shù)名(@Param)有關(guān)。

  什么時候需要加@Param注解?什么時候不加?

  單個參數(shù)不加,多個參數(shù)加

  終極解決方案:都加。

  8.ResultMap 自定義映射

  type : 結(jié)果集的封裝類型 , id : 唯一標(biāo)識 , autoMapping : 開啟自動匹配,如果開啟了駝峰匹配,就以駝峰匹配形式

  id : 指定主鍵映射 ,不要省略,提高性能

  result : 其他非主鍵字段 , column : 表中的字段名 , property : 對應(yīng)實體類屬性名



作者:傳智播客JavaEE培訓(xùn)學(xué)院

首發(fā):http://java.itcast.cn

0 分享到:
和我們在線交談!