最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis group by substr函數(shù)傳參報(bào)錯的解決

 更新時間:2022年01月21日 12:03:33   作者:羅羅諾亞F  
這篇文章主要介紹了mybatis group by substr函數(shù)傳參報(bào)錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mybatis group by substr傳參報(bào)錯

報(bào)異常

### Cause: java.sql.SQLSyntaxErrorException: ORA-00979: 不是 GROUP BY 表達(dá)式

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 } )

原因

#{} 和 ${} 在預(yù)編譯中的處理是不一樣的。#{} 在預(yù)處理時,會把參數(shù)部分用一個占位符 ? 代替。而 ${} 則只是簡單的字符串替換。

${}有sql注入的風(fēng)險(xiǎn),需謹(jǐn)慎使用。

使用group by 分組查詢返回為null

我在使用mybatis進(jìn)行分組查詢時數(shù)據(jù)庫有數(shù)據(jù),但是mybatis返回為null,使用mybatis版本為3.4.1

解決方法

在resultMap的result標(biāo)簽中添加 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導(dǎo)致mybatis返回null,添加后就可以正常返回。

dao層代碼

public List<Map> getDeptByIdStep(Integer id);

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

兖州市| 娄底市| 丽水市| 会同县| 松潘县| 浦县| 肇庆市| 信阳市| 安仁县| 商丘市| 衡山县| 阜新市| 都兰县| 广东省| 南平市| 涿鹿县| 定结县| 嘉善县| 武功县| 长乐市| 乐都县| 顺昌县| 河北省| 恩施市| 科技| 鄂州市| 苗栗市| 上饶县| 昭觉县| 观塘区| 石景山区| 定安县| 枣强县| 双鸭山市| 阿荣旗| 怀集县| 乐山市| 玛多县| 扬州市| 安庆市| 博兴县|