我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mybatis group by substr函数传参报错怎么解决

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mybatis group by substr函数传参报错怎么解决

这篇文章主要介绍“mybatis group by substr函数传参报错怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mybatis group by substr函数传参报错怎么解决”文章能帮助大家解决问题。

mybatis group by substr传参报错

报异常

### Cause: java.sql.SQLSyntaxErrorException: ORA-00979: 不是 GROUP BY 表达式

SELECT    SUBSTR( region_code, 1,#{ queryMap.groupCodeLength, jdbcType = INTEGER } ) AS "region_code",    count( CASE WHEN TYPE = 1 THEN 0 END ) AS "like",    count( CASE WHEN TYPE = 2 THEN 0 END ) AS "roast" FROM    t_pub_sentiment WHERE    1 = 1 GROUP BY    SUBSTR(region_code,1,#{ queryMap.groupCodeLength,jdbcType = INTEGER })

更改后:

SELECT    SUBSTR( region_code, 1, $ { queryMap.groupCodeLength } ) AS "region_code",    count( CASE WHEN TYPE = 1 THEN 0 END ) AS "like",    count( CASE WHEN TYPE = 2 THEN 0 END ) AS "roast" FROM    t_pub_sentiment WHERE    1 = 1 GROUP BY    SUBSTR( region_code, 1, $ { queryMap.groupCodeLength } )

原因

#{} 和 ${} 在预编译中的处理是不一样的。#{} 在预处理时,会把参数部分用一个占位符 ? 代替。而 ${} 则只是简单的字符串替换。

${}有sql注入的风险,需谨慎使用。

使用group by 分组查询返回为null

我在使用mybatis进行分组查询时数据库有数据,但是mybatis返回为null,使用mybatis版本为3.4.1

解决方法

在resultMap的result标签中添加 property属性

如下:

<resultMap id="deptMap" type="java.util.Map">        <result column="id" property="id"/>        <result column="dept_name" property="deptname"/>        <result column="count(1)" property="count"/>    </resultMap>   <select id="getDeptByIdStep" resultMap="deptMap">  select  id,dept_name,count(1)  from tbl_dept where dept_id=#{id} group by id; </select>

我在第一次使用时没有添加property导致mybatis返回null,添加后就可以正常返回。

dao层代码

public List<Map> getDeptByIdStep(Integer id);

关于“mybatis group by substr函数传参报错怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mybatis group by substr函数传参报错怎么解决

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mybatis group by substr函数传参报错怎么解决

这篇文章主要介绍“mybatis group by substr函数传参报错怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mybatis group by substr函数传参报错怎么解决”
2023-06-28

php scandir函数报错怎么解决

如果PHP的scandir函数报错,可能是因为以下几个原因:权限问题:确保要扫描的目录具有适当的权限,PHP脚本具有读取目录的权限。目录不存在:检查要扫描的目录是否存在,确保路径是正确的。内存问题:如果要扫描的目录中包含大量文件,可能会导致
php scandir函数报错怎么解决
2024-03-11

sql isnull函数报错怎么解决

在SQL中,ISNULL函数用于判断一个表达式是否为NULL,并在其为NULL时返回指定的值。如果ISNULL函数报错,可能是因为以下原因:函数名称不正确:确保使用的是正确的函数名称,ISNULL函数在不同的数据库系统中可能有不同的名称,如
sql isnull函数报错怎么解决
2024-04-09

c++中transform函数报错怎么解决

在C++中,transform函数用于将一个序列中的元素转换为另一种形式,并将结果存储在另一个序列中。如果transform函数报错,可能是因为参数传递有误或者转换函数有误。以下是一些常见的解决方法:确保传递给transform函数的参数
c++中transform函数报错怎么解决
2024-03-02

PHP中mysqli_num_rows函数报错怎么解决

在PHP中,mysqli_num_rows函数用于获取查询结果的行数。如果该函数报错,通常是因为传递给该函数的参数不正确或者查询语句有误。解决方法如下:确保你已正确连接到数据库,并获得有效的连接对象。可以使用mysqli_connect函
PHP中mysqli_num_rows函数报错怎么解决
2024-04-09

mysql创建函数报错怎么解决

当在MySQL中创建函数时,可能会遇到各种错误。以下是一些常见的错误和解决方法:错误:函数已经存在解决方法:如果函数已经存在,则可以使用DROP FUNCTION语句删除函数,然后重新创建函数。错误:语法错误解决方法:检查函数的语法是否
mysql创建函数报错怎么解决
2024-04-09

Tensorflow中saver.restore函数报错怎么解决

当使用 saver.restore 函数时,可能会遇到一些常见的错误。以下是一些常见的问题和解决方法:文件路径错误:确保你提供的文件路径是正确的,包括文件名和路径都是正确的。模型结构不匹配:如果你在保存模型时使用了 tf.train.Sav
Tensorflow中saver.restore函数报错怎么解决
2024-04-03

php中iconv函数报错怎么解决

本篇内容介绍了“php中iconv函数报错怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法:1、在函数的第二个参数后添加“//IG
2023-06-30

R语言rbind函数报错怎么解决

当使用rbind函数合并数据框时,常见的错误可能是数据框的列数不匹配。解决这个问题的方法是确保要合并的数据框具有相同的列名和列数。如果列名不匹配,可以使用colnames()函数来统一列名;如果列数不匹配,可以使用cbind()函数添加空列
R语言rbind函数报错怎么解决
2024-03-02

使用python append函数报错怎么解决

当使用Python的`append()`函数时,有以下几个常见的错误和解决方法:`AttributeError: 'NoneType' object has no attribute 'append'`: 这个错误意味着你正在尝试在一个`N
2023-10-27

oracle中dateadd函数使用报错怎么解决

在Oracle数据库中并没有内置的DATEADD函数,因此如果您尝试使用DATEADD函数会出现报错。在Oracle数据库中,您可以使用类似于下面这样的语法来增加或减少日期:SELECT SYSDATE + INTERVAL '
oracle中dateadd函数使用报错怎么解决
2024-05-21

c++中使用swap函数报错怎么解决

在 C++ 中使用 swap 函数报错可能有多种原因,以下是一些常见的解决方法:确保你包含了正确的头文件:swap 函数位于 头文件中,所以在使用 swap 函数之前,需要包含该头文件。#include
c++中使用swap函数报错怎么解决
2024-02-29

python函数运行不过也不报错怎么解决

当Python函数运行不过也不报错时,可能是函数中存在一些问题导致程序无法正常执行。以下是一些可能的解决方案:1. 检查函数的输入和输出:确保函数的输入参数与函数体内部的处理逻辑一致,并且返回值的类型和格式符合预期。可以使用print语句在
2023-08-29

python自定义函数报错未定义怎么解决

当你调用一个自定义函数时出现 "未定义" 的错误,可能是因为以下几个原因:1. 函数没有被正确定义:确保你在调用函数之前已经正确定义了该函数。函数定义应该在调用之前,通常是在代码的顶部或者在调用函数的代码之前。2. 函数定义在了错误的位置:
2023-10-10

C语言错误信息报告strerror函数和perror函数怎么解决

本文小编为大家详细介绍“C语言错误信息报告strerror函数和perror函数怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言错误信息报告strerror函数和perror函数怎么解决”文章能帮助大家解决疑惑,下面跟着小编的
2023-07-05

Mysql中使用sum()函数返回null报错怎么解决

本篇内容介绍了“Mysql中使用sum()函数返回null报错怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!介绍SUM()函数用于计
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录