当前位置: 首页 > news >正文

mybatis在xml中使用OGNL取值简述

概述

在业务中如果dao层搭配了mybatis,那么通常会将一些业务查询写入到xml中,并且在过滤一些业务条件时会使用OGNL表达式

比如下面这段OGNL表达式

<iftest="null != params.applyTimeStart">and mpa.apply_time>=#{params.applyTimeStart}</if><iftest="null != params.applyTimeEnd">and mpa.apply_time&lt;=#{params.applyTimeEnd}</if>

可以看到在表达式中是通过xxx.xxx的方式取值的;
先说结论,通过get方法获取的值

org.apache.ibatis.reflection.Reflector#getGetInvoker

mybatis:3.5.10

源码分析

思路大致是先从外层查询进去,然后一路debug进去;

我的查询入口是个分页查询,我在中间源码setParameters处打了个断点
com.baomidou.mybatisplus.core.MybatisParameterHandler#setParameters

然后一路往下跟踪到BeanWrapper中的metaClass.getGetInvoker方法,在其中看到了查询get方法的逻辑
org.apache.ibatis.reflection.wrapper.BeanWrapper#getBeanProperty

获取get方法的逻辑
org.apache.ibatis.reflection.Reflector#getGetInvoker

http://www.jsqmd.com/news/166924/

相关文章:

  • ArcGIS大师之路500技---035道路线转面
  • Markdown技术博客写作利器:用Miniconda-Python3.10搭建Jupyter笔记环境
  • SSH连接Jupyter Lab进行远程开发:Miniconda环境下的最佳配置
  • [特殊字符][特殊字符][特殊字符][特殊字符],改个不好惹的微信名
  • Anaconda下载太慢?试试Miniconda+清华镜像极速体验
  • Docker Run命令实战:运行含PyTorch的Miniconda-Python3.10容器
  • 使用Docker和Miniconda-Python3.10打造标准化PyTorch训练容器
  • Jupyter Notebook如何连接远程服务器?SSH+Miniconda实战教学
  • 2025年诚信的杨丰肇家装设计电话推荐榜:杨丰肇家装设计基本信息与案例精选 - 工业推荐榜
  • 清华镜像源配置教程:加速pip和conda双重下载
  • 从Anaconda下载到PyTorch GPU运行:一站式操作手册
  • 网络原理初识
  • Linux系统下Miniconda的安装与初始化全过程图解
  • 从零开始学AI:Miniconda+PyTorch入门级教学视频配套文章
  • Conda env remove删除不再需要的Miniconda环境
  • Miniconda环境迁移实战:复制PyTorch配置到多台服务器
  • OpenAI融资困境与AI数据中心项目技术背景剖析
  • HTML+Python动态网页生成:基于Miniconda-Python3.10的自动化脚本实践
  • 还在熬夜凑文献综述?7款免费AI工具一键生成+真实文献交叉引用!
  • 后Serv-U时代:企业如何选择更安全、高效的文件传输方案?
  • Linux下PyTorch安装教程GPU加速版,配合Miniconda更流畅
  • Markdown+Jupyter:用Miniconda-Python3.10输出高质量技术文档
  • Conda环境管理进阶技巧:隔离PyTorch与TensorFlow不冲突
  • STM32 I2C通信详解:从机地址与寄存器地址的作用
  • GitHub项目如何复现?Miniconda-Python3.10帮你锁定依赖版本
  • 2024年关键CVE漏洞技术解析与防护指南
  • 2025年北京贴车衣靠谱服务商年度排名:贴车衣后能洗车吗 - 工业设备
  • 使用Miniconda-Python3.10镜像轻松部署PyTorch与CUDA开发环境
  • Miniconda更新conda自身命令及注意事项
  • AI全场景医疗系统:为现代医院植入“智慧大脑”