MyBatis學(xué)習(xí)教程(三)-MyBatis配置優(yōu)化
一、連接數(shù)據(jù)庫(kù)的配置單獨(dú)放在一個(gè)properties文件中
之前,我們是直接將數(shù)據(jù)庫(kù)的連接配置信息寫(xiě)在了MyBatis的conf.xml文件中,如下:
<?xml version="." encoding="UTF-"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config .//EN" "http://mybatis.org/dtd/mybatis--config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置數(shù)據(jù)庫(kù)連接信息 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:/mybatis" /> <property name="username" value="root" /> <property name="password" value="XDP" /> </dataSource> </environment> </environments> </configuration>
其實(shí)我們完全可以將數(shù)據(jù)庫(kù)的連接配置信息寫(xiě)在一個(gè)properties文件中,然后在conf.xml文件中引用properties文件,具體做法如下:
1、在src目錄下新建一個(gè)db.properties文件,如下圖所示:

在db.properties文件編寫(xiě)連接數(shù)據(jù)庫(kù)需要使用到的數(shù)據(jù)庫(kù)驅(qū)動(dòng),連接URL地址,用戶(hù)名,密碼,如下:
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:/mybatis name=root password=XDP
2、在MyBatis的conf.xml文件中引用db.properties文件,如下:
<?xml version="." encoding="UTF-"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config .//EN" "http://mybatis.org/dtd/mybatis--config.dtd">
<configuration>
<!-- 引用db.properties配置文件 -->
<properties resource="db.properties"/>
<!--
development : 開(kāi)發(fā)模式
work : 工作模式
-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置數(shù)據(jù)庫(kù)連接信息 -->
<dataSource type="POOLED">
<!-- value屬性值引用db.properties配置文件中配置的值 -->
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${name}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
</configuration>
二、為實(shí)體類(lèi)定義別名,簡(jiǎn)化sql映射xml文件中的引用
之前,我們?cè)趕ql映射xml文件中的引用實(shí)體類(lèi)時(shí),需要寫(xiě)上實(shí)體類(lèi)的全類(lèi)名(包名+類(lèi)名),如下:
<!-- 創(chuàng)建用戶(hù)(Create) -->
<insert id="addUser" parameterType="me.gacl.domain.User">
insert into users(name,age) values(#{name},#{age})
</insert>
parameterType="me.gacl.domain.User"這里寫(xiě)的實(shí)體類(lèi)User的全類(lèi)名me.gacl.domain.User,每次都寫(xiě)這么一長(zhǎng)串內(nèi)容挺麻煩的,而我們希望能夠簡(jiǎn)寫(xiě)成下面的形式
<insert id="addUser2" parameterType="_User">
insert into users(name,age) values(#{name},#{age})
</insert>
parameterType="_User"這樣寫(xiě)就簡(jiǎn)單多了,為了達(dá)到這種效果,我們需要在conf.xml文件中為實(shí)體類(lèi)="me.gacl.domain.User"定義一個(gè)別名為"_User",具體做法如下:
在conf.xml文件中<configuration></configuration>標(biāo)簽中添加如下配置:
<typeAliases> <typeAlias type="me.gacl.domain.User" alias="_User"/> </typeAliases>
這樣就可以為me.gacl.domain.User類(lèi)定義了一個(gè)別名為_(kāi)User,以后_User就代表了me.gacl.domain.User類(lèi),這樣sql映射xml文件中的凡是需要引用me.gacl.domain.User類(lèi)的地方都可以使用_User來(lái)代替,這就達(dá)到了一個(gè)簡(jiǎn)化實(shí)體類(lèi)引用的目的。
除了可以使用<typeAlias type="me.gacl.domain.User" alias="_User"/>這種方式單獨(dú)為某一個(gè)實(shí)體類(lèi)設(shè)置別名之外,我們還可以使用如下的方式批量為某個(gè)包下的所有實(shí)體類(lèi)設(shè)置別名,如下:
<!-- 配置實(shí)體類(lèi)的別名,配置實(shí)體類(lèi)別名的目的是為了在引用實(shí)體類(lèi)時(shí)可以使用實(shí)體類(lèi)的別名來(lái)代替實(shí)體類(lèi),達(dá)到簡(jiǎn)寫(xiě)的目的 --> <typeAliases> <!-- 為實(shí)體類(lèi)me.gacl.domain.User配置一個(gè)別名_User --> <!-- <typeAlias type="me.gacl.domain.User" alias="_User"/> --> <!-- 為me.gacl.domain包下的所有實(shí)體類(lèi)配置別名,MyBatis默認(rèn)的設(shè)置別名的方式就是去除類(lèi)所在的包后的簡(jiǎn)單的類(lèi)名 比如me.gacl.domain.User這個(gè)實(shí)體類(lèi)的別名就會(huì)被設(shè)置成User --> <package name="me.gacl.domain"/> </typeAliases>
<package name="me.gacl.domain"/>就表示為這個(gè)包下面的所有實(shí)體類(lèi)設(shè)置別名。MyBatis默認(rèn)的設(shè)置別名的方式就是去除類(lèi)所在的包后的簡(jiǎn)單的類(lèi)名,比如me.gacl.domain.User這個(gè)實(shí)體類(lèi)的別名就會(huì)被設(shè)置成User。
以上所述是小編給大家介紹的MyBatis學(xué)習(xí)教程(三)-MyBatis配置優(yōu)化 ,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- MyBatis入門(mén)學(xué)習(xí)教程(一)-MyBatis快速入門(mén)
- 詳解MyBatis直接執(zhí)行SQL查詢(xún)及數(shù)據(jù)批量插入
- MyBatis學(xué)習(xí)筆記(二)之關(guān)聯(lián)關(guān)系
- MyBatis學(xué)習(xí)教程(二)—如何使用MyBatis對(duì)users表執(zhí)行CRUD操作
- MyBatis學(xué)習(xí)教程(四)-如何快速解決字段名與實(shí)體類(lèi)屬性名不相同的沖突問(wèn)題
- MyBatis學(xué)習(xí)教程(五)-實(shí)現(xiàn)關(guān)聯(lián)表查詢(xún)方法詳解
- MyBatis學(xué)習(xí)教程(六)-調(diào)用存儲(chǔ)過(guò)程
- MyBatis學(xué)習(xí)教程(七)-Mybatis緩存介紹
- MyBatis學(xué)習(xí)教程(八)-Mybatis3.x與Spring4.x整合圖文詳解
- Mybatis傳遞多個(gè)參數(shù)的解決辦法(三種)
相關(guān)文章
SpringBoot實(shí)現(xiàn)簡(jiǎn)單的登錄注冊(cè)的項(xiàng)目實(shí)戰(zhàn)
本文主要介紹了SpringBoot實(shí)現(xiàn)簡(jiǎn)單的登錄注冊(cè)的項(xiàng)目實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
springboot如何實(shí)現(xiàn)自動(dòng)裝配源碼解讀
這篇文章主要介紹了springboot如何實(shí)現(xiàn)自動(dòng)裝配源碼賞析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
mybatis+springboot發(fā)布postgresql數(shù)據(jù)的實(shí)現(xiàn)
本文主要介紹了mybatis+springboot發(fā)布postgresql數(shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問(wèn)題
這篇文章主要介紹了java中l(wèi)ambda(函數(shù)式編程)一行解決foreach循環(huán)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
關(guān)于String轉(zhuǎn)Json的幾種方式
這篇文章主要介紹了關(guān)于String轉(zhuǎn)Json的幾種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
使用logback實(shí)現(xiàn)按自己的需求打印日志到自定義的文件里
這篇文章主要介紹了使用logback實(shí)現(xiàn)按自己的需求打印日志到自定義的文件里,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08

