Mybatis的config.xml详解

本文详细解读了Mybatis的配置文件config.xml,包括环境配置、设置、类型别名、类型处理器、对象工厂、事务管理和数据源,以及映射器的配置,帮助读者理解Mybatis的核心配置选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?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">
<!-- development :开发模式 work :工作模式 environments default="development"与environment 
	id="development"中的default和id需要一致,亲自测试,不一致不行 -->
<!-- 配置configuration -->

<configuration>
<!-- 加载propertise文件 -->
<properties resource="本地资源文件路径">
  <property name="" value=""/><!-- 添加获取修改资源文件的值 -->
</properties>

<!-- 这些是极其重要的调整,它们会修改MyBatis在运行时的行为方式,一下设置都是默认值-->
<settings>
   <setting name="cacheEnabled" value="true"/><!-- 这个配置使全局的映射器启用或禁用缓存 -->
   <setting name="lazyLoadingEnabled" value="true"/><!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载 -->
   <setting name="aggressiveLazyLoading" value="true"/><!-- 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。 -->
   <setting name="multipleResultSetsEnabled" value="true"/><!-- 允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动)。 -->
   <setting name="useColumnLabel" value="true"/><!-- 使用列标签代替列名。不同的驱动在这方便表现不同。参考驱动文档或充分测试两种方法来决定所使用的驱动。 -->
   <setting name="useGeneratedKeys" value="false"/><!-- 允许JDBC支持生成的键。需要适合的驱动。如果设置为true则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效(比如Derby) -->
   <setting name="autoMappingBehavior" value="PARTIAL"/><!-- 指定MyBatis如何自动映射列到字段/属性。PARTIAL只会自动映射简单,没有嵌套的结果。FULL会自动映射任意复杂的结果(嵌套的或其他情况)。-->
   <setting name="defaultExecutorType" value="SIMPLE"/><!-- 配置默认的执行器。SIMPLE执行器没有什么特别之处。REUSE执行器重用预处理语句。BATCH执行器重用语句和批量更新 -->
   <setting name="defaultStatementTimeout" value=""/><!-- 设置超时时间,它决定驱动等待一个数据库响应的时间。值为任意值,默认没有设置 -->
</settings>
<!--类型别名是为Java类型命名一个短的名字。它只和XML配置有关,只用来减少类完全限定名的多余部分 -->
<typeAliases>
    <typeAlias type="class全类名" alias="别名"/>
</typeAliases>

<!-- 无论是MyBatis在预处理语句中设置一个参数,还是从结果集中取出一个值时,类型处理器被用来将获取的值以合适的方式转换成Java类型
     mybatis 有默认的类型转化器,还可以自定义typeHandlers,实现TypeHandler即可
-->
<typeHandlers>
  <typeHandler handler="自定义类型转化器" jdbcType="" javaType=""/>
</typeHandlers>
<!-- MyBatis每次创建结果对象新的实例时,它使用一个ObjectFactory实例来完成。
如果参数映射存在,默认的ObjectFactory不比使用默认构造方法或带参数的构造方法实例化目标类做的工作多。
如果你想重写默认的ObjectFactory,你可以创建你自己的,
继承DefaultObjectFactory就可以自定义自己的objectFactory
 -->
<objectFactory type=""></objectFactory>

	<!-- 配置环境 -->
	<environments default="development"><!-- development :开发模式 work :工作模式 environments -->
		<environment id="development"><!-- development :开发模式 work :工作模式 environments -->
			<!--transactionManager有两个类型: 
			1、JDBC 这个配置直接简单使用了JDBC的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围 
			2、MANAGED MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期(比如Spring或JEE应用服务器的上下文)。默认情况下它会关闭连接。然而一些容器并不希望这样,因此如果你需要从连接中停止它,将closeConnection属性设置为false。例如: 
				<transactionManager type="MANAGED"> 
				     <property name="closeConnection" value="false"/> 
				</transactionManager>
				 -->
			<transactionManager type="JDBC" /><!-- JDBC/MANAGED -->
			
			
			<!-- dataSource type 
			
			unpooled不使用连接池
			
			pooled使用连接池
			
			JNDI 这个数据源的实现是为了使用
			
			 -->
			 
			<dataSource type="POOLED"><!--unpooled不使用连接池/pooled使用连接池 -->
				<property name="driver" value="com.mysql.jdbc.Driver" /><!--数据库的dirver -->
				<property name="url" value="jdbc:mysql://localhost:3306/mybatis" /><!--连接数据库的url -->
				<property name="username" value="root" /><!--数据库用户名 -->
				<property name="password" value="root" /><!--对应用户名的密码 -->
			</dataSource>		
			<!-- 
			oracle  连接oracle数据库		
				<property name="driver" value="oracle.jdbc.Driver.oracleDriver" />
				<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl" />
				<property name="username" value="briup" />
				<property name="password" value="briup" />	
			 -->
		</environment>
	</environments>
	
	<!-- 映射map xml文件 -->
	<mappers>
	   <mapper class=""/><!-- 基于接口的mapper -->
	   <mapper resource=""/><!-- 基于xml 的mapper,使用相对于类路径的资源 -->

       <mapper url=""/><!-- 使用完全限定路径 -->
	
	</mappers>
	
	
	
</configuration>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值