日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

异常解析————Parameter metadata not available for the given statement

發布時間:2025/3/12 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 异常解析————Parameter metadata not available for the given statement 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

在將數據存入mysql數據庫時拋出異常:Parameter metadata not available for the given statement。參數元數據對于給定的聲明不可用。

SQL本身并沒有錯誤:

@Autowiredprivate JdbcTemplate jdbc;public Integer saveScenicSequence(ScenicSequence scenic) {String sql = "INSERT IGNORE INTO scenic_sequence(seco_scenic_id, scenic_name, scenic_num, scenic_location, createtime) VALUES(?,?,?,?,?)";Object[] args = { scenic.getSecoScenicId(), scenic.getScenicName(), scenic.getScenicNum(),scenic.getScenicLocation(), System.currentTimeMillis() };return jdbc.update(sql, args);}

調查發現,是因為傳入的對象中個別字段由于不能確定其值因此賦了null,這才會導致存庫錯誤。定位代碼:

解決方法

一招制敵:

#generateSimpleParameterMetadata=true生成簡單的參數元數據 spring.datasource.url=jdbc:mysql://123.57.226.216/secoid?generateSimpleParameterMetadata=true

錯誤原因

MetaData,中文譯名“元數據”,定義數據的數據,指的是數據庫中 庫、 表、 列 的定義信息。

拋出的異常針對的是ParameterMetaData(參數元數據)。參數元數據主要用于獲取sql語句中占位符的相關信息。

參數元數據是通過PreparedStatement.getParameterMetaData()方法獲取。

ParameterMetaData paramMetaData = st.getParameterMetaData();

而mysql驅動默認generateSimpleParameterMetadata=false,在傳入null參數的時候,生成不了有效的元數據,因此才會報錯。

綜上,是關于此異常的簡單解釋。如有疑問請文末留言。

總結

以上是生活随笔為你收集整理的异常解析————Parameter metadata not available for the given statement的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。