mybatis配置之属性优化
声明
本文为其他博主文章总结,仅用作个人学习,特此声明
参考文章链接
(3条消息) 【狂神说】Mybatis学习笔记(全)_黑心白莲的博客-CSDN博客_狂神说mybatis笔记
置解析
1.核心配置文件
- mybatis-config.xml
- Mybatis的配置文件包含了会深深影响MyBatis行为的设置和属性信息
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
mappers(映射器)
2.环境配置(environments)
MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中,尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
假设如下图有两套环境,改变default来切换默认环境
Mybatis默认的事务管理器是:JDBC,连接池:POOLED
3.属性(properties)优化
我们可以properties属性实现引用配置文件
这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置【db.properties】
编写一个配置文件
driver = com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=xy680501*
在核心配置文件中映入
需要注意:所有配置是需要按照顺序写的

<properties resource="db.properties">
<property name="username" value="root"/>
<property name="password" value="111111"/>
</properties>
可以直接映入外部配置文件不在properties中写属性
<properties resource="db.properties"/>
如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:
- 首先读取在 properties 元素体内指定的属性。
- 然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。
- 最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。
比如说
<properties resource="db.properties">
<property name="username" value="root"/>
<property name="password" value="111111"/>
</properties>
这里元素体内指定了username和password,但是外部配置文件db.properties中也指定了这两个属性,外部配置文件中的属性覆盖了元素体内的同名属性
论证一下上边的观点
现在我把外部文件的username和password属性删掉,元素体内指定错误的password
如果程序运行失败,就证明我们上边的观点是正确的
如上图所示,这说明此时读取的是元素体内的属性
现在我把外部文件的正确属性恢复
再运行程序,如下图所示,成功运行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律