您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“mybatis sum列名作為參數的實例分析”,內容詳細,步驟清晰,細節處理妥當,希望這篇“mybatis 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平均值的時候可能出現問題。
驗證了很久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列名作為參數的實例分析”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。