日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mybatis之加载mybatis-config.xml

發布時間:2023/12/20 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mybatis之加载mybatis-config.xml 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

概述

每個基于 MyBatis 的應用都是以一個 SqlSessionFactory 的實例為中心的。SqlSessionFactory 都是通過 SqlSessionFactoryBuilder 來創建的,SqlSessionFactoryBuilder需要通過Configuration對象來構建SqlSessionFactory。

一個Configuration對象可以使用Java程序生成,然而最常規的做法是從XML文件中加載,因此Mybatis的初始化就是通過SqlSessionFactoryBuilder 來加載一個 mybatis-config.xml、Mapper映射文件,這些配置信息會轉換成相應的對象并且最終會保存到Configuration對象中。

mybatis-config.xml的元素

Mybatis的XML文件中包含了多個元素,這些元素都是通過XMLConfigBuild類來進行解析的,并且轉換成對象存入Configuration對象中。

這些元素包含了

  • <properties/>
  • <settings/>
  • <typeAliases/>
  • <plugins/>
  • <objectFactory/>
  • <objectWrapperFactory/>
  • <reflectorFactory/>
  • <environments/>
  • <databaseIdProvider/>
  • <typeHandlers/>
  • <mappers/>

properties

定義一些列的屬性,XML文件后面的內容中可以引用這些屬性??梢詥为氃O置,也可以指定一個properties文件方便統一管理。例如:

<properties resource="cre.properties" />

屬性的優先級:

SqlSessionFactoryBuilder的Properties參數 >>>>>>>>?<properties/>標簽的外部屬性文件 >>>>>>>>?<properties/>標簽內部定義的屬性

PS:Mybatis中解析mybatis-config.xml會把占位符用屬性值替換掉,是XPathParser類實現的。

settings

用來設置Mybatis的Configuration對象的一些屬性的,可以設置一些自定義的用來覆蓋Configuration中的默認值。<settings/>的子標簽,用來設置相應的Configuration對象里面的屬性。

1、比如可以設置日志實現:

<!-- 指定Mybatis使用log4j --> <settings><setting name="logImpl" value="SLF4J"/> </settings>

PS:例子中的SLF4J是一個別名,對應的全限定類名為

typeAliasRegistry.registerAlias("SLF4J", Slf4jImpl.class);

2、比如設置自定義的VFS實現類,得是全限定名

<settings><setting name="vfsImpl" value="xx.xx.xx"/> </settings>

typeAliases

用來配置別名,為類全限定名指定一個別名,后面在mybatis的使用當中可以使用別名,方便我們編寫mapper文件,可以指定某個類,也可以指定一個包名。

plugins

用來添加自定義的攔截器到Configuration的攔截器鏈當中的,比如分頁插件:

<plugins><!-- com.github.pagehelper為PageHelper類所在包名 --><plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin> </plugins>

objectFactory、objectWrapperFactory、reflectorFactory

用來配置自定義的工廠類的,這三個工廠類,是在創建java pojo對象時候使用到的,一般使用mybatis默認的就可以。這三個標簽里可以定義屬性設置給自定義類。

environments

mybatis重要的原始,包含了兩個子元素,事物和數據源。我們可以為mybatis設置多個不同的environments設置,方便不同環境的切換

databaseIdProvider

配置數據庫廠商標識的生成接口,一旦配置這個接口,會設置Configuration對象的databaseId屬性。databaseId可以用來過濾mapper文件里配置了databaseId=""的語句。

typeHandlers

自定義javaType和jdbcType的類型轉換器,mybatis內置了很多個類型轉換器,基本已經夠用了

mappers

這個是重要的標簽了,用來配置mapper信息,mybatis會解析mapper文件。mybatis能夠將數據庫數據和java類型進行自動映射的關鍵文件

總結

mybatis初始化之后會生成 SqlSessionFactory ,用戶程序可以通過 SqlSessionFactory 來操作數據庫。使用 SqlSessionFactory 生成 SqlSession ,然后獲取指定的Mapper接口,有了接口之后就可以通過調用接口方法來操作數據庫了,那么mybatis是如何將接口的方法具體映射到對應的sql語句上來執行數據庫操作的呢??
那就要看mapper文件的解析了。
?

轉載于:https://my.oschina.net/cregu/blog/3006890

總結

以上是生活随笔為你收集整理的Mybatis之加载mybatis-config.xml的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。