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官方文檔是很有必要的!
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,jdbcType=DOUBLE},#{status,jdbcType=CHAR},#{descr,jdbcType=VARCHAR},#{creatime,jdbcType=TIMESTAMP},#{startime,jdbcType=TIMESTAMP},#{cost_type,jdbcType=CHAR})</insert>
其他數據類型參照下圖
以上這篇MyBatis JdbcType 與Oracle、MySql數據類型對應關系說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
