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*

在核心配置文件中映入

需要注意:所有配置是需要按照顺序写的

image-20211018154252595

<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

如果程序运行失败,就证明我们上边的观点是正确的

如上图所示,这说明此时读取的是元素体内的属性

现在我把外部文件的正确属性恢复

再运行程序,如下图所示,成功运行

posted @   无关风月7707  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示