我是靠谱客的博主 辛勤哈密瓜,最近开发中收集的这篇文章主要介绍mybatis的jdbcType和javaType、oracle,MySQL的对应类型  Mybatis中jdbcType和javaType的对应关系Mybatis JdbcType与Oracle、MySql数据类型对应列表,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

JdbcType介绍

数据库列字段都是有类型的,不同的数据库有不同的类型。为了表示这些数据类型,Java源码是采用枚举来定义的:

public enum JDBCType implements SQLType {
TINYINT(Types.TINYINT),
SMALLINT(Types.SMALLINT),
INTEGER(Types.INTEGER)
}

枚举变量也是有类型的,也是有值的,正如整数变量是整数类型,也有值大小一样,上述枚举变量值的定义是通过Types来描述刻画的。

public class Types {
public final static int TINYINT
=
-6;
public final static int SMALLINT
=
5;
public final static int INTEGER
=
4;
}

MyBatis包含的JdbcType类型,主要有下面这些,大致了解一下即可:

BIT、FLOAT、CHAR 、TIMESTAMP 、 OTHER 、UNDEFINEDTINYINT 、REAL 、VARCHAR 、BINARY 、BLOB NVARCHAR、SMALLINT 、DOUBLE 、LONGVARCHAR 、VARBINARY 、CLOB、NCHAR、INTEGER、 NUMERIC、DATE 、LONGVARBINARY 、BOOLEAN 、NCLOB、BIGINT 、DECIMAL 、TIME 、NULL、CURSOR

上述JdbcType类型和Java类型的对应关系,可以参照下面的列表,不过不同数据库的JdbcType多少有些出入,请注意即可。

JDBC Type
Java Type
CHAR
String
VARCHAR
String
LONGVARCHAR
String
NUMERIC
java.math.BigDecimal
DECIMAL
java.math.BigDecimal
BIT
boolean
BOOLEAN
boolean
TINYINT
byte
SMALLINT
short
INTEGER
INTEGER
BIGINT
long
REAL
float
FLOAT
double
DOUBLE
double
BINARY
byte[]
VARBINARY
byte[]
LONGVARBINARY
byte[]
DATE
java.sql.Date
TIME
java.sql.Time
TIMESTAMP
java.sql.Timestamp
CLOB
Clob
BLOB
Blob
ARRAY
Array
DISTINCT
mapping of underlying type
STRUCT
Struct
REF
Ref
DATALINK
java.net.URL

JdbcType类型的作用

在Mybatis明文建议在映射字段数据时需要将JdbcType属性加上,这样相对来说是比较安全的。

<insert id="saveRole">
insert into role values (
#{roleId},
#{name},
#{remarks},
#{orderNo},
#{createBy,jdbcType=VARCHAR},
#{createDept,jdbcType=VARCHAR},
#{createTime,jdbcType=DATE},
#{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=DATE}
)
</insert>

这样,保证了前四种是不能为空的前提下,而后面几项为空时也不至于程序报错。如果createBy为空,插入的时候mybatis不知道具体转换成什么jdbcType类型,通常会使用一个默认设置,虽然默认配置一般情况下不会出错,但是遇到个别情况还是会有问题的。Mybatis经常出现的:无效的列类型: 1111 错误,就是因为没有设置JdbcType造成的。

 

 

MybatisjdbcTypejavaType的对应关系

复制代码
 1 JDBC Type
Java Type
2 CHAR
String
3 VARCHAR
String
4 LONGVARCHAR
String
5 NUMERIC
java.math.BigDecimal
6 DECIMAL
java.math.BigDecimal
7 BIT
boolean
8 BOOLEAN
boolean
9 TINYINT
byte
10 SMALLINT
short
11 INTEGER
int
12 BIGINT
long
13 REAL
float
14 FLOAT
double
15 DOUBLE
double
16 BINARY
byte[]
17 VARBINARY
byte[]
18 LONGVARBINARY
byte[]
19 DATE
java.sql.Date
20 TIME
java.sql.Time
21 TIMESTAMP
java.sql.Timestamp
22 CLOB
Clob
23 BLOB
Blob
24 ARRAY
Array
25 DISTINCT
mapping of underlying type
26 STRUCT
Struct
27 REF
Ref
28 DATALINK
java.net.URL[color=red][/color]
复制代码

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
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和javaType、oracle,MySQL的对应类型  Mybatis中jdbcType和javaType的对应关系Mybatis JdbcType与Oracle、MySql数据类型对应列表的全部内容,希望文章能够帮你解决mybatis的jdbcType和javaType、oracle,MySQL的对应类型  Mybatis中jdbcType和javaType的对应关系Mybatis JdbcType与Oracle、MySql数据类型对应列表所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部