1. 程式人生 > >druid 連線Oracle時出現的錯誤

druid 連線Oracle時出現的錯誤

轉博主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: 無效字元

2017年04月19日 10:31:38  閱讀數:26420  

maven/Java/web/bootstrapQQ群:566862629。希望更多人一起幫助我學習。

1. 報錯:

  1.   ### Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 無效字元
  2.    
  3.   ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00911: 無效字元
  4.    

2.出錯 原因:

1)  sql在資料庫執行都是OK的。  

真正的原因是: 在mybatis 中sql結尾處多了一個" ; " 去掉就可以了。

2)  mybatis ,我查出的資料在resultMap中沒有對應的對映欄位來匹配,查到的結果無法全部填充到物件屬性才報錯的。

即:

  1.   SELECT
  2.   DISTINCT allData.time AS CREATE_DATE,
  3.   allData.FORMAT AS FORMAT,
  4.   allData.ORDER_TYPE AS ORDER_TYPE,
  5.   allData.ORDER_TYPE_DEC AS ORDER_TYPE_DEC,
  6.   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 *即可。