優(yōu)化MyBatis配置文件中的配置詳解
本文研究的主要是優(yōu)化MyBatis配置文件中的配置的相關(guān)內(nèi)容,具體介紹如下。
一、連接數(shù)據(jù)庫的配置單獨(dú)放在一個properties文件中
之前,我們是直接將數(shù)據(jù)庫的連接配置信息寫在了MyBatis的conf.xml文件中,如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置數(shù)據(jù)庫連接信息 --> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mybatis" /> <property name="username" value="root" /> <property name="password" value="XDP" /> </dataSource> </environment> </environments> </configuration>
其實(shí)我們完全可以將數(shù)據(jù)庫的連接配置信息寫在一個properties文件中,然后在conf.xml文件中引用properties文件,具體做法如下:
1、在src目錄下新建一個db.properties文件,如下圖所示:
在db.properties文件編寫連接數(shù)據(jù)庫需要使用到的數(shù)據(jù)庫驅(qū)動,連接URL地址,用戶名,密碼,如下:
1 driver=com.mysql.jdbc.Driver
2 url=jdbc:mysql://localhost:3306/mybatis
3 name=root
4 password=XDP
2、在MyBatis的conf.xml文件中引用db.properties文件,如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 引用db.properties配置文件 --> <properties resource="db.properties"/> <!-- development : 開發(fā)模式 work : 工作模式 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 配置數(shù)據(jù)庫連接信息 --> <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í)體類定義別名,簡化sql映射xml文件中的引用
之前,我們在sql映射xml文件中的引用實(shí)體類時,需要寫上實(shí)體類的全類名(包名+類名),如下:
<!-- 創(chuàng)建用戶(Create) --> <insert id="addUser" parameterType="me.gacl.domain.User"> insert into users(name,age) values(#{name},#{age}) </insert>
parameterType="me.gacl.domain.User"這里寫的實(shí)體類User的全類名me.gacl.domain.User,每次都寫這么一長串內(nèi)容挺麻煩的,而我們希望能夠簡寫成下面的形式
<insert id="addUser2" parameterType="_User"> insert into users(name,age) values(#{name},#{age}) </insert>
parameterType="_User"這樣寫就簡單多了,為了達(dá)到這種效果,我們需要在conf.xml文件中為實(shí)體類="me.gacl.domain.User"定義一個別名為"_User",具體做法如下:
在conf.xml文件中<configuration></configuration>標(biāo)簽中添加如下配置:
<typeAliases> <typeAlias type="me.gacl.domain.User" alias="_User"/> </typeAliases>
這樣就可以為me.gacl.domain.User類定義了一個別名為_User,以后_User就代表了me.gacl.domain.User類,這樣sql映射xml文件中的凡是需要引用me.gacl.domain.User類的地方都可以使用_User來代替,這就達(dá)到了一個簡化實(shí)體類引用的目的。
除了可以使用<typeAlias type="me.gacl.domain.User" alias="_User"/>這種方式單獨(dú)為某一個實(shí)體類設(shè)置別名之外,我們還可以使用如下的方式批量為某個包下的所有實(shí)體類設(shè)置別名,如下:
<!-- 配置實(shí)體類的別名,配置實(shí)體類別名的目的是為了在引用實(shí)體類時可以使用實(shí)體類的別名來代替實(shí)體類,達(dá)到簡寫的目的 --> <typeAliases> <!-- 為實(shí)體類me.gacl.domain.User配置一個別名_User --> <!-- <typeAlias type="me.gacl.domain.User" alias="_User"/> --> <!-- 為me.gacl.domain包下的所有實(shí)體類配置別名,MyBatis默認(rèn)的設(shè)置別名的方式就是去除類所在的包后的簡單的類名 比如me.gacl.domain.User這個實(shí)體類的別名就會被設(shè)置成User --> <package name="me.gacl.domain"/> </typeAliases>
<package name="me.gacl.domain"/>就表示為這個包下面的所有實(shí)體類設(shè)置別名。MyBatis默認(rèn)的設(shè)置別名的方式就是去除類所在的包后的簡單的類名,比如me.gacl.domain.User這個實(shí)體類的別名就會被設(shè)置成User。
總結(jié)
以上就是本文關(guān)于優(yōu)化MyBatis配置文件中的配置詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
Java 數(shù)據(jù)庫時間返回前端顯示錯誤(差8個小時)的解決方法
本文主要介紹了Java 數(shù)據(jù)庫時間返回前端顯示錯誤(差8個小時)的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08java 實(shí)現(xiàn)多個list 合并成一個去掉重復(fù)的案例
這篇文章主要介紹了java 實(shí)現(xiàn)多個list 合并成一個去掉重復(fù)的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08Spring Kafka中@KafkaListener注解的參數(shù)與使用小結(jié)
@KafkaListener注解為開發(fā)者提供了一種聲明式的方式來定義消息監(jiān)聽器,本文主要介紹了Spring Kafka中@KafkaListener注解的參數(shù)與使用小結(jié),具有一定的參考價值,感興趣的可以了解一下2024-06-06java 中ThreadLocal本地線程和同步機(jī)制的比較
這篇文章主要介紹了java 中ThreadLocal本地線程和同步機(jī)制的比較的相關(guān)資料,需要的朋友可以參考下2017-03-03springboot創(chuàng)建的web項(xiàng)目整合Quartz框架的項(xiàng)目實(shí)踐
本文主要介紹了springboot創(chuàng)建的web項(xiàng)目整合Quartz框架的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06詳解Java的TCP/IP編程學(xué)習(xí)--基于定界符的成幀
這篇文章主要介紹了Java的TCP/IP編程學(xué)習(xí)--基于定界符的成幀,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04