十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
繼續(xù)學(xué)習(xí)MyBatis核心配置文件章節(jié),不負年華
核心配置文件中的 標(biāo)簽詳解
environments標(biāo)簽 | 含義 | 屬性 | 拓展 |
---|---|---|---|
environments | 配置多個連接數(shù)據(jù)庫的環(huán)境 | default:設(shè)置默認使用的環(huán)境id | 無 |
environment | 配置多個連接數(shù)據(jù)庫的環(huán)境 | id:表示連接數(shù)據(jù)庫環(huán)境的唯一標(biāo)識,不能重復(fù) | 無 |
transactionManager | 設(shè)置事務(wù)管理方式 | type=JDBC/MANAGED | JDBC:表示當(dāng)前環(huán)境中,執(zhí)行SQL時,使用的是JDBC中原生的事務(wù)管理,事務(wù)的提交和回滾需要手動處理MANAGED:被管理,例如Spring |
dataSource | 配置數(shù)據(jù)源 | type=POOLED/UNPOOLED/JNDI :設(shè)置數(shù)據(jù)源的類型 | POOLED:表示使用數(shù)據(jù)庫連接池緩存數(shù)據(jù)庫連接UNPOOLED:表示不使用數(shù)據(jù)庫連接池JNDI:表示使用上下文中的數(shù)據(jù)庫連接 |
property | 數(shù)據(jù)庫連接相關(guān)配置 | name value | 無 |
實際開發(fā)中,習(xí)慣將數(shù)據(jù)源的配置信息單獨抽取成一個properties文件,然后引入
新建一個properties文件
為什么要用Resource Bundle來創(chuàng)建properties文件,這是個問題
看了官網(wǎng)的解釋,我有了那么一絲明悟
Resource Bundle 翻譯過來 資源包 或稱 資源束
2020.3版本時官網(wǎng)的釋義
用通俗的話來講,Resources目錄下用于存放配置文件,而部分配置文件可能文件特性相似(簡單理解就是后綴名相同),就整合到一個目錄下,方便找尋和管理(這是個人淺薄的理解)
后綴名默認為 properties
就算起個別名,也最好見名識義
報錯:元素類型為 “configuration” 的內(nèi)容必須匹配 “(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorFactory?,plugins?,environments?,databaseIdProvider?,mappers?)”
意思是configuration中的標(biāo)簽要按上述順序書寫
mappers別名常以包為單位,將包以下所有的結(jié)果類型設(shè)置默認的類型別名,即類名不區(qū)分大小寫
錯誤的建包示范
正確的建包示范
MyBatis獲取參數(shù)值的兩種方式 搭建一個mybatis工程以包為單位引入映射文件
要求:
1.mapper接口所在的包要和映射文件所在的包一致
2.mapper接口要和映射文件的名字一致
pom文件中導(dǎo)入依賴
pom中添加packaging標(biāo)簽
項目產(chǎn)生的構(gòu)件類型,例如jar、war、pom
項目打包類型:pom、jar、war
pom --------->父類型都為pom類型jar --------->內(nèi)部調(diào)用或者是作服務(wù)使用war --------->需要部署的項目
MyBatis獲取參數(shù)值的兩種方式:${}
和#{}
${}
本質(zhì)字符串拼接#{}
本質(zhì)占位符賦值${}
使用字符串拼接的方式拼接sql,若為字符串類型或日期類型的字段進行賦值時,需要手動加單引號
#{}
使用占位符賦值的方式拼接sql,此時為字符串類型或日期類型的字段進行賦值時,可以自動添加單引號
mapper接口方法的參數(shù)為單個的字面量類型
遇見一個問題,傳遞中文參數(shù)返回值為空(已解決)
在properties文件中的數(shù)據(jù)庫url后追加?useUnicode=true&characterEncoding=utf8
通過測試知道大括號中的參數(shù)名可以任意,但建議與參數(shù)名保持一致
小結(jié):可以通過${}
和#{}
以任意的名稱獲取參數(shù)值,但需要注意${}
單引號問題
mapper接口方法的參數(shù)為多個時
此時MyBatis會將這些參數(shù)放在一個map集合中,以兩種方式進行存儲
因此只需要通過#{}
或${}
以鍵的方式訪問值即可,但需要注意${}
的單引號問題
若mapper接口方法的參數(shù)有多個時,可以手動將這些參數(shù)放在一個map中存儲
只需通過#{}
或${}
以鍵的方式訪問值即可,但要注意${}
的單引號
mapper接口方法的參數(shù)是實體類類型的參數(shù)
只需通過${}
或#{}
以屬性方式訪問屬性值即可,但需要注意${}
的單引號問題
mapper接口方法參數(shù)有多個
命名參數(shù)
使用@Param注解命名參數(shù)
此時MyBatis會將這些參數(shù)放在一個map集合中,以兩種方式進行存儲
因此只需通過#{}
或${}
以鍵的方式訪問值即可,但要注意單引號問題
聽懂了一小小小部分,就是判斷存入的鍵是否是param1、param2,不是就以這種方式存儲(大概是這么個意思~)
分析不下去了,太難了,太燒腦了~
這章節(jié)學(xué)習(xí)的難度不算很大,也就有點小問題,但都解決了,也就是源碼分析暫時解決不了,所以要好好學(xué),好好看,到時候?qū)W成了,再回過頭來看
簡單回顧下
文章目錄你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧