MyBatis的配置文件SqlMapConfig.xml

mybatis的全局配置文件SqlMapConfig.xml配置内容如下:
(1)properties(属性)
(2) settings(全局配置参数)
(3) typeAliases(类型别名)
(4) typeHandlers(类型处理器)
(5) objectFactory(对象工厂)
(6) plugins(插件)
(7)environments(环境集合属性对象)
        environment(环境子属性对象)
        	transactionManager(事务管理)
        	dataSource(数据源)
(8)mappers(映射器)

properties属性

  • 需求:将数据库连接参数单独配置在db.properties文件中,主需要在SqlMapConfig.xml文件中加载db.properties的属性值,在SqlMapConfig.xml中就不需要对数据库连接参数硬编码
  • db.properties代码
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=root
  • SqlMapConfig.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">

<configuration>
	<!-- 第一部分: 配置数据源 -->
	<properties resource="db.properties"></properties>
	<!-- 与Spring整合后 environments配置都将废除-->
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" /><!-- 使用JDBC事务管理: 事务控制由MyBatis管理-->
			<dataSource type="POOLED"><!-- 数据库连接池: 由MyBatis管理 -->
				<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="mapper/UserMapper.xml"/>
	</mappers>
</configuration>

在这里插入图片描述

  • 问题:将数据库的配置信息写在SqlMapConfig.xml文件中是硬编码,难道写在db.properties文件中就不是硬编码了吗?当然也是硬编码!但是db.properties文件中的内容要比SqlMapConfig.xml内容少得多,干净清爽的多!SqlMapConfig.xml文件中有各种各样的配置,而db.properties而只有数据库相关的配置:在企业开发中升级程序有时候是需要对配置文件进行修改的,而这种修改基本上不可能是手工去修改,而是通过程序来读写文件的:那么如果需要对数据库配置参数进行修改的话,现在只需要修改db.properties即可,不需要对SqlMapConfig.xml进行修改:而对db.properties修改要比对SqlMapConfig.xml文件的修稿要容易简单的多得多!
  • 测试配置是否成功:正常测试 vs 异常测试
  • 注意:mybatis将按照下面的顺序来加载属性
    (1) 在properties元素体内定义的属性首先被读取
    (2) 然后会读取properties元素中resource属性或url属性加载的属性,它会覆盖已读取的同名属性
    (3) 最后读取parameterType传递的属性,它会覆盖已读取的同名属性
  • 因此,通过parameterType传递的属具有最高优先级,resource或url加载的属性次之,最低优先级的是properties元素体内定义的属性
    在这里插入图片描述
  • 建议:不要在properties元素体内添加任何属性值,只将属性值定义在properties文件中,在properties文件中定义属性名要有一定的特殊性:如xxx.xxx.xxx.xxx

settings全局参数配置

  • mybatis框架在运行时可以调整一些运行参数:比如:开启二级缓存、开启延时加载…
  • mybatis的settings全局配置参数会影响mybatis的运行行为
    在这里插入图片描述

typeAliases别名(重点)

  • 需求:在mapper.xml文件中定义很多的statement,statement需要parameterType指定输入参数的映射类型,需要resultType指定输出参数的映射类型:如果在指定类型是键入全限定类型,不方便进行开发:那么可以针对parameterType和resultType指定的类型定义一些别名:在mapper.xml中通过别名定义,方便开发
  • 默认支持的别名
别名 映射的类型
_byte byte
_long long
_short short
_int int
_integer int
_double double
_float float
_boolean boolean
string String
bye Byte
long Long
short Short
int Integer
double Double
float Float
boolean Boolean
date Date
  • 定义别名
<?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>
	
	<!-- 第一部分: 配置数据源 -->
	<!--
		resource加载的属性值会覆盖properties元素体内的属性值
		所以properties元素体内的属性值写错了没有关系
	-->
	<properties resource="db.properties">
<!-- 		<property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
		<property name="jdbc.url" value="com.mysql.jdbc.Driver"/>
		<property name="jdbc.username" value="root"/>
		<property name="jdbc.password" value="root123"/> -->
	</properties>
	
	<!-- 全局配置参数:需要时再设置 -->
	<!-- <settings>
		<setting name="" value=""/>
	</settings> -->
	
	<!-- 这些配置是有顺序的: properties-settings-typeAliases -->
	<typeAliases>
		<typeAlias type=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值