解析Mybaits核心配置文件属性
目录
1.environment
2.transactionManager
3.dataSource
4.peoperties
5.mapper
先来看看mybatis核心配置文件代码
<?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>
<properties resource="jdbc.properties"></properties>
<environments default="mysql">
<environment id="mysql">
<!--配置事务的类型,使用本地事务策略-->
<transactionManager type="JDBC"></transactionManager>
<!--是否使用连接池 POOLED表示使用链接池,UNPOOLED表示不使用连接池-->
<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>
<mappers>
<mapper resource="CarMapper.xml"></mapper>
</mappers>
</configuration>
1.environment
一个数据库对应一个environment
<environments default="mysql">表示默认使用的开发环境
// 一个数据库对应一个SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"));
// 两个数据库对应两个SqlSessionFactory对象,以此类推
SqlSessionFactory sqlSessionFactory1 = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"), "dev");
2.transactionManager
<transactionManager type="JDBC"></transactionManager>
表示事务管理器是JDBC,需要手动提交事务
<transactionManager type="MANAGED"></transactionManager>
表示交给容器去管理事务,如果没有容器的支持,当找不到容器管理时,就是没有事务。就是提交一条语句,自动提交一次。
3.dataSource
<dataSource type="UNPOOLED">
UNPOOLED不会使用连接池,每一次都会新建JDBC连接对象。POOLED会使用数据库连接池。
当<dataSource type="POOLED">时,它就具有一些属性(不只这些)
poolMaximumActiveConnections:最大的活动的连接数量。默认值10
poolMaximumIdleConnections:最大的空闲连接数量。默认值5
poolMaximumCheckoutTime:强行回归池的时间。默认值20秒。
poolTimeToWait:当无法获取到空闲连接时,每隔20秒打印一次日志,避免因代码配置有误,导致傻等。(时长是可以配置的)
4.peoperties
mybatis连接数据库的信息可以配置到一个单独的属性文件中,通常命名为jdbc.properties
在这个文件中写数据库连接信息
主配置文件中引用jdbc.properties
5.mapper
mapper标签用来指定SQL映射文件的路径,包含多种指定方式,这里先主要看其中两种:
第一种:resource,从类的根路径下开始加载(常用)
<mappers>
<mapper resource="CarMapper.xml"/>
</mappers>
第二种:url,从指定的url位置加载
<mappers>
<mapper url="file:///d:/CarMapper.xml"/>
</mappers>
当然还有许多种配置方式,包括包扫描的方式,这个放到后期文章中。