mybaties的配置文件详细说明

mybaties的配置文件详细说明

首先看看我曾经写过的一份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="db/mysqlconn.properties"></properties>
	 <!-- 开启懒加载 -->
    <settings>
    	<setting name="lazyLoadingEnabled" value="true"/>
    	<setting name="aggressiveLazyLoading" value="false"/>
    <!-- 将other转为null值 -->	
    	<setting name="jdbcTypeForNull" value="NULL"/><!-- 不设置这个参数的话有一些数据库不能识别null,如oracle数据库 -->
    <!-- 指定日志为log4j -->
    	<setting name="logImpl" value="LOG4J"/>
    <!-- 开启二级缓存 -->
    	<setting name="cacheEnabled" value="true"/>
    </settings>
	<typeAliases>
		<package name="pojo" />
	</typeAliases>
	<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>
	</environments>
	<mappers>
		<package name="mapper" />
	</mappers>
</configuration> 

这个是和它相关的.properties文件的内容

driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///t18321
username=root
password=admin123

开始解析整个配置文件

1. xml文件的命名

首先每个框架的配置文件基本上都有一些默认的名字规范,例如springframework的配置文件就经常被叫做“applicationContext-*.xml”,mybatis的配置文件一般就叫做“configuration.xml”,当然这些文件的名字是可以随便取的,看个人喜好

2. xml文件的报文头

其次每个框架的xml文件都有报文头,如:
<?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">

(1)第一个是XML的声明,其中version属性是必须写的。
(2)encoding属性的值表示用于读取文档的字符集

3. mybatis配置文件的根元素

<configuration>
	......
</configuration> 

这个标签是一定要有的

4. properties标签

<properties resource="db/mysqlconn.properties"></properties>

该标签用于引入.properties文件,一般.properties文件里放的都是数据库的一些连接信息(用户名,密码,driverclass),该文件内容也是key-value形式

5. setting标签

    <settings>
		...
    </settings>

该标签就是用来修改mybatis的一些属性(全局参数)设置的,具体属性参考一下下面

mybaties的配置文件详细说明_第1张图片
默认我觉得设置这些就够了

    <settings>
	 <!-- 开启懒加载 -->
    	<setting name="lazyLoadingEnabled" value="true"/>
    	<setting name="aggressiveLazyLoading" value="false"/>
    <!-- 将other转为null值 -->	
    	<setting name="jdbcTypeForNull" value="NULL"/><!-- 不设置这个参数的话有一些数据库不能识别null,如oracle数据库 -->
    <!-- 指定日志为log4j -->
    	<setting name="logImpl" value="LOG4J"/>
    <!-- 开启二级缓存 -->
    	<setting name="cacheEnabled" value="true"/>
    </settings>

6. typeAliases标签

	<typeAliases>
		<package name="包路径" />
		<!-- <typeAlias type="要操作的类的路径" alias="别名"/> -->
	</typeAliases>

给完整的类其别名,简化类的应用。
类型别名是Java类型的简称。
当然,框架内置了一些常见的别名,如下:
mybaties的配置文件详细说明_第2张图片

7. environments标签

<environments default="development_orac">
		<environment id="development_orac">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="${or_driver}" /><!-- ${
     .properties文件中的key} -->
				<property name="url" value="${or_url}" />
				<property name="username" value="${or_username}" />
				<property name="password" value="${or_password}" />
			</dataSource>
		</environment>
	</environments>

每个数据库对应一个SqlSessionFactory 实例。并且通过sqlsession来对数据库进行相关的CRUD操作
你可以在“environments”配置多个environment,但是在后续使用时必须指定一个environment
即虽然可以配置多个运行环境,但是每个SqlSessionFactory 实例只能选择一个运行环境。
因此,如果同时想连接两个数据库那你就必须有两个对应的environment,并且你必须在databaseIdProvider 标签中给每个数据库去一个name值来对应,如下所示

	<environments default="development_orac">
		<environment id="development_orac">
			<transactionManager type="JDBC" />
			<dataSource type="POOLED">
				<property name="driver" value="${or_driver}" />
				<property name="url" value="${or_url}" />
				<property name="username" value="${or_username}" />
				<property name="password" value="${or_password}" />
			</dataSource>
		</environment>
		<environment id="development_mysql">
			<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>
	<databaseIdProvider type="DB_VENDOR">
	<!-- name参照源数据 -->
		<property name="MySQL" value="mysql"/>
		<property name="Oracle" value="oracle"/>
	</databaseIdProvider>
	

当你配置了多个environment时,在mapper.xml文件必须指定一个你在databaseIdProvider标签中的name,如下:

 <select id="xxx" resultType="xxx" databaseId="你定义的name">

      </select>

通过databaseId来指定具体的environment
8.mapper标签

	<!-- 
		mappers:代表你mybatis所引用的映射文件
	 -->
	<!-- mapper代表一个具体映射文件
			resource:代表这个映射文件的资源路径
		 -->
		 <!-- 配置转换器 -->

	<mappers>
		<!-- 注册映射接口 -->
		<!-- <mapper class="mapper.StudentMapper2"/>
		<mapper class="mapper.StudentMapper"/> -->
		<!-- <mapper resource="mapper/StudentMapper.xml" /> -->
		<package name="mapper"/>
	</mappers>

注册映射接口的xml文件。告诉这个mybatis框架 在哪里能够找到我们定义的映射SQL 语句,
可以使用类资源路径或者URL

注意
mybatis的配置文件的标签都是有顺序的不能乱写
参照以下顺序:
properties,
settings,
typeAliases,
typeHandlers,
objectFactory,
objectWrapperFactory,
reflectorFactory,
plugins,
environments,
databaseIdProvider,
mappers.

你可能感兴趣的:(ssm框架,mybatis,mybatis,java)