1. 程式人生 > 程式設計 >MyBatis JdbcType 與Oracle、MySql資料型別對應關係說明

MyBatis JdbcType 與Oracle、MySql資料型別對應關係說明

1. 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 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的資料型別中(或許由於自己遺漏),不過不用擔心,後續大家碰到再具體分析;同時上述對應關係不一定是一一對應,請大家瞭解。

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

2. Mybatis JdbcType官方文件

Mybatis JdbcType官方文件

MyBatis JdbcType 與Oracle、MySql資料型別對應關係說明

查閱Mybatis JdbcType官方文件是很有必要的!

3. 說明

對於自己不肯定的,調整程式碼多嘗試下,能夠使自己加深印象!

4. 更新日誌

2017-04-26 修改內容:MySQL中沒有CLOB型別,謝謝@火靈 指正。

Mybatis JdbcType Oracle MySql
JdbcType CLOB CLOB CLOB–>修改為TEXT

補充知識:MyBatis 指定JdbcType. 如#{name,jdbcType=VARCHAR}

在執行SQL時MyBatis會自動通過物件中的屬性給SQL中引數賦值,它會自動將Java型別轉換成資料庫的型別。而一旦傳入的是null 程式就無法準確判斷這個型別應該是什麼(是Integer?是VARCHAR?還是別的?),就有可能將型別轉換錯誤,從而報錯。

加入jdbcType正是為了解決這樣的報錯,需要針對這些可能為空的欄位,手動指定其轉換時用到的型別。

一般情況下,我們沒有必要按個欄位去識別/判斷它是否可以為空,而是將所有的欄位都當做可以為空,全部手動設定轉換型別。

 <insert id="save"
parameterType="com.tarena.entity.Cost">
insert into cost values(
cost_seq.nextval,#{name,jdbcType=VARCHAR},#{base_duration,jdbcType=INTEGER},#{base_cost,jdbcType=DOUBLE},#{unit_cost,#{status,jdbcType=CHAR},#{descr,#{creatime,jdbcType=TIMESTAMP},#{startime,#{cost_type,jdbcType=CHAR}
)
</insert>

其他資料型別參照下圖

MyBatis JdbcType 與Oracle、MySql資料型別對應關係說明

以上這篇MyBatis JdbcType 與Oracle、MySql資料型別對應關係說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。