MyBatis:使用动态查询比较字符串值

2024-04-07

我正在使用 MyBatis 来映射一些需要比较的查询String争论 (myString).

我的地图绘制者界面 is:

public Map<Integer, String> findSomething(@Param("myString") String myString);

My XML如下:

<select id="findSomething" parameterType="String" resultType="Map">
    SELECT column1 as key,
           column2 as value
    FROM my_table
    <where>
         <choose>
            <when test="myString == 'xxx'">
                column3 = 1
            </when>
            <when test="myString == 'yyy'">
                myColumn  = 2
            </when>
            <when test="myString == 'zzz'">
                myColumn  = 3
            </when>
        </choose>
    </where>
    ORDER BY value;
</select>

当我执行此语句时,会引发以下错误:

ERROR [stderr] Caused by: org.apache.ibatis.exceptions.PersistenceException: 
ERROR [stderr] ### Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'myString' in 'class java.lang.String'

A String这样一对比,就臭了。不幸的是,这是数据库建模的方式。

MyBatis 版本:3.2.2


使用 MyBatis 3.2.8 进行测试

<select id="findSomething" parameterType="String" resultType="Map">
    SELECT column1 as key,
           column2 as value
    FROM my_table
    <where>
         <choose>
            <when test='"xxx".equals(myString)'>
                column3 = 1
            </when>
            <when test='"yyy".equals(myString)'>
                myColumn  = 2
            </when>
            <when test='"zzz".equals(myString)'>
                myColumn  = 3
            </when>
        </choose>
    </where>
    ORDER BY value;
</select>

请注意 test 周围的单引号和 de 常量值周围的双引号。如您所见,诀窍是使用 equals。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyBatis:使用动态查询比较字符串值 的相关文章

  • 将 Set> 转换为 HashMap

    在我的代码中的某一时刻 我创建了一个Set
  • 编写代码来处理单词列表并删除单词中的所有空格

    该代码应该检查字符串数组并查看单词之间是否有空格 这是一个例子 every near ing checking food stand value 应改为hold every nearing checking food stand value
  • Javafx-场景快照不显示值和系列

    我制作了一个非常短的应用程序 它使用 javafx 生成图表 应用程序显示正确的值 图表 但当我做快照时 图像仅显示轴和标签 但不显示系列和值 stage setTitle Line Chart Sample final DateAxis
  • Electron 应用程序可以与 java 代码集成吗?

    由于node js仍然缺乏Java中存在的重要功能 因此我想使用Java而不是node js 并使用Web语言 html js css 创建客户端 Electron 是跨平台的 java 也是跨平台的 因此似乎有一个能够两全其美的解决方案
  • 根本原因 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

    我有这个小代码用于将我的 jsp 连接到我的 mysql 数据库 String driver com mysql jdbc Driver Class forName driver String url jdbc mysql localhos
  • 使用简单的 UPDATE 查询“不支持 DML 操作”

    我收到错误Not supported for DML operations当我使用以下 HQL 时 Query UPDATE WorkstationEntity w SET w lastActivity timestamp WHERE w
  • Android ImageView未加载

    我正在使用 android imageView 并将图像放入可绘制文件夹中 并将 imageView 源更改为该图像 但它没有在预览面板中显示图像 当我在 android studio 中打开图片时 它显示这样的错误 但我可以在电脑桌面上打
  • 如何在 Java 中将 hashmap 转换为 JSON 对象 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何在 Java 中将 hashmap 转换或转换为 JSON 对象 然后再次将 JSON 对象转换为 JSON 字符串 您可以使用 new
  • 在处理器生成的类中使用库

    我正在开发一个库来使用注释和处理器生成类 生成的类应该使用Gson来自谷歌的图书馆 我的问题是 我应该在哪里添加 Gson 依赖项 我目前正在将其添加到处理器 build gradle 中 但是当生成类时 找不到 Gson Android
  • CXFServlet 抛出 java.lang.NoSuchMethodError:

    java lang NoSuchMethodError org codehaus stax2 ri EmptyIterator getInstance Lorg codehaus stax2 ri EmptyIterator at com
  • 如何使用 RestTemplate 禁用编码

    我正在使用 REST 模板有意在请求 uri 中发送 例如 items a b String responseEntity restTemplate exchange items a b requestObj getHttpMethod r
  • 杰克逊:引用同一个对象

    在某些情况下 主体 例如 JSON 主体 中序列化或非序列化的数据包含对同一对象的引用 例如 包含球员列表以及由这些球员组成的球队列表的 JSON 正文 players name Player 1 name Player 2 name Pl
  • Java 数组返回奇怪的输出[重复]

    这个问题在这里已经有答案了 我正在为家庭作业问题创建一个方法 该方法返回数组中的最高值 我正在使用一个 for循环将数字输入到数组中 输入代码如下所示 int array new int n for i 0 i
  • Python Peeweeexecute_sql() 示例

    我使用 Peewee 模块作为我的项目的 ORM 我看了整个文档 没有明确的 有关如何处理 db execute sql 结果的示例 我跟踪代码 只能发现db execute sql 返回游标 有谁知道如何处理光标 例如迭代它并获取 返回复
  • 将resourceBundle与外部文件java一起使用

    我一直在阅读有关此问题的其他问题和答案 但我不明白资源边界是如何完全工作的 我认为这与 Joomla 使用多语言选项的方式类似 基本上 您有要阅读的不同语言的不同消息的文件 所以我在 src Lang 文件夹中创建了 System prop
  • 如何动态更新属性文件?

    我的应用程序是一个批处理过程 它从 application properties 文件中提取环境变量 我使用的密码必须每隔几个月更新一次 我想自动化密码更新过程并将更新后的密码保存在属性文件中 以便在将来的运行中使用 但我尝试进行的任何更新
  • MySQL:错误 1215 (HY000):无法添加外键约束

    我读过了数据库系统概念 第六版 西尔伯沙茨 我将在 OS X 上的 MySQL 上实现第 2 章中所示的大学数据库系统 但我在创建表格时遇到了麻烦course 桌子department好像 mysql gt select from depa
  • 如何在 Mulesoft 中将睡眠设置为流程而不丢失消息负载

    我想插入脚本来延迟 Mulesoft 中的处理流程 我尝试在 groovy 中插入脚本 但丢失了消息有效负载 因此当我必须获取消息有效负载时 收到了空指针 我怎样才能不丢失消息有效负载 Thanks 如果您正在使用Groovy流程中的组件
  • 如何创建序列密钥来保护应用程序

    我有一个创建序列密钥的应用程序 如下所示 Take customername Sign customername using privatekey and sha dsa algorithm 然后可以通过使用公钥解码并检查客户名称匹配来检查
  • 无法查找 Websphere 8.5 中是否启用了 SSL

    我编写了一个简单的 ejb 瘦客户端来查找 IBM WebSphere 8 5 中部署的 bean 当服务器上未启用 SSL 时 我能够成功查找 bean 但是一旦启用 SSL 我就开始收到下面提到的异常 This is how I ena

随机推荐

  • 如何区分应用程序退出和系统关闭

    Mac OS X 上的 Java 在 Swing GUI 应用程序中 我想区分应用程序退出和系统关闭 在应用程序退出时 我想显示一个确认对话框 但是当用户选择 系统关闭 时 我只想退出应用程序 因为系统已经出现了一个确认对话框 这在其他平台
  • Python 中的意外列表行为

    我想颠倒一个列表 我成功地做到了 但在工作的过程中我发现了一些奇怪的事情 以下程序按预期工作 但未注释行list reversed i list len list 1 i and 打印 列表 i 评论最后一行当然 导致了改变list 我没看
  • 使用 setInterval() 后出现clearInterval() 未定义错误

    我知道这不应该是内联的 但 YUI 库的对话框迫使我这样做 我的问题是 每当我将鼠标悬停在该 div 上时 左边缘滚动就会激活 但当我将鼠标移出该 div 时 它不会停止 JS 控制台报告 未捕获的引用错误 timerID 未定义 这是代码
  • 如何从 MQTT 生产并在 ActiveMQ 中作为 MQTT 和 JMS 消费

    我有一个设置 其中消息作为 MQTT 生成到 ActiveMQ 我有两个消费者 一个作为 JMS 另一个作为 MQTT 当我将消息作为 JMS 消息发布到主题 foo 时 我在 JMS 和 MQTT 消费者处都收到消息 但是当我在同一主题上
  • make_shared真的比new更高效吗?

    我正在尝试shared ptr and make shared从 C 11 编写了一个小玩具示例来看看调用时实际发生了什么make shared 作为基础设施 我使用 llvm clang 3 0 以及 XCode4 中的 llvm std
  • 共享首选项和微调器不维护状态

    我有一个像这样的旋转器 Spinner 1 final Spinner plan Spinner dialog findViewById R id spinner1 strings getResources getStringArray R
  • Android - 使用外部浏览器在 WebView 中打开目标 _blank 链接

    我建立一个WebView显示一个网站 该网站包含无链接的链接target blank 属性和一些带有它的 我需要打开链接target在外部标准设备浏览器中定义的以及在 WebView 内部没有定义的 我正在使用一个WebViewClient
  • dart 中整数的最大值是多少?

    我到处都找过 但找不到与该主题相关的任何信息 另外 dart 中是否有类似 java 的 Long BigDecimal 数据类型 Dart 2 对于 dart2js 生成的 JavaScript Pixel Elephant 的答案仍然是
  • 在 ruby​​ 中处理大型 CSV 文件 (20G)

    我正在解决一个小问题 并会就如何解决它提供一些建议 给定一个列数和行数未知的 csv 文件 输出包含值的列列表以及每个值重复的次数 不使用任何库 如果文件很小 这应该不是问题 但是当它是几场演出时 我得到 NoMemoryError 无法分
  • 为什么静态方法需要包装到类中?

    对于这个问题的无知性质 我深表歉意 如果有一个简单的答案 只需一个解释链接就会让我非常高兴 经过 6 个月的编程后 我发现静态类对于存储适用于许多不同类的例程有点有用 这是我如何使用静态类的一个简化示例 它是一个用于将文本解析为各种内容的类
  • 如何在 Lighttable 中创建基本的 ClojureScript Hello World 应用程序?

    LightTable 中的文档似乎相当稀疏 我想在 LightTable 中创建一个非常简单的 ClojureScript Web 应用程序作为构建的起点 我让 Clojure 中的 Instarepl 工作正常 然后创建一个名为 dumm
  • 从计算机商店删除证书

    我很难让 powershell 删除意外安装到我们所有 Windows 7 计算机上的计算机商店的证书 作为示例 我提供了证书安装位置的屏幕截图 这不是实际的证书 我们有几百台机器 因此我们希望尽可能自动化地完成此操作 如果有人可以提供一种
  • 请识别此算法:数据流中的概率前 k 个元素

    我记得几年前听说过以下算法 但在网上找不到任何参考 它仅使用 m 个计数器来识别 n 个元素的数据流中的前 k 个元素 或重量级元素 这对于在使用最少内存的情况下查找热门搜索词 网络滥用者等特别有用 算法 对于每个元素 如果该元素还没有计数
  • 加速“最接近”字符串匹配算法

    我目前正在处理一个非常大的位置数据库 并尝试将它们与现实世界的坐标相匹配 为了实现这一点 我下载了地名数据集 https www geonames org export 其中包含很多条目 它给出了可能的名称和纬度 经度坐标 为了尝试加快该过
  • Java 相当于一个类。 == 与 .equals 相同

    我们可以做一个 on a Class变量而不是equals并期望相同的结果 例如 Class clazz xyz Case A if clazz Date class do something Case B if Date class eq
  • jqGrid 传递值到表单编辑

    我有一个 jqGrid 字段 如下所示 colModel name Enabled index Enabled width 45 editable true edittype checkbox editoptions value 1 0 f
  • 安装 laravel --prefer-dist

    我正在他们的网站上关注 Laravel 安装 我遇到了这条线 composer create project laravel laravel prefer dist 现在 到底是什么 prefer dist部分意思是 我在他们的文档中看不到
  • 使用 SpannedgridLayoutManager 后,recyclerView 占用了顶部的大量空间

    我想在 recyclerview 的 Spanned GridLayoutManager 中显示列表数据 但是添加辅助类 Spanned GridLayoutmanager 后 在我的 recycleview 中占用了顶部的大量空间 iam
  • 防止@EnableWebMvc注释的类被@ComponentScan拾取

    我有以下测试类 ActiveProfiles DataTC test RunWith SpringJUnit4ClassRunner class ContextConfiguration classes BaseTestConfigurat
  • MyBatis:使用动态查询比较字符串值

    我正在使用 MyBatis 来映射一些需要比较的查询String争论 myString 我的地图绘制者界面 is public Map