核心配置(SqlMapConfig.xml)
核心配置(SqlMapConfig.xml)
1.properties這些是外部化的,可替代的屬性为牍,這些屬性也可以配置在典型的 Java 屬性配置文件中能颁,或者通過(guò) properties 元素的子元素來(lái)傳遞杂瘸。例如:
<properties resource="db.properties">
<property name="username" value="root1"/>
</properties>
db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/java16?characterEncoding=UTF-8&useUnicode=true
username=root
password=root
比如:外部資源文件里和內(nèi)部屬性里有相同屬性名的,讀取順序是先讀取properties內(nèi)部的伙菊,然后再讀外部的(外部資源文件里的屬性會(huì)覆蓋內(nèi)部的)
2.Settings高級(jí)配置败玉,緩存等。
3.typeAliases配置類型別名 給類起一個(gè)代號(hào)镜硕。
3.1可以單個(gè)配置
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
......
</typeAliases>
這種方式配置麻煩
3.2整包配置:配置之后运翼,包下的類引用時(shí)可以用類名首字母小寫或大寫。
<package name="com.neuedu.pojo"/>
3.3 對(duì)于普通的 Java 類型谦疾,有許多內(nèi)建的類型別名南蹂。它們都是大小寫不敏感的,由于重載的名字念恍,要注意原生類型的特殊處理。
別名 映射的類型
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string String
byte Byte
long Long
short Short
int Integer
integer Integer
double Double
float Float
boolean Boolean
date Date
decimal BigDecimal
bigdecimal BigDecimal
object Object
map Map
hashmap HashMap
list List
arraylist ArrayList
collection Collection
iterator Iterator
4.typeHandlers
無(wú)論是 MyBatis 在預(yù)處理語(yǔ)句中設(shè)置一個(gè)參數(shù)晚顷,還是從結(jié)果集中取出一個(gè)值時(shí)峰伙,類型處理器被用來(lái)將獲取的值以合適的方式轉(zhuǎn)換成 Java 類型。我們不用配置该默。
5.objectFactory
MyBatis 每次創(chuàng)建結(jié)果對(duì)象新的實(shí)例時(shí)瞳氓,它使用一個(gè) ObjectFactory 實(shí)例來(lái)完成。如果參數(shù)映射存在栓袖,默認(rèn)的 ObjectFactory 不比使用默認(rèn)構(gòu)造方法或帶參數(shù)的構(gòu)造方法實(shí)例化目標(biāo)類做的工作多匣摘。我們不用配置店诗。
6.plugins 配置插件
7.environments配置環(huán)境
environments下可以配置多個(gè)environment,也就是說(shuō)可以配置多套數(shù)據(jù)庫(kù)連接,現(xiàn)在啟動(dòng)哪套通過(guò)切換environments的default屬性。
<environments **default="development"**>
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
<environment id="deployment">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
其中的transactionManager
JDBC – 這個(gè)配置直接簡(jiǎn)單使用了 JDBC 的提交和回滾設(shè)置音榜。它依賴于從數(shù)據(jù)源得到的連接來(lái)管理事務(wù)范圍庞瘸。
MANAGED – 這個(gè)配置幾乎沒(méi)做什么。它從來(lái)不提交或回滾一個(gè)連接赠叼。而它會(huì)讓容器來(lái)管理事務(wù)的整個(gè)生命周期(比如 Spring 或 JEE 應(yīng)用服務(wù)器的上下文)擦囊。默認(rèn)情況下它會(huì)關(guān)閉連接。然而一些容器并不希望這樣嘴办,因此如果你需要從連接中停止它瞬场,將 closeConnection 屬性設(shè)置為 false。
我們選擇的jdbc
<transactionManager type="JDBC"/>
其中的dataSource有三種內(nèi)建的數(shù)據(jù)源類型(也就是 type=”???”)我們選擇的是POOLED:
UNPOOLED – 這個(gè)數(shù)據(jù)源的實(shí)現(xiàn)是每次被請(qǐng)求時(shí)簡(jiǎn)單打開和關(guān)閉連接涧郊。它有一點(diǎn)慢贯被。
POOLED – 這是 JDBC 連接對(duì)象的數(shù)據(jù)源連接池的實(shí)現(xiàn),用來(lái)避免創(chuàng)建新的連接實(shí)例時(shí)必要的初始連接和認(rèn)證時(shí)間妆艘。
JNDI – 這個(gè)數(shù)據(jù)源的實(shí)現(xiàn)是為了使用如 Spring 或應(yīng)用服務(wù)器這類的容器刃榨,容器可以集中或在外部配置數(shù)據(jù)源,然后放置一個(gè) JNDI 上下文的引用双仍。
driver – 這是 JDBC 驅(qū)動(dòng)的 Java 類的完全限定名(如果你的驅(qū)動(dòng)包含枢希,它也不是數(shù)據(jù)源類)。
url – 這是數(shù)據(jù)庫(kù)的 JDBC URL 地址朱沃。
username – 登錄數(shù)據(jù)庫(kù)的用戶名苞轿。
password – 登錄數(shù)據(jù)庫(kù)的密碼。
8.mappers實(shí)際用四種配置
第一種 指定xml完整路徑名
<mapper resource="sqlmap/User.xml"/>
第二種 指定xml文件在磁盤上的位置
<mapper url="E:\workspace\maven2\src\main\resources\sqlmap\User.xml"/>
第三種 class方式 屬于mapper代理方式的配置逗物,他需要滿足四個(gè)條件才可以用搬卒。(接口與mapper之間有四種強(qiáng)制的綁定關(guān)系)
<mapper class="com.neuedu.mapper.UserMappper"/>
第四種:整包掃描,跟第三種一樣,只有mapper代理方式可以用翎卓。
<package name="com.neuedu.proxydao"/>
第四種優(yōu)勢(shì)最明顯契邀。前三種需要單個(gè)文件配置,第四種是整包掃描(終級(jí))