欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis查詢oracle long類型的踩坑記錄

 更新時間:2023年03月30日 10:13:56   作者:zhg520zhg  
這篇文章主要介紹了mybatis查詢oracle long類型的踩坑記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mybatis查詢oracle long類型的坑

問題描述

最近在開發(fā)中,遇到查詢oracle long類型異常的問題,需求是查詢一個字段中含有函數(shù)的索引的內(nèi)容,然后通過mybatis獲取返回的內(nèi)容封裝成對象,其中l(wèi)ong類型在對象中用String接收,COLUMN_EXPRESSION字段為long類型,供后續(xù)業(yè)務使用,自定義查詢語句如下

select a.COLUMN_EXPRESSION, a.COLUMN_POSITION from USER_IND_EXPRESSIONS a
inner join USER_IND_COLUMNS b on b.INDEX_NAME = a.INDEX_NAME
and b.TABLE_NAME = a.TABLE_NAME and b.COLUMN_POSITION = a.COLUMN_POSITION
where b.COLUMN_NAME like 'SYS_NC%$'

報錯:Cause: java.sql.SQLException: 流已被關閉 ; uncategorized SQLException for SQL []; SQL state [99999]; error code [17027]; 流已被關閉

解決辦法

如果可以修改字段類型情況下,建議改成BLOB,CLOB,NLOB,非常不建議使用LONG;

在無法修改字段類型情況下,一定要將LONG類型字段放在查詢字段的最后(COLUMN_EXPRESSION放在最后),例如

select a.COLUMN_POSITION, a.COLUMN_EXPRESSION from USER_IND_EXPRESSIONS a
inner join USER_IND_COLUMNS b on b.INDEX_NAME = a.INDEX_NAME
and b.TABLE_NAME = a.TABLE_NAME and b.COLUMN_POSITION = a.COLUMN_POSITION
where b.COLUMN_NAME like 'SYS_NC%$'

收獲: 

Oracle中如果是數(shù)值,用NUMBER替換LONG,如果是大對象可以用BLOB,CLOB,NLOB替換LONG;其實查詢時還可以通過存儲過程將LONG轉(zhuǎn)成VARCHAR2返回,個人不建議使用存儲過程。

mybatis處理Oracle中的LONG字段

當使用mybatis查詢oracle中帶有LONG數(shù)據(jù)類型的時候,實體類使用的是String類型來接收.

一般會報兩種錯誤:

  • 1.無效字段類型  
  • 2.流已被關閉

處理方法

第一種方式:不使用LONG類型(廢話)

第二種方式:自定義函數(shù)將LONG類型轉(zhuǎn)換為VARCHAR類型(百度,方法一大堆,都是)

第三種方式:首先在Mapper.xml文件中自定義resultMap映射關系,將LONG類型字段的jdbcType設置為LONGVARBINARY

<resultMap id="BaseResultMap" type="com.libstar.tc.dto.Biblios" >
? ? <result column="name" property="bookrecno" jdbcType="VARCHAR" />
? ? <result column="content" property="content" jdbcType="LONGVARBINARY" />
</resultMap>

然后自定義SQL查詢數(shù)據(jù),在寫SQL的時候要注意了,將LONG類型的那個字段寫在最后,像這樣

SELECT ID,NAME,CONTENT FROM XXX;其中CONTENT字段為LONG類型字段.

即可成功~

總結(jié)

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

相關文章

  • Java 關系運算符詳情及案例(下)

    Java 關系運算符詳情及案例(下)

    這篇文章主要介紹了Java 關系運算符詳情及案例的實現(xiàn),主要續(xù)上篇文章,上一篇文章我們講到“等于”運算符 (==)、“不等于”運算符(!=)、“大于”運算符(>) ,這篇文章繼續(xù)給大家講解相關知識,需要的朋友可以參考一下
    2021-12-12
  • Spring Bean常用依賴注入方式詳解

    Spring Bean常用依賴注入方式詳解

    這篇文章主要介紹了Spring Bean常用三種依賴注入方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • spring boot(四)之thymeleaf使用詳解

    spring boot(四)之thymeleaf使用詳解

    Thymeleaf 是一個跟 Velocity、FreeMarker 類似的模板引擎,它可以完全替代 JSP 。接下來通過本文給大家介紹spring boot(四)之thymeleaf使用詳解,需要的朋友可以參考下
    2017-05-05
  • 淺談一下Java線程組ThreadGroup

    淺談一下Java線程組ThreadGroup

    ThreadGroup是為了方便線程管理出現(xiàn)了,可以統(tǒng)一設定線程組的一些屬性,比如setDaemon,設置未處理異常的處理方法,設置統(tǒng)一的安全策略等等,需要的朋友可以參考下
    2023-05-05
  • 深入理解Java class文件格式_動力節(jié)點Java學院整理

    深入理解Java class文件格式_動力節(jié)點Java學院整理

    對于理解JVM和深入理解Java語言, 學習并了解class文件的格式都是必須要掌握的功課
    2017-06-06
  • Springboot接口參數(shù)校驗的方法

    Springboot接口參數(shù)校驗的方法

    在設計接口時我們通常需要對接口中的非法參數(shù)做校驗,以降低在程序運行時因為一些非法參數(shù)而導致程序發(fā)生異常的風險,這篇文章給大家介紹Springboot接口參數(shù)校驗的方法,感興趣的朋友一起看看吧
    2024-03-03
  • Java實現(xiàn)深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)算法

    Java實現(xiàn)深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)算法

    深度優(yōu)先搜索(DFS)和廣度優(yōu)先搜索(BFS)是兩種基本的圖搜索算法,可用于圖的遍歷、路徑搜索等問題。DFS采用棧結(jié)構(gòu)實現(xiàn),從起點開始往深處遍歷,直到找到目標節(jié)點或遍歷完整個圖;BFS采用隊列結(jié)構(gòu)實現(xiàn),從起點開始往廣處遍歷,直到找到目標節(jié)點或遍歷完整個圖
    2023-04-04
  • Springboot項目對數(shù)據(jù)庫用戶名密碼實現(xiàn)加密過程解析

    Springboot項目對數(shù)據(jù)庫用戶名密碼實現(xiàn)加密過程解析

    這篇文章主要介紹了Springboot項目對數(shù)據(jù)庫用戶名密碼實現(xiàn)加密過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • springboot+jwt+微信小程序授權(quán)登錄獲取token的方法實例

    springboot+jwt+微信小程序授權(quán)登錄獲取token的方法實例

    本文主要介紹了springboot+jwt+微信小程序授權(quán)登錄獲取token的方法實例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 淺談web服務器項目中request請求和response的相關響應處理

    淺談web服務器項目中request請求和response的相關響應處理

    這篇文章主要介紹了淺談web服務器項目中request請求和response的相關響應處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論