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

全國(guó)咨詢/投訴熱線:400-618-4000

MyBatis的基本使用

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

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

  

二:配置文件詳解

  1.配置文件

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

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

  2.SqlSessionFactory作用:獲取SqlSession

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

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

  4.Executor

  執(zhí)行器,SqlSession通過(guò)調(diào)用它來(lái)完成具體的CRUD它是一個(gè)接口,提供了兩種實(shí)現(xiàn):緩存的實(shí)現(xiàn)、數(shù)據(jù)庫(kù)的實(shí)現(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 : 開(kāi)啟主鍵的回顯 , true & false

  keyColumn : 主鍵的列名

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

  2.update

  3.select

  4.delete

  7.parameterType 參數(shù)

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

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

  2.hashMap

  3.pojo包裝類

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

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

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

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

  ${}用法:

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

  #{}用法:

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

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

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

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

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

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

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

  注意:

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

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

  什么時(shí)候需要加@Param注解?什么時(shí)候不加?

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

  終極解決方案:都加。

  8.ResultMap 自定義映射

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

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

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



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

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

0 分享到:
和我們?cè)诰€交談!