记录使用mybatis时一个奇怪的问题
问题群友发出求助,说代码明明给变量赋值为2但是执行完查询语句之后又变成4了,代码晒出来后一头问号。看起来就是正常的代码,怎么会这样呢。先来看一下代码示例: 1234567public void select(PickingDTO pickingDTO) { pickingDTo.setDocumentstate("2"); List<JneProductionPickingLine> pickingLineList = pickingLineMapper.findProductionPickingLineList(pickingDTO); for (JneProductionPickingLine jpl : pickingLineList) { // 一些处理... }} 大概是这样的一点代码,经过debug排查发现只要mapper的findProductionPickingLineList 方法一执行pickingDTO 的documentstate 属性就会变成4。代码就这两行, ...
初识jsqlParse
jsqlParse初识最近公司在整多租户的事情时遇到些问题,排查过程中认识到了jsqlParse这个东西,感觉比较好玩,就稍微研究一下。 jsqlParse的官方描述 JSQLParser是一个基于 JavaCC 构建的 SQL 语句解析器。它将 SQL 转换为可遍历的 Java 类层次结构。 JavaCC(Java Compiler Compiler)是一个开源的语法分析器生成器和词法分析器生成器。JavaCC根据输入的文法生成由Java语言编写的分析器。 JSqlParser是一个与 RDBMS 无关的 SQL 语句解析器。它将 SQL 语句转换为可遍历的 Java 类层次结构。纯机翻 RDBMS的全拼是Relational Database Management System,从字面上可以理解为关系数据库管理系统。 看介绍可以了解到jsqlParse的功能就是把sql语句转化为Java中的类结构,所以在mybatis plus中很多增强处理中都是使用这个解析sql做处理。 应用方式本文以mybties plus多租户拦截器为引入,写下一些多租户中使用jsql相关功能 ...