Mybatis Properties 配置优先级详解

Properties 配置方式

Mybatis提供了三种配置方式:

  • properties元素体内property子元素
  • properties配置文件
  • 程序参数传递

配置优先级别

  1. 在properties元素体内指定的属性首先被读取
  2. properties配置文件中配置的属性
  3. 通过参数传递的方式

因此,通过参数传递的属性具有最高优先级,properties配置文件次之,优先级最低的是在properties元素体内指定的属性。

所以在生产中需要注意,最好的办法是不要混合使用,推荐使用properties配置文件形式。

Mybatis properties属性

这些属性都是可外部配置且可动态替换的

既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。

例如:

<span style="font-size:14px;"><properties resource="org/mybatis/example/config.properties">
  <property name="username" value="dev_user"/>
  <property name="password" value="F2Fa3!33TYyg"/>
</properties></span>

其中的属性就可以在整个配置文件中使用来替换需要动态配置的属性值。

比如:

<dataSource type="POOLED">
  <property name="driver" value="${driver}"/>
  <property name="url" value="${url}"/>
  <property name="username" value="${username}"/>
  <property name="password" value="${password}"/>
</dataSource>

这个例子中的 username 和 password 将会由 properties 元素中设置的相应值来替换。

driver 和 url 属性将会由 config.properties 文件中对应的值来替换。

这样就为配置提供了诸多灵活选择。

如果属性在不只一个地方进行了配置

那么 MyBatis 将按照下面的顺序来加载:

  • 在 properties 元素体内指定的属性首先被读取。
  • 然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。
  • 最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。

因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的是 properties 属性中指定的属性。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • MyBatis中的properties配置(推荐)

    这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递.例如: <properties resource="org/mybatis/example/config.properties"> <property name="username" value="dev_user"/> <property name="password&quo

  • MyBatis Properties及别名定义实例详解

    上一篇我们介绍了mybatis的增删改查入门实例,我们发现在 mybatis-configuration.xml 的配置文件中,对数据库的配置都是硬编码在这个xml文件中,如下图,那么我们如何改进这个写法呢? 1.我们将 数据库的配置语句写在 db.properties 文件中 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/ssm jdbc.username=root jdbc.password=ro

  • mybatis 使用jdbc.properties文件设置不起作用的解决方法

    这样写的时候起作用: <?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> <typeAliases

  • Mybatis主配置文件的properties标签详解

    我们配置MYSQL的连接池时可以直接写,也可以从外部导入配置文件. 1.直接在dataSource中写数据库基本信息 <dataSource type="POOLED"> <!-- 配置连接数据库的4个基本信息 --> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value=&

  • Mybatis Properties 配置优先级详解

    Properties 配置方式 Mybatis提供了三种配置方式: properties元素体内property子元素 properties配置文件 程序参数传递 配置优先级别 在properties元素体内指定的属性首先被读取 properties配置文件中配置的属性 通过参数传递的方式 因此,通过参数传递的属性具有最高优先级,properties配置文件次之,优先级最低的是在properties元素体内指定的属性. 所以在生产中需要注意,最好的办法是不要混合使用,推荐使用properties

  • springmvc与mybatis集成配置实例详解

    简单之美,springmvc,mybatis就是一个很好的简单集成方案,能够满足一般的项目需求.闲暇时间把项目配置文件共享出来,供大家参看: 1.首先我们来看下依赖的pom: <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.ve

  • IDEA版最新MyBatis程序配置教程详解

    实验环境:IDEA2020.1+MySQL8.0.21+Mybatis3.5.5+Junit4.13 搭建环境–>导入Mybatis->编写代码->测试 1.搭建实验数据库 我们创建一个mybatis实验数据库,并创建一个user表为后续实验准备 CREATE DATABASE `mybatis`; USE `mybatis`; CREATE TABLE `user`( `id` INT(4) NOT NULL PRIMARY key, `name` VARCHAR(20) NOT NU

  • Mybatis 创建方法、全局配置教程详解

    总体介绍:MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]! 和数据库打交道的技术有: 原生的JDBC技术--->Spring的JdbcTemplate技术 这些工具都是提供简单的SQL语句的执行,但是和我们这里学的MyBatis框架还有些不同, 框架是一整套的东西,例如事务控制,查询缓存,字段映射等等. 我们用原生JDBC操作数据库的时候都会经过: 编写sql---->预编译---->设置参数----->执行sql------->

  • spring、mybatis 配置方式详解(常用两种方式)

    在之前的文章中总结了三种方式,但是有两种是注解sql的,这种方式比较混乱所以大家不怎么使用,下面总结一下常用的两种总结方式: 一. 动态代理实现 不用写dao的实现类 这种方式比较简单,不用实现dao层,只需要定义接口就可以了,这里只是为了记录配置文件所以程序写的很简单: 1.整体结构图: 2.三个配置文件以及一个映射文件 (1).程序入口以及前端控制器配置 web.xml <?xml version="1.0" encoding="UTF-8"?> &

  • intellij idea中安装、配置mybatis插件Free Mybatis plugin的教程详解

    场景: 使用intellij idea开发,持久层dao使用了mybatis,经常需要编辑mybatis的××Mapper.java和××Mapper.xml,因为是接口里一个方法对应xml里的一个SQL的id,当需要找找个方法时候得拷贝找个方法名,然后在对应文件中ctrl+f全文查找,相当麻烦.本篇讲述的使用mybatis的插件后将极大的提高效率.效果如图: 即从××Mapper.java接口和××Mapper.xml中能由箭头直接点进去查看相对应的方法及SQL. 步骤: 1.ctrl+alt

  • Spark三种属性配置方式详解

    随着Spark项目的逐渐成熟, 越来越多的可配置参数被添加到Spark中来.在Spark中提供了三个地方用于配置: 1.Spark properties:这个可以控制应用程序的绝大部分属性.并且可以通过 SparkConf对象或者Java 系统属性进行设置: 2.环境变量(Environment variables):这个可以分别对每台机器进行相应的设置,比如IP.这个可以在每台机器的$SPARK_HOME/ conf/spark-env.sh脚本中进行设置: 3.日志:所有的日志相关的属性可以

  • mybatis分页插件pageHelper详解及简单实例

    mybatis分页插件pageHelper详解及简单实例 工作的框架spring springmvc mybatis3 首先使用分页插件必须先引入maven依赖,在pom.xml中添加如下 <!-- 分页助手 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>3.7.5

  • SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper实例详解

    一.添加所需依赖,当前完整的pom文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&q

  • MyBatis查询缓存实例详解

    查询缓存的使用,主要是为了提高查询访问速度.将用户对同一数据的重复查询过程简化,不再每次均从数据库查询获取结果数据,从而提高访问速度. MyBatis的查询缓存机制,根据缓存区的作用域(生命周期)可划分为两种:一级缓存与二级缓存 一.一级查询缓存 MyBatis一级缓存是基于org.apache.ibatis.cache.impl.PerpetualCache类的HashMap本地缓存,其作用域是Sqlsession.在同一个Sqlsession中两次执行相同的sql语句,第一次执行完毕后,会将

随机推荐