本文小编为大家详细介绍“mybatis sum列名作为参数的实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis 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);
注意事项
聚合函数,如sum、avg等resultType为bigDecimal或者integer类型
${}一般用于传输数据库的表名、字段名等,不能使用#{}
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列名作为参数的实例分析”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。