MyBatis-sqlMapConfig.xml

本文详细介绍了mybatis核心配置文件sqlMapConfig.xml的各个组成部分及其作用,包括属性(properties)、全局配置参数(settings)、类型别名(typeAliases)等内容,并对属性加载顺序及建议进行了说明。
sqlMapConfig.xml
 
SqlMapConfig.xml中配置的内容和顺序如下:
 
properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源)
mappers(映射器)
 
1.1 properties属性定义
 可以把一些通用的属性值配置在属性文件中,加载到mybatis运行环境内。
比如:创建db.properties配置数据库连接参数。
注意:在xml文件中,&->&,但是在properties文件中,&->


 
 
注意: MyBatis 将按照下面的顺序来加载属性:
properties 元素体内定义的属性首先被读取。
然后会读取properties 元素中resourceurl 加载的属性,它会覆盖已读取的同名属性。
最后读取parameterType传递的属性,它会覆盖已读取的同名属性。
 
建议使用properties,不要在properties中定义属性,只引用定义的properties文件中属性,并且properties文件中定义的key要有一些特殊的规则。
 
1.2 settings全局参数配置
mybatis运行时可以调整一些全局参数(相当于软件的运行参数),参考:mybatis-settings.xlsx
根据使用需求进行参数配置。
注意:小心配置,配置参数会影响mybatis的执行。
 
ibatis的全局配置参数中包括很多的性能参数(最大线程数,最大待时间。。。),通过调整这些性能参数使ibatis达到高性能的运行,mybatis没有这些性能参数,由mybatis自动调节。
 
1.3 typeAliases(常用)
 
可以将parameterTyperesultType中指定的类型 通过别名引用。
 
1.3.1 mybaits提供了很多别名
别名映射的类型
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
 
1.3.2 自定义别名

 
 
1.3.3 使用别名
parameterTyperesultType中使用别名:

 
1.3.4 typeHandlers
 
类型处理器将java类型和jdbc类型进行映射。
 
mybatis默认提供很多类型处理器,一般情况下够用了。
 
1.3.5 mappers


### SqlMapConfig.xml 配置文件说明 `SqlMapConfig.xml` 是 MyBatis 的全局配置文件,主要用于定义数据库连接、事务管理以及 Mapper 映射文件的注册等内容。以下是该文件的主要组成部分及其功能: #### 1. XML 声明与 DOCTYPE 定义 XML 文件通常以声明版本和编码开头,并通过 `DOCTYPE` 来指定文档遵循的标准。 ```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"> ``` 此部分表明当前文件是一个基于 MyBatis 3.0 版本标准的配置文件[^1]。 --- #### 2. 属性资源加载 (`<properties>`) 可以通过 `<properties>` 节点引入外部属性文件,用于动态替换配置中的占位符 `${}`。 ```xml <properties resource="db.properties"/> ``` 例如,在 `db.properties` 中可以定义如下内容: ```properties jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/test_db jdbc.username=root jdbc.password=123456 ``` 这些值可以在后续节点中被引用,从而实现灵活的资源配置[^2]。 --- #### 3. 设置项 (`<settings>`) `<settings>` 节点允许开发者调整 MyBatis 运行时的行为参数。常见的设置包括缓存控制、延迟加载等功能。 ```xml <settings> <setting name="cacheEnabled" value="true"/> <!-- 是否启用二级缓存 --> <setting name="lazyLoadingEnabled" value="true"/> <!-- 是否开启懒加载 --> </settings> ``` 具体选项的意义可参考官方文档或相关资料[^1]。 --- #### 4. 数据源配置 (`<dataSource>`) 数据源是 MyBatis 实现 JDBC 连接的核心组件之一。以下是一个简单的内置数据源示例: ```xml <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <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> ``` 其中,`type="POOLED"` 表示使用连接池来优化性能;而 `type="UNPOOLED"` 则表示每次请求都创建新的连接[^2]。 --- #### 5. Mapper 注册方式 MyBatis 提供多种方式将 SQL 映射文件注册到框架中,主要包括以下几种形式: ##### (1) 使用相对路径注册单个映射文件 ```xml <mapper resource="sqlmap/User.xml"/> ``` 这种方式适用于小型项目,适合手动维护少量映射文件的情况。 ##### (2) 使用绝对 URL 地址注册映射文件 ```xml <mapper url="file:///D:/workspace_spingmvc/mybatis_01/config/sqlmap/User.xml"/> ``` 这种做法较少见,但在某些特殊场景下可能有用,比如需要跨目录访问文件时。 ##### (3) 批量扫描整个包内的所有 Mapper 接口 如果采用注解风格开发,则可以直接指定包名让 MyBatis 自动发现并加载对应的 Mapper 类。 ```xml <package name="com.example.mapper"/> ``` 注意:此时要求接口类与其关联的 XML 文件同名且位于同一目录下。 --- ### 示例完整的 SqlMapConfig.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"> <configuration> <!-- 加载属性文件 --> <properties resource="db.properties"/> <!-- 全局设置 --> <settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> </settings> <!-- 环境配置 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <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> <!-- Mapper 注册 --> <mappers> <mapper resource="sqlmap/User.xml"/> <mapper url="file:///path/to/OtherMapper.xml"/> <package name="com.example.mapper"/> </mappers> </configuration> ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值