在mybatis-config.xml中有九個屬性,但是在這只談到了六個,剩下的三個詳見http://www.mybatis.org/mybatis-3/zh/getting-started.html
<?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> <!-- 1.properties:可以使用properties來導入外部的properties文件,例如把連接數據庫的配置信息單獨放在一個properties中 resource:引入類路徑下的資源 url:引入網絡路徑或者本地磁盤的資源 --> <properties resource="dbconfig.properties"></properties> <!-- 2.settings:包含很多的重要設置 setting:用來設置每一個設置項 name:設置項名 value:設置項值 例如:mapUnderscoreToCamelCase 默認為false 這個的作用是駝峰命名轉換,l_name -> lName --> <settings> <!--開啟駝峰命名--> <setting name="mapUnderscoreToCamelCase" value="true"/> <setting name="jdbcTypeForNull" value="NULL"></setting> <setting name="lazyLoadingEnabled" value="true"></setting> <setting name="aggressiveLazyLoading" value="false"></setting> <!--開啟二級緩存--> <setting name="cacheEnabled" value="true"></setting> </settings> <!-- 3.typeAliases:起別名的標簽 typeAlias:為某個java類型起別名 type:指定要起別名的全類名,默認別名就是類小寫,(但是其實他是不區分大小寫的,也就是說你全部大寫也沒問題) alias:新的別名 package:為某個包下的類批量起別名(這個會存在的一個問題就是可能會重復,重復的情況下還可以用@Alias來解決) name:指定包名(這個就相當於是為這個包下的所有的類都創建了一個默認的別名) 當然還有一個起別名的方式就是在實體上使用@Alias來起別名 注:起別名看自己的情況,推薦還是在mapper文件中使用全類名 --> <typeAliases> <typeAlias type="com.wj.mybatis.bean.Employee" alias="emp"></typeAlias> <package name="com.wj.mybatis.bean"></package> </typeAliases> <!-- 4.environments:配置mybatis的多種環境,default指定使用某種環境。可以達到快速切換的目的 environment:配置一個具體的環境信息,他必須要配置transactionManager和dataSource這兩個子標簽,id代表當前環境的唯一標識 transactionManager:事務管理器 type是具體事物的別名 有兩個值:JDBC(JdbcTransactionFactory)|MANAGED(ManagedTransactionFactory) 當然我們還可以自定義事物:需要我們實現TransactionFactory接口 type指定為全類名 dataSource:數據源 type:數據源類型 有三個值:UNPOOLED(UnpooledDataSourceFactory) |POOLED(PooledDataSourceFactory) |JNDI(JndiDataSourceFactory) 當然我們還可以自定義數據源 使用之前接觸過的c3p0,dbcp什么的,這需要我們實現DataSourceFactory type指向全類名 但是這部分的內容一般來說並不會使用mybatis的配置,一般都是在spring中配置 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> <environment id="test"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <!-- 5.databaseIdProvider:用來支持多數據庫廠商 type="DB_VENDOR":VendorDatabaseIdProvider 作用就是得到數據庫廠商的標識 getDatabaseProductName() name是數據庫廠商的標識,value使我們給他取的值 --> <databaseIdProvider type="DB_VENDOR"> <property name="MySQL" value="mysql"></property> <property name="Oracle" value="oracle"></property> </databaseIdProvider> <!-- 將我們寫好的sql映MapperEmployee.xml)一定要注冊到全局配置文件(mybatis-config.xml)中 --> <!-- 6.mappers:注冊一個sql映射 mapper 有三種注冊方式:resource url class 其中resource url是以配置文件的方式來注冊 class是以接口的方式 resource:引用類路徑下的sql映射文件 <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> url:引用網絡路徑或者本地磁盤路徑下的映射文件 <mapper url="file:///var/mappers/PostMapper.xml"/> class 有兩種方式 1.有sql映射文件時,這個文件xml文件要和接口同名且放在一起(在idea開發環境會遇到問題,就是加載不到MapperEmployee.xml 解決方案是在pom中加入build標簽的內容) 2.沒有映射文件而使用注解的方式(@Select @Delete @Insert @Update),這個和spring data jpa類似。只不過要多加一步,將他的全限定名配置在class中 注:在這里就有個問題,如果sql語句都用注解的方式,我們會不好管理,所以推薦的用法是不重要的用注解,比較重要的 還是配置到映射文件中來統一管理。 以上這三類都是一個一個注冊,還有一種批量注冊的方式 package name是包名 但是批量注冊要注意一個問題就是,在這個包下使用了注解方式的沒有問題,沒使用注解方式的我們就是 用到class方式第一種的方式,將sql的映射文件和接口放在一起 --> <mappers> <!--使用注解的方式--> <mapper class="com.wj.mybatis.dao.MapperEmployeeAnnotation"/> <package name="com.wj.mybatis.dao"></package> <!--<mapper class="com.wj.mybatis.dao.MapperEmployee"></mapper>--> </mappers> </configuration>
---------------------
作者:xiao_____wu
來源:CSDN
原文:https://blog.csdn.net/xiao_____wu/article/details/81503203
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
