


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第MyBatis版本升級導致OffsetDateTime入參解析異常問題復盤以OffsetDateTime為例,只需要參考或者直接使用3.4.5版本中的MyBatis的OffsetDateTimeTypeHandler,然后通過配置直接覆蓋內置實現即可。
//假設全類名為club.throwable.OffsetDateTimeTypeHandler
publicclassOffsetDateTimeTypeHandlerextendsBaseTypeHandlerOffsetDateTime{
@Override
publicvoidsetNonNullParameter(PreparedStatementps,inti,OffsetDateTimeparameter,JdbcTypejdbcType)
throwsSQLException{
ps.setTimestamp(i,Timestamp.from(parameter.toInstant()));
@Override
publicOffsetDateTimegetNullableResult(ResultSetrs,StringcolumnName)throwsSQLException{
Timestamptimestamp=rs.getTimestamp(columnName);
returngetOffsetDateTime(timestamp);
@Override
publicOffsetDateTimegetNullableResult(ResultSetrs,intcolumnIndex)throwsSQLException{
Timestamptimestamp=rs.getTimestamp(columnIndex);
returngetOffsetDateTime(timestamp);
@Override
publicOffsetDateTimegetNullableResult(CallableStatementcs,intcolumnIndex)throwsSQLException{
Timestamptimestamp=cs.getTimestamp(columnIndex);
returngetOffsetDateTime(timestamp);
privatestaticOffsetDateTimegetOffsetDateTime(Timestamptimestamp){
if(timestamp!=null){
//這里可以考慮自定義系統的時區,例如ZoneId.of("Asia/Shanghai")
returnOffsetDateTime.ofInstant(timestamp.toInstant(),ZoneId.systemDefault());
returnnull;
}
配置文件中進行TypeHandler配置覆蓋,下面是類路徑下配置文件mybatis-config.xml的示例:
xmlversion="1.0"encoding="UTF-8"
!DOCTYPEconfigurationPUBLIC"-////DTDConfig3.0//EN""/dtd/mybatis-3-config.dtd"
configuration
settings
!--下劃線轉駝峰--
settingname="mapUnderscoreToCamelCase"value="true"/
!--未知列映射忽略--
settingname="autoMappingUnknownColumnBehavior"value="NONE"/
/settings
typeHandlers
!--覆蓋內置OffsetDateTimeTypeHandler--
typeHandlerhandler="throwable.club.OffsetDateTimeTypeHandler"/
/typeHandlers
/configuration
其他類型解析異常都可以參照此思路進行兼容。
小結
升級基礎框架版本需要謹慎。另外,文中提到的解決方案只是筆者目前通過問題分析和定位得到的一種相對合
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CIQA 87-2024煤和焦炭試驗配比和結果計算方法
- 官方的室內裝修施工合同3篇
- 擔保合同擔保合同(一)6篇
- 精裝房屋抵押借貸合同10篇
- 新建鐵路工程勞務協作合同3篇
- 鋼增強塑料復合管項目績效評估報告
- 高效節能電動機項目績效評估報告
- 小學第33個愛國衛生月主題活動
- 服裝設計高端時尚
- 兒歌表演唱教學設計
- 酒店籌開期操作手冊(業主代表小組適用)
- 城市生活垃圾衛生填埋場運行管理培訓
- 2023年《早》舒淇早期古裝掰全照原創
- 部編版六年級語文下冊根據語境寫詞語(小升初歸類練習)
- 人工智能之知識庫
- 張哲華鑫仔小品《警察和我》臺詞劇本手稿
- 中等職業學校英語課程標準(2020年版)(word精排版)
- 畢業生就業推薦表word模板
- 南京市特種設備安全監督檢驗研究院公開招考5名編外工作人員模擬檢測試卷【共1000題含答案解析】
- 2023年八年級生物學業水平考試復習試卷
- YY/T 1685-2020氣動脈沖振蕩排痰設備
評論
0/150
提交評論