MyBatis JdbcType 與Oracle、MySql數(shù)據(jù)類型對(duì)應(yīng)關(guān)系說明
1. Mybatis JdbcType與Oracle、MySql數(shù)據(jù)類型對(duì)應(yīng)列表
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中部分沒有對(duì)應(yīng)到Oracle和Mysql的數(shù)據(jù)類型中(或許由于自己遺漏),不過不用擔(dān)心,后續(xù)大家碰到再具體分析;同時(shí)上述對(duì)應(yīng)關(guān)系不一定是一一對(duì)應(yīng),請(qǐng)大家了解。
大家主要掌握基本的數(shù)字、時(shí)間、字符串就足以應(yīng)對(duì)日常開發(fā)了。
2. Mybatis JdbcType官方文檔
Mybatis JdbcType官方文檔
查閱Mybatis JdbcType官方文檔是很有必要的!
3. 說明
對(duì)于自己不肯定的,調(diào)整代碼多嘗試下,能夠使自己加深印象!
4. 更新日志
2017-04-26 修改內(nèi)容:MySQL中沒有CLOB類型,謝謝@火靈 指正。
Mybatis JdbcType Oracle MySql JdbcType CLOB CLOB CLOB?>修改為TEXT補(bǔ)充知識(shí):MyBatis 指定JdbcType. 如#{name,jdbcType=VARCHAR}
在執(zhí)行SQL時(shí)MyBatis會(huì)自動(dòng)通過對(duì)象中的屬性給SQL中參數(shù)賦值,它會(huì)自動(dòng)將Java類型轉(zhuǎn)換成數(shù)據(jù)庫的類型。而一旦傳入的是null 程序就無法準(zhǔn)確判斷這個(gè)類型應(yīng)該是什么(是Integer?是VARCHAR?還是別的?),就有可能將類型轉(zhuǎn)換錯(cuò)誤,從而報(bào)錯(cuò)。
加入jdbcType正是為了解決這樣的報(bào)錯(cuò),需要針對(duì)這些可能為空的字段,手動(dòng)指定其轉(zhuǎn)換時(shí)用到的類型。
一般情況下,我們沒有必要按個(gè)字段去識(shí)別/判斷它是否可以為空,而是將所有的字段都當(dāng)做可以為空,全部手動(dòng)設(shè)置轉(zhuǎn)換類型。
<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>
其他數(shù)據(jù)類型參照下圖
以上這篇MyBatis JdbcType 與Oracle、MySql數(shù)據(jù)類型對(duì)應(yīng)關(guān)系說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 基于PHP做個(gè)圖片防盜鏈2. ASP.NET MVC把數(shù)據(jù)庫中枚舉項(xiàng)的數(shù)字轉(zhuǎn)換成文字3. asp.net core 認(rèn)證和授權(quán)實(shí)例詳解4. XML在語音合成中的應(yīng)用5. .NET中實(shí)現(xiàn)對(duì)象數(shù)據(jù)映射示例詳解6. 基于javaweb+jsp實(shí)現(xiàn)企業(yè)車輛管理系統(tǒng)7. ASP.NET MVC使用Boostrap實(shí)現(xiàn)產(chǎn)品展示、查詢、排序、分頁8. 如何使用ASP.NET Core 配置文件9. jscript與vbscript 操作XML元素屬性的代碼10. php使用正則驗(yàn)證密碼字段的復(fù)雜強(qiáng)度原理詳細(xì)講解 原創(chuàng)
