Mybatis配置 mybatis-configre.xml
一、settings
设置全局参数
二、properties
引入外部配置的properties文件:
resource引入类路线下资源
url引网络连接或磁盘路径下资源
properties文件用于容易变化的配置属性,使其易于统一修改。
<properties resource=""或url="">
<property name="" value="" />
</properties>
使用properties中的键值对时,使用${name}
三、mappers
将关联实体类与表及sql语句的配置文件加载到mybatis中。
<mappers>
<mapper resource="" />
<mapper url="" />
<mapper class="" />
<package name="" />
</mappers>
1、resource、url:加载mapper配置文件
2.1、class、package:加载mapper接口
2.2、在接口上使用@Mapper标记为mapper接口,通过在配置类上使用@MapperScan(value="packageName"),加载接口。
四、environments
数据库的连接信息
<environments default="development">
<environment id="development">
<transactionManager type="MANAGED|JDBC">
<property name="" value="" />
</transactionManager>
<dataSource type="UNPOOLED|POOLED|JNDI">
<property name="" value="" />
</dataSource>
</environment>
</environments>
1、default通过ID指定使用的哪个environment,当只有一个environment时不需指定。默认为development
2、id唯一标识,方便指定使用的environment
3、事物-type:
JDBC——这个配置只是直接使用JDBC提交和回滚功能。它依赖于从数据源检索的连接来管理事务的范围。
MANAGED——这个配置几乎什么都不做。它从不提交或回滚连接。相反,它让容器管理事务的整个生命周期(例如JEE应用服务器上下文)。默认情况下,它会关闭连接。但是,有些容器并不期望这样做,因此,如果需要阻止它关闭连接,请将“closeConnection”属性设置为false。
如果您计划在Spring中使用MyBatis,则不需要配置任何TransactionManager,因为Spring模块将设置自己的一个TransactionManager,覆盖以前设置的任何配置。这两种TransactionManager类型都不需要任何属性。但是,它们都是类型别名,因此换句话说,您可以使用自己的完全限定类名或类型别名来引用自己的TransactionFactory接口实现,而不是使用它们。
4、数据源-type:
UNPOOLED:未实现数据池,请求时建立连接,请求结束断开连接。
需要配置的属性:
Driver、url、username、password、defaultTransactionIsolationLevel、defaultNetworkTimeout
也可以将属性传递给数据库驱动程序。为此,在属性前面加上driver。例如:driver.encoding = UTF8这将通过DriverManager将带有UTF8值的属性编码传递给数据库驱动程序。getConnection (url, driverProperties)方法。
POOLED:实现了连接池,不用频繁创建连接,节省时间。
需配置属性除以上基本属性外,还有池化的属性。
JNDI——数据源的这种实现是为了与容器(如EJB或应用程序服务器)一起使用的,这些容器可以集中地或外部地配置数据源,并将对它的引用放在JNDI上下文中。
这个数据源配置只需要两个属性:
initial_context—此属性用于从InitialContext(即InitialContext .lookup(initial_context))查找上下文。此属性是可选的,如果省略,则直接根据InitialContext查找data_source属性。
data_source——这是可以找到数据源实例引用的上下文路径。它将根据initial_context查询返回的上下文进行查找,如果没有提供initial_context,则直接根据InitialContext进行查找。与其他数据源配置类似,可以将属性直接发送到InitialContext,方法是在这些属性前面加上env前缀。,例如:env.encoding =UTF8这将在实例化时将带有UTF8值的属性编码发送到InitialContext的构造函数。您可以通过实现接口org.apache.ibatis.datasource.DataSourceFactory来插入任何第三方数据源
五、objectFactory
创建SQL执行结果所需的实体类的工厂类,通过构造方法创建实例。
<objectFactory type="">
<property name="" value=""/>
</objectFactory>
objectFactory元素体中定义的属性将在objectFactory实例初始化之后传递给setProperties方法。ObjectFactory接口非常简单。它包含两个create方法,一个用于处理默认构造函数,另一个用于处理参数化构造函数。最后,可以使用setProperties方法来配置ObjectFactory
六、ObjectWapperFactory
创建指定的的对象时,对该对象进行加工
七、typeAliases
将类名长的类,设置别名进行映射,方便书写。也可在该类上使用@alias(value=“”)
<typeAliases>
<property type="" alias=""/>
<package name="" />
</typeAlise>
八、typeHandlers
将数据库中的类型与Java类型对应,使之可以相互转换。
<typeHandlers>
<typeHandler handler="" />
<package name="" />
</typeHandlers>
九、databaseIdProvider
多数据库支持,根据使用的不同数据库执行不同的sql语句。
<databaseIdProvider type="DB_VENDOR">
<property name="Mysql" value="mysql" />
<property name="SQL Server" value="sqlserver" />
<property name="DB2" value="db2" />
<property name="Oracle" value="oracle" />
</databaseIdProvider>
十、plugins(MP)
Mybatis插件(实际上可以叫拦截器),应用代理模式。对Mybatis底层的部分方法进行拦截。
<plugins>
<plugin interceptor="">
<property name="" value="" />
</plugin>
</plugins>
interceptor实现的拦截类