mybatis.configuration.variables

mybatis.configuration.variables是一个可自定义的全局变量,本篇以springboot项目为例说明问题,源码如下,部分省略:

package org.apache.ibatis.session;
public class Configuration {protected Properties variables;
}

就是一个properties的属性配置对象,这个对象中的属性,是作为mybatis的全局变量出现的,可以在mapper.xml文件中直接引用。

如何定义

mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.democonfiguration:variables:userId: 456132465userName: 李四

mapper.xml中的使用

user_id = '${userId}'
user_name = '${userName}'或者<if test="'${userName}' != null and '${userName}' != ''">/* 这样写也没有问题 */
</if>

需要加引号,数字类型的可以不用管, 但如果遇到属性值为中文,不加引号报错提示列找不到,这个问题不难理解, 弄明白了mybatis的#和$的区别就明白了。

如何修改

这样的值很多时候要作为系统配置文件出现,如果需要动态修改,在不重启项目的情况改变数据或业务:

package org.apache.ibatis.session;import java.sql.Connection;public interface SqlSessionFactory {SqlSession openSession();SqlSession openSession(boolean var1);SqlSession openSession(Connection var1);SqlSession openSession(TransactionIsolationLevel var1);SqlSession openSession(ExecutorType var1);SqlSession openSession(ExecutorType var1, boolean var2);SqlSession openSession(ExecutorType var1, TransactionIsolationLevel var2);SqlSession openSession(ExecutorType var1, Connection var2);Configuration getConfiguration();
}

修改数据,需要从spring容器中获取到bean,可以用mybatis的SqlSessionFactory来获取。


@RestController
public class TestController {@Autowiredprivate SqlSessionFactory sqlSessionFactory;@GetMapping("/get")public String get() {org.apache.ibatis.session.Configuration configuration = sqlSessionFactory.getConfiguration();Properties variables = configuration.getVariables();String userId= variables.getProperty("userId");String userName= variables.getProperty("userName");return "userId-> " + userId+ " userName-> " + userName;}@GetMapping("/set")public String set(String userName) {org.apache.ibatis.session.Configuration configuration = sqlSessionFactory.getConfiguration();Properties variables = configuration.getVariables();variables.setProperty("userName", userName);return "success";}
}

不会,我可以学;落后,我可以追赶;跌倒,我可以站起来!我一定行!

mybatis全局变量的应用详解相关推荐

  1. python中全局变量和局部变量详解_Python全局变量与局部变量详解

    Python全局变量与局部变量详解#Python中的变量:全局变量和局部变量 #在很多语言中,在声明全局变量的时候,都喜欢把全局变量的名称定义为大写 #定义学生人数为100 STUDENT_NUMBE ...

  2. Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

    封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...

  3. MyBatis中@MapKey使用详解

    MyBatis中@MapKey使用详解 我们在上一篇文章中讲到在Select返回类型中是返回Map时,是对方法中是否存在注解@MapKey,这个注解我也是第一次看到,当时我也以为是纯粹的返回单个数据对 ...

  4. MyBatis的缓存机制详解

    MyBatis的缓存机制详解 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制,缓存可以极大的提升查询效率.MyBatis中默认定义了两级缓存,分别是一级缓存和二级缓存. ( ...

  5. python定义静态变量_对Pyhon实现静态变量全局变量的方法详解

    python不能像C++一样直接定义一个static变量或者通过extern来导入别的库的变量而实现数据共享,但是python的思想是通过模块化来解决这个问题,就是通过模块来实现全局变量. 首先新建一 ...

  6. 【MyBatis】MyBatis 二级缓存全详解

    1.概述 转载:MyBatis 二级缓存全详解 上一篇文章中我们介绍到了 MyBatis 一级缓存其实就是 SqlSession 级别的缓存,什么是 SqlSession 级别的缓存呢?一级缓存的本质 ...

  7. Mybatis(三) 映射文件详解

    前面说了全局配置文件中内容的详解,大家应该清楚了,现在来说说这映射文件,这章就对输入映射.输出映射.动态sql这几个知识点进行说明,其中高级映射(一对一,一对多,多对多映射)在下一章进行说明. 一.输 ...

  8. Mybatis核心配置文件xml详解

    <!-- configuration:在dtd约束中? 代表一次或零次+ 代表一次或多次(最少一次,可以多次)* 代表零次或多次(有没有都可以), :逗号 特定的顺序()| :竖杠 任选其一能添 ...

  9. 深入理解mybatis原理, Mybatis初始化SqlSessionFactory机制详解(转)

    文章转自http://blog.csdn.net/l454822901/article/details/51829785 对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外.本章 ...

最新文章

  1. php 错误关闭_五种方法教你如何关闭php错误回显信息
  2. 用ABAP实现SM36的设置后台JOB
  3. IOS 企业版发布后,用户通过sarafi浏览器安装无效的解决方案
  4. adcetris研发历程_抗体类药物质量控制—张伯彦20130730.pdf
  5. 股票市值高好还是低好呢?
  6. 【Java从0到架构师】Filter_Listener_AJAX
  7. oracle 索引快速全扫描,用Oracle 9i全索引扫描快速访问数据
  8. Oracle 向上递归、向下递归
  9. django的 信号
  10. Ubuntu部署KVM服务器
  11. Qt中QScrollArea控件区域与滑动条的颜色不一致设置
  12. 12款网盘搜索神器以备不时之需要
  13. 规范小区电瓶车充电桩的分布保障充电安全
  14. 网易2019年实习生招聘笔试题
  15. 快递查询—API接口
  16. 2020腾讯、百度、华为Android面试题校招汇总(已拿offer
  17. 2019腾讯游戏客户端面试
  18. 【HaaS Python硬件积木】HCSR04超声波测距传感器
  19. result returns more than one elements 解决办法
  20. “凝心聚力,携手共进”辰视智能2021第一期登山公益活动顺利举行

热门文章

  1. 调用NBA赛事API,完成对返回json数据的解析
  2. es6中标签模板实例中的tab函数的理解
  3. 【非技术贴】Laptop到Netbook再到XXpad
  4. bypass disable_function总结学习
  5. 如何在线下载简历模板?手机上怎么下载简历?
  6. 账号“此电话号码无法用于进行验证“
  7. 关于剩余电流动作继电器在配电系统中的应用探讨
  8. 如何写好一篇高质量的paper
  9. 腾讯云部署Minikube
  10. 《J2SE 回炉再造15》-------溺水狗