工作經驗:mybatis 處理 oracle Long 類型

來源:互聯網
上載者:User

標籤:tis   block   技術分享   地方   long   注意   extends   mes   資料類型   

前言:mybatis 接收 oracle 中 LONG 類型的,報錯:無效的列類型: getCLOB not implemented for class oracle.jdbc.driver.T4CLongAccessor

情況

  oracle 表中有個欄位為 LONG 類型,LONG 資料類型中儲存的是可變長字串,最大長度限制是2GB。(具體詳解可以百度)

  由於資料庫中的這張表是別的地方提供的,不能修改,只能查詢,所以不能修改 oracle 表中這個欄位的類型。

  所以只能處理當前問題。當前問題如下:java 實體使用 String 類型接ItemE,mybatis sql 中使用 resultMap 形式,sql resultMap 如下

<resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.yule.demo">        <result column="ITEM_E" property="itemE" jdbcType="LONGVARCHAR"/>    </resultMap>

  然後查詢 sql 報錯:

解決方案

  將 sql 中的 LONGVARCHAR 改為 LONGVARBINARY 即可。

<result column="ITEM_E" property="itemE" jdbcType="LONGVARBINARY"/>

 

 補充(轉 http://blog.csdn.net/loongshawn/article/details/50496460)Mybatis JdbcType與Oracle、MySql資料類型對應列表

 

Mybatis JdbcType Oracle MySql
JdbcType ARRAY    
JdbcType BIGINT   BIGINT
JdbcType BINARY    
JdbcType BIT   BIT
JdbcType BLOB BLOB BLOB
JdbcType BOOLEAN    
JdbcType CHAR CHAR CHAR
JdbcType CLOB CLOB TEXT
JdbcType CURSOR    
JdbcType DATE DATE DATE
JdbcType DECIMAL DECIMAL DECIMAL
JdbcType DOUBLE NUMBER DOUBLE
JdbcType FLOAT FLOAT FLOAT
JdbcType INTEGER INTEGER INTEGER
JdbcType LONGVARBINARY    
JdbcType LONGVARCHAR LONG VARCHAR  
JdbcType NCHAR NCHAR  
JdbcType NCLOB NCLOB  
JdbcType NULL    
JdbcType NUMERIC NUMERIC/NUMBER NUMERIC/
JdbcType NVARCHAR    
JdbcType OTHER    
JdbcType REAL REAL REAL
JdbcType SMALLINT SMALLINT SMALLINT
JdbcType STRUCT    
JdbcType TIME   TIME
JdbcType TIMESTAMP TIMESTAMP TIMESTAMP/DATETIME
JdbcType TINYINT   TINYINT
JdbcType UNDEFINED    
JdbcType VARBINARY    
JdbcType VARCHAR VARCHAR VARCHAR

 

注意到, MyBatis的JdbcType中部分沒有對應到Oracle和Mysql的資料類型中(或許由於自己遺漏),不過不用擔心,後續大家碰到再具體分析;同時上述對應關係不一定是一一對應,請大家瞭解。

大家主要掌握基本的數字、時間、字串就足以應對日常開發了。

 

  

工作經驗:mybatis 處理 oracle Long 類型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.