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

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

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

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

報(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í),會(huì)把參數(shù)部分用一個(gè)占位符 ? 代替。而 ${} 則只是簡(jiǎn)單的字符串替換。

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

使用group by 分組查詢(xún)返回為null

我在使用mybatis進(jìn)行分組查詢(xún)時(shí)數(shù)據(jù)庫(kù)有數(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>

我在第一次使用時(shí)沒(méi)有添加property導(dǎo)致mybatis返回null,添加后就可以正常返回。

dao層代碼

public List<Map> getDeptByIdStep(Integer id);

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

相關(guān)文章

最新評(píng)論

舒兰市| 寿阳县| 阿克苏市| 车险| 鄂州市| 祁连县| 泊头市| 玉屏| 灌南县| 奉化市| 宁化县| 五大连池市| 太保市| 延安市| 呈贡县| 大新县| 无棣县| 长治县| 弥勒县| 永川市| 兖州市| 沽源县| 四会市| 马鞍山市| 东宁县| 西昌市| 绥化市| 广元市| 漳浦县| 循化| 如皋市| 邮箱| 云阳县| 塔河县| 卓尼县| 麻江县| 南开区| 沁阳市| 商洛市| 福建省| 白水县|