MyBatis配置文件mybatis-config.xml配置解析

1.MyBatis是通过xml或注解的方式将需要执行的statement对象配置起来,通过java对象和statement对象中的sql进行映射,生成最终的sql语句,然后由MyBatis框架执行sql并将结果映射成java对象并返回。

2.MyBatis的配置文件包含了影响MyBatis行为的信息,文档的结构如下:

(1)properties 属性

可以在CLASSPATH中增加一个db.properties属性文件,用于配置连接数据的各个属性:

mysql_driver=com.mysql.jdbc.Driver
mysql_url=jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=utf8
mysql_username=root
mysql_password=root
在配置文件中配置<properties/>属性,用于加载属性文件:

<!-- 加载属性文件 --> 
<properties resource="db.properties"/>
在属性文件中的属性就可以拿到配置文件中去替换需要动态配置的属性值:

<!-- dataSource值数据源配置,POOLED是JDBC连接对象的数据源连接池的实现 -->  
            <dataSource type="POOLED">  
                <property name="driver" value="${mysql_driver}" />  
                <property name="url" value="${mysql_url}" />  
                <property name="username" value="${mysql_username}" />  
                <property name="password" value="${mysql_password}" />  
            </dataSource>  
这样的配置方式可以使得配置变得更为灵活,需要修改属性值就直接到属性文件中去修改就可。

(2)settings 设置

主要用于配置改变MyBatis运行时行为的属性,比如配置日志

<settings>  
        <setting name="logImpl" value="LOG4J"/>  
</settings> 

(3)typeAliases 类型命名

主要用于给类取别名,可以减少类完全限定名的冗余。

格式如下:

<typeAliases>
	<!-- 定义单个别名 
	<typeAlias type="com.domain.User" alias="user"/>
	-->
	<!-- 批量的别名定义,扫描整个包下面的所有类,别名为类名(首字母大小写都可以) -->
	<package name="com.po"/>
	<package name="其他包"/>
</typeAliases>

(4)typeHandlers 类型处理器

无论是MyBatis在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用类处理器将获取到的值以合适的方式转换成Java类型。

(5)objectFactory 对象工厂

MyBatis每次创建结果对象的新实例时,它都会使用一个对象工厂(objectFactory)实例来完成。

(6)plugins 插件

(7)environments 环境

<environments default="development">  
        <environment id="development">  
            <!-- 指定事务管理类型,type="JDBC"指直接简单使用了JDBC的提交和回滚设置 -->  
            <transactionManager type="JDBC" />  
            <!-- dataSource数据源配置,POOLED是JDBC连接对象的数据源连接池的实现 -->  
            <dataSource type="POOLED">  
                <property name="driver" value="${mysql_driver}" />  
                <property name="url" value="${mysql_url}" />  
                <property name="username" value="${mysql_username}" />  
                <property name="password" value="${mysql_password}" />  
            </dataSource>  
        </environment>  
</environments>  

environment 环境变量

<environment id="development"> 
每个environment元素定义的环境ID,可以任意命名

transactionManager 事务管理器

<transactionManager type="JDBC" />  
JDBC:直接使用了JDBC的提交和回滚设置,它依赖于从数据源得到的连接来管理事务范围。

MANAGED:它几乎不做什么。它从来不提交或者回滚一个连接,而是让容器来管理事务的整个生命周期。默认情况下它会关闭连接,可以将closeConnection属性设置为false来阻止它默认的关闭行为。

dataSource 数据源

(8)databaseIdProvider 数据库厂商标识

(9)mappers 映射器

有如下几种映射文件的方式:

 <!-- mappers告诉了MyBatis去哪里找持久化类的映射文件 -->  
    <mappers> 
    	<!-- 使用类路径查找资源文件 --> 
        <mapper resource="com/mapper/UserMapper.xml" />  
    </mappers>
    <mappers> 
    	<!-- 使用本地文件 --> 
        <mapper url="file:///F:/mapper/UserMapper.xml" />  
    </mappers>  
    <mappers> 
    	<!-- 使用接口类 --> 
        <mapper class="com.mapper.UserMapper" />  
    </mappers>  
    <mappers> 
    	<!-- 使用包名 --> 
        <package name="com.mapper"/>
    </mappers>  
注:使用接口类和使用包名时,UserMapper.xml与 UserMapper.java(接口)必须在同一目录下并且必须同名。







  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值