mybatis sum(参数) 列名作为参数的问题
目录
- sum(参数) 列名作为参数
- 注意事项
- mybatis注解sql sum(参数)传参写法
sum(参数) 列名作为参数
项目中有很多个字段,当字段为空的时候,求该列的平均值并赋值给该字段。如:
id | name | age |
当我需要插入一条数据的时候,这条数据的age为空,那么需要先从数据库查询age的平均值,然后赋值给当前的数据。当字段很多的时候就需要列名作为参数查询了
mapper.xml
<select id="getGtAvg" parameterType="java.lang.String" resultType="bigDecimal"> select avg(${columnName}) from tb_chuai where ${columnName} > 0 </select>
DAO
BigDecimal getGtAvg(@Param("columnName") String columnName);
注意事项
1、 聚合函数,如sum、avg等resultType为bigDecimal或者integer类型
2、${}一般用于传输数据库的表名、字段名等,不能使用#{}
3、mysql中的varchar可以进行sum,avg等操作,但是其中的汉字作为0,计算avg平均值的时候可能出现问题。
mybatis注解sql sum(参数)传参写法
验证了很久sum()里面带参数方式 #{参数}一直不行日志显示参数已经传进 但就是加不上去 返回的始终是0
后面换成$(参数)之后就行了
@Select("select sum(${type}) from "+ TABLE_HOUR + " where date_format(`date`,'%Y-%m-%d') = #{date}") public int selectDay2(@Param("date") String date,@Param("type") String type);
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Mybatis中如何使用sum对字段求和
目录 使用sum对字段求和 避免Mybatis sum求和返回null 使用sum对字段求和 如下sql,为计算用户收益总和: <select id="getTotalIncome" resultType="com.lws.test.modules.user.entity.UserIncomeEntity"> select sum(income) as totalIncome from income_log where uid
-
Mybatis中传递多个参数的4种方法总结
前言 现在大多项目都是使用Mybatis了,但也有些公司使用Hibernate.使用Mybatis最大的特性就是sql需要自己写,而写sql就需要传递多个参数.面对各种复杂的业务场景,传递参数也是一种学问. 下面给大家总结了以下几种多参数传递的方法. 方法1:顺序传参法 #{}里面的数字代表你传入参数的顺序. 这种方法不建议使用,sql层表达不直观,且一旦顺序调整容易出错. 方法2:@Param注解传参法 #{}里面的名称对应的是注解 @Param括号里面修饰的名称. 这种方法在参数不多的情况还
-
MyBatis的SUM映射问题及解决
目录 SUM映射问题 原因 解决方式 sum 返回映射问题(sum报表统计接口返回) MyBatis sum 返回值映射 SUM映射问题 当我们根据类别进行统计,返回的数据类型为HashMap<String,Object>,获取数值类型,容易报 java.math.BigDecimal cannot be cast to java.lang.Integer 场景如下: // Mapper层 <select id="selectInfoByTest" resultTyp
-
mybatis sum(参数) 列名作为参数的问题
目录 sum(参数) 列名作为参数 注意事项 mybatis注解sql sum(参数)传参写法 sum(参数) 列名作为参数 项目中有很多个字段,当字段为空的时候,求该列的平均值并赋值给该字段.如: id name age 当我需要插入一条数据的时候,这条数据的age为空,那么需要先从数据库查询age的平均值,然后赋值给当前的数据.当字段很多的时候就需要列名作为参数查询了 mapper.xml <select id="getGtAvg" parameterType
-
mybatis打印SQL,并显示参数的实例
在maven的pom.xml里面添加一下依赖: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>3.2.4.RELEASE</spring.version> <version.slf4j>1.7.6</version.slf4j> <version.logback>1.
-
解析Mybatis连续传递多个参数的方法
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 下面给大家介绍Mybatis连续传递多个参数的方法.具体代码如下所示: // order by 排序 //<![CDATA[ 值 ]]> 过滤符号 //${}方式
-
解决mybatis执行SQL语句部分参数返回NULL问题
今天在写代码的时候发现一个问题:mybatis执行sql语句的时候返回bean的部分属性为null,在数据库中执行该sql语句能够正常返回,把相关代码反反复复翻了个遍,甚至都重启eclipse了,依旧没解决问题,后来网上搜了一下,还真有类似的问题. 闲话少说,直接说问题,该sql语句是自己写的,resultType直接用了该bean全名称,最终导致部分属性显示为null, 原来的写法: <select id="selectByArticle" parametertype=&quo
-
mybatis动态sql之Map参数的讲解
mybatis 动态sql之Map参数 Mapper文件: <mapper namespace="com.cn.shoje.oa.modules.logistics.dao.PurcDao"> <select id="findAll" parameterType="Map" resultType="Purchase"> select * from prod_purchase where 1=1 <
-
mybatis查询语句揭秘之参数解析
一.前言 通过前面我们也知道,通过getMapper方式来进行查询,最后会通过mapperMehod类,对接口中传来的参数也会在这个类里面进行一个解析,随后就传到对应位置,与sql里面的参数进行一个匹配,最后获取结果.对于mybatis通常传参(这里忽略掉Rowbounds和ResultHandler两种类型)有几种方式. 1.javabean类型参数 2.非javabean类型参数 注意,本文是基于mybatis3.5.0版本进行分析. 1.参数的存储 2.对sql语句中参数的赋值 下面将围绕
-
mybatis mapper.xml 注释带参数的坑及解决
目录 mybatis mapper.xml 注释带参数的坑 mybatis的xml中注释需谨慎 报错内容 小结一下 mybatis mapper.xml 注释带参数的坑 最近做一个很简单的统计项目,统计的逻辑产品一直改版,为了便于之后产品返回的时候快速的切换回老版本的逻辑,就给之前的sql注释了直接在下面写了新的sql,注释的时候一般我都习惯性的选中之后Ctrl+/利用编辑器自带的自动注释功能,这个时候编辑器是分两种情况的:情况一是你之前老的sql没有类似<where>这样带特殊尖括号的语句,
-
mybatis调用mysql存储过程(返回参数,单结果集,多结果集)
目录 一.接收一个返回值 注意事项: 存储过程主要分成三类: 二.接收list结果集 三.返回多个结果集 四.第二种配置也可以 一.接收一个返回值 使用Map接收返回参数,output参数放在传入的param中 创建表 DROP TABLE IF EXISTS `demo`; CREATE TABLE `demo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`
-
浅析C/C++中的可变参数与默认参数
千万要注意,C不支持默认参数 C/C++支持可变参数个数的函数定义,这一点与C/C++语言函数参数调用时入栈顺序有关,首先引用其他网友的一段文字,来描述函数调用,及参数入栈: ------------ 引用开始 ------------ C支持可变参数的函数,这里的意思是C支持函数带有可变数量的参数,最常见的例子就是我们十分熟悉的printf()系列函数.我们还知道在函数调用时参数是自右向左压栈的.如果可变参数函数的一般形式是: f(p1, p2, p3, -)那么参数进栈(以及出栈)的顺
随机推荐
- 使用AngularJS来实现HTML页面嵌套的方法
- 解析JavaScript的ES6版本中的解构赋值
- Git 的基本操作、开发流程、实用技巧总结(陈彦贝)
- asp MD5加密方式使用建议
- jQuery1.6 类型判断实现代码
- asp.net中3种验证码示例(实现代码)(数字,数字字母混和,汉字)
- redis数据的两种持久化方式对比
- java ArrayList集合中的某个对象属性进行排序的实现代码
- 在html中引入外部js文件,并调用带参函数的方法
- php 魔术方法使用说明
- php 输入输出流详解及示例代码
- thinkPHP的表达式查询用法详解
- PHP中preg_match函数正则匹配的字符串长度问题
- JS添加或修改控件的样式(Class)实现方法
- Ruby中类变量和实例变量的比较
- 解决SQL Server虚拟内存不足情况
- Linux下安装MariaDB数据库问题及解决方法(二进制版本的安装)
- 详解Android开发之MP4文件转GIF文件
- PHP面向对象五大原则之依赖倒置原则(DIP)详解
- phpredis执行LUA脚本示例代码