druid 連線Oracle時出現的錯誤
阿新 • • 發佈:2018-12-15
轉博主https://blog.csdn.net/jiangyu1013/article/details/70237550#commentsedit
mysql 更新 SQL 語句 無錯誤 批量 報錯bad SQL grammar []錯誤
2018年06月14日 14:02:17 劉成江 閱讀數:537更多 個人分類: java解決bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00911: 無效字元
maven/Java/web/bootstrapQQ群:566862629。希望更多人一起幫助我學習。
1. 報錯:
- ### Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 無效字元
- ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00911: 無效字元
2.出錯 原因:
1) sql在資料庫執行都是OK的。
真正的原因是: 在mybatis 中sql結尾處多了一個" ; " 去掉就可以了。
2) mybatis ,我查出的資料在resultMap中沒有對應的對映欄位來匹配,查到的結果無法全部填充到物件屬性才報錯的。
即:
- SELECT
- DISTINCT allData.time AS CREATE_DATE,
- allData.FORMAT AS FORMAT,
- allData.ORDER_TYPE AS ORDER_TYPE,
- allData.ORDER_TYPE_DEC AS ORDER_TYPE_DEC,
- allData.ACCOUNT AS ACCOUNT....
中FORMAT 對應的 <result property="format" column="FORMAT" jdbcType="INTEGER" /> 忘了寫了。
轉博主https://blog.csdn.net/u010308285/article/details/80691910 mapper.xml
<update id="removeFalse">
<foreach collection="msid" separator=";" item="item">
UPDATE
on_meeting_auction SET
remove_false = 0
WHERE meeting_source_id =#{item}
</foreach>
</update>
看似似乎沒有一點問題,這裡用到了Mybatis的動態sql,實際上說白了也就是拼sql,不過這個繁雜的工作交給Mybatis幫我們去做了。可是,只要一執行就要報語法錯誤。除錯了好久.
解決方案
後來發現,原來mysql的批量更新是要我們主動去設定的, 就是在資料庫的連線url上設定一下,加上* &allowMultiQueries=true *即可。