1.記一個(gè)坑:mybatis的xml mapper文件放在源碼目錄時(shí)會(huì)提示無(wú)法找到窄做,原因是使用maven構(gòu)建時(shí)强饮,會(huì)自動(dòng)忽略掉其他的資源文件枣购,不會(huì)將其打包到最終的文件中剥汤,解決辦法是在pom文件中加入以下代碼
src/main/java
**/*.xml
SqlSessionFactory
每個(gè)基于 MyBatis 的應(yīng)用都是以一個(gè) SqlSessionFactory 的實(shí)例為中心的。SqlSessionFactory 的實(shí)例可以通過(guò) SqlSessionFactoryBuilder 獲得允睹。而 SqlSessionFactoryBuilder 則可以從 XML 配置文件或一個(gè)預(yù)先定制的 Configuration 的實(shí)例構(gòu)建出 SqlSessionFactory 的實(shí)例运准。
mybatisSpring的封裝:SqlSessionFactoryBean 默認(rèn)通過(guò)讀取Xml文件進(jìn)行封裝,并且提供了setDataSource缭受,setTypeAlias等方法設(shè)置SqlSessionFactoryBean
SqlSessionFactoryBean讀取配置流程:
1.讀取類變量中的configuration 變量
2.configuration沒(méi)有配置胁澳,并且配置了configLocation,則讀取xml文件
3.如果 2.3都沒(méi)有配置則使用默認(rèn)配置
讀取配置完畢后贯涎,再加載代碼中設(shè)置的以下配置
1.配置ObjectFactory 對(duì)象工廠听哭,mybatis 在創(chuàng)建 數(shù)據(jù)對(duì)象時(shí)調(diào)用工廠方法,默認(rèn)使用DefaultObjectFactory對(duì)象,主要是通過(guò)反射新建對(duì)象陆盘,可以通過(guò)繼承該對(duì)象對(duì)其進(jìn)行擴(kuò)展
2.配置WrapObjectFactory
3.配置vfs
4.配置TypeAliasesPackage
5.配置typeAliases:別名普筹,方便在xml中進(jìn)行配置時(shí)使用,如設(shè)置別名 com.ss.User alias=user ,在xml中無(wú)需再使用別名文件進(jìn)行配置隘马,TypeAliasesPackage太防,配置包名后,在該包名下的bean類酸员,可以直接使用類名識(shí)別
6.配置插件
7.配置typeHandle,typeHandle負(fù)責(zé)mybatis在ps中設(shè)置參數(shù)蜒车,和在resultSet中取出數(shù)據(jù)時(shí),對(duì)java對(duì)象的轉(zhuǎn)換
8.配置databaseIdProvinder,負(fù)責(zé)對(duì)應(yīng)不同數(shù)據(jù)庫(kù)類型
配置Mapper
1.通過(guò)Spring mybatis方式幔嗦,spring mybatis 提供了MapperScannerFactoryBean 能夠?qū)?mapper接口動(dòng)態(tài)生成 代理并注冊(cè)到spring容器中酿愧,這樣的方式方便但是定制化比較差
2.手動(dòng)調(diào)用的方式,調(diào)用mybatis session的方法進(jìn)行調(diào)用