当前位置: 首页 > 知识库问答 >
问题:

MyBatis+Spring xml sql(其中包含关键字)和group by

柳鸿博
2023-03-14

mybatis.xml

<select id="muwbQueryCityAll" parameterType="String" resultType="MonCity">
    SELECT CITY_CODE cityCode, REGION_CODE regionCode, CITY_NAME cityName, ORDER_ID orderId
FROM TB_MON_CITY_DICT where region_code in(#{regionCode}) group by REGION_CODE
</select>

tb_mon_city_dict.region_codeint(11)字符串regionCode=“1,2,3,4,5,6,7,8,9,10”;

库和环境:Spring 3.1.3,MyBatis 3.1.1,MyBatis-Spring 1.1.1,MySQL 5.5

提前道谢。

日志:调试[http-80-4]-返回到数据源的JDBC连接调试[http-80-4]-创建新的SqlSession调试[http-80-4]-SqlSession[org.apache.ibatis.session.defaults.defaultsqlSession@4349816e]未注册同步,因为同步不活动调试[http-80-4]-从数据源调试提取JDBC连接[http-80-4]-JDBC连接[JDBC:mysql://115.28.11.23:3306/EnvMonitor,username=monitor@183.187.94.213,MySQL-AB JDBC Driver]将不由Spring DEBUG[http-80-4]-ooo使用连接[JDBC:mysql://115.28.11.23:3306/envmonitor,username=monitor@183.187.94.213,MySQL-AB JDBC Driver]DEBUG[http-80-4]-==>准备:选择a.coll_Id作为collId,a.item_value1作为itemValue1,a.item_value2作为itemValue2,a.item_value3作为group by coll_Id)b on a.rec_id=b.id DEBUG[http-80-4]-==>参数:1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1011,1012,1013(字符串)DEBUG[http-80-4]-关闭非事务性SqlSession[org.apache.ibatis.session.defaults.defaultsqlsession@4349816e]DEBUG[http-80-4]-返回到数据源MUWB的JDBC连接---------------结果列表.大小()=1

共有1个答案

梁丘兴腾
2023-03-14

它不起作用,因为JDBC的SQL安全注入机制。在hood下,mybatis查询可以归结为JDBC准备的语句。JDBC prepared语句仅用一个值替换占位符,因此只会注入第一个值。详情请参阅SO链接。

 类似资料:
  • 问题内容: 有没有一种方法可以选择其中一列仅包含,但包含任意数量的预定义值的行? 我一直在使用它,但是它返回的行中我的列至少包含一个值(我知道这正是它应该做的)。 但我正在寻找一种方法,仅选择在关键字列中仅包含我的关键字的行。 关键字示例: 使用上述关键字,我希望返回前两个结果,而不是后两个: 我的专栏包含用逗号分隔的适用于该产品行的所有关键字的列表。 问题答案: 由于您将列表存储为包含逗号分隔列

  • 我试图在Flatter Firebase中执行一个“where”查询,以按名称进行过滤(如果对象名为“Una casa roja”,用户写“casa”,则必须返回该对象)。我不知道我能问谁。我只有这个,但不是我想要的: 谢谢

  • 问题内容: 这个问题已经在这里有了答案 : 由于在MySQL中使用保留字作为表或列名而导致的语法错误 (1个答案) 25天前关闭。 我在更新包含HTML数据的MySQL数据时遇到了问题,我不断地修复错误;但是,一旦解决了一个错误,就会产生另一个错误。当前错误如下: 我已经进行了将近3天的Stack Overflow清理工作,但没有任何明确的答案。所以我希望有人能找到这个! 这是我的PHP表单代码:

  • 问题内容: 如果包含关键字,该如何编写整个单词的脚本? 示例: 关键字“ fun”,字符串-鸟很有趣,结果-鸟很有趣*。我做以下 但它只是修饰词。我的鸟是 乐趣 纽约 问题答案: 尝试这个: 匹配关键字前面的任何单词字符(至少)和关键字后面的任何单词字符。 并且我建议您使用转义关键字: 为了支持Unicode,请使用 u 标志,而不要使用:

  • 问题内容: 我正在尝试从parse.com实现一些代码,并且在void后发现一个关键字。 我难住了,这是什么?您在第二行看到 该文档没有对此进行说明。我知道关键字用于循环。 有人确认吗? 问题答案: 在命名函数中,我们声明参数并在声明行中返回类型。 在匿名函数中,没有声明行-它是匿名的!因此,我们在正文的开头使用一行来代替。 (这是匿名函数的 完整 形式。但是Swift拥有一系列规则,允许在某些情

  • 问题内容: 我想找到一个SQL查询来查找其中field1不包含$ x的行。我怎样才能做到这一点? 问题答案: 这是什么领域?IN运算符不能与单个字段一起使用,而应与子查询或预定义列表一起使用: 如果要搜索字符串,请使用LIKE运算符(但这会很慢): 如果将其限制为要搜索的字符串必须以给定的字符串开头,则可以使用索引(如果该字段上有索引)并且速度相当快: