GVKun编程网logo

MyBatis常用的jdbcType数据类型(mybatis jdbctype数据类型)

8

本文将为您提供关于MyBatis常用的jdbcType数据类型的详细介绍,我们还将为您解释mybatisjdbctype数据类型的相关知识,同时,我们还将为您提供关于ibatis/Mybatis配备调

本文将为您提供关于MyBatis常用的jdbcType数据类型的详细介绍,我们还将为您解释mybatis jdbctype数据类型的相关知识,同时,我们还将为您提供关于ibatis/Mybatis 配备调用存储过程,jdbctype配置、Mybaitis JdbcType 和javaType、MyBatis JdbcType 与Oracle、MySql数据类型对照表、Mybatis JdbcType与Oracle、MySql 数据类型对应关系的实用信息。

本文目录一览:

MyBatis常用的jdbcType数据类型(mybatis jdbctype数据类型)

MyBatis常用的jdbcType数据类型(mybatis jdbctype数据类型)

这篇文章主要介绍了MyBatis常用的jdbcType数据类型的相关资料,需要的朋友可以参考下

MyBatis 通过包含的jdbcType类型

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

Mybatis中javaType和jdbcType对应和CRUD例子

Mybatis中javaType和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 int 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[color=red][/color]

以上所述是小编给大家介绍的MyBatis常用的jdbcType数据类型,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小编网站的支持!

ibatis/Mybatis 配备调用存储过程,jdbctype配置

ibatis/Mybatis 配备调用存储过程,jdbctype配置

ibatis 配置调用存储过程,jdbctype配置

 

数据库存储过程如下:

procedure p_project_details_stat
(
i_date_start in varchar2,
i_date_end in varchar2,
i_range_start in number,
i_range_end in number,
i_org_id in number,
i_species_id IN VARCHAR2,
i_query_user_id in number,
o_report_id out number
)
配置调用如下:

<parameterMap id="proMap">
<parameter property="complainDateStart" javaType="java.lang.String" mode="IN" jdbcType="VARCHAR" />
<parameter property="complainDateEnd" javaType="java.lang.String" mode="IN" jdbcType="VARCHAR" />
<parameter property="priceOne" javaType="java.math.BigDecimal" mode="IN" jdbcType="NUMBER" />
<parameter property="priceTwo" javaType="java.math.BigDecimal" mode="IN" jdbcType="NUMBER" />
<parameter property="orgId" javaType="java.math.BigDecimal" mode="IN" jdbcType="NUMBER" />
<parameter property="speciesIdList" javaType="java.lang.String" mode="IN" jdbcType="VARCHAR" />
<parameter property="userId" javaType="java.math.BigDecimal" mode="IN" jdbcType="NUMBER" />
<parameter property="reportId" javaType="java.math.BigDecimal" mode="OUT" jdbcType="NUMBER" />
</parameterMap>
<procedure id="generateProjectDetial" parameterMap="proMap">
<![CDATA[
CALL szzc_stat.p_project_details_stat(?,?,?,?,?,?,?,?)
]]>
</procedure>

 

老是报:
--- Check the CALL szzc_stat.p_project_details_stat(?,?,?,?,?,?,?,?).
--- Check the output parameters (register output parameters failed).
--- Cause: java.sql.SQLException: 无效的列类型: -99999999

 

网上查找资料:

 

后来查看java.sql.Types类中有关JDBC类型变量类型,并没有发“NUMBER”这一静态字段,而只有“NUMERIC”字段。(因此 jdbcType 的值不是数据库ORACLE的参数类型,而是其对应的JDBC变量类型)

但改了之后依然报同样错误。

后来发现在java.sql.Types类中还有一个DECIMAL静态常量,与javaType定义的java.math.BigDecimal类型一致。

再修改测试则通过,不再报错。

所以“无效的列类型”异常解决方法,根据存储过程的参数类型找出正确的jdbcType(具体参考java.sql.Types类的JDBC静态变量)。

  

正确配置:

<parameterMap id="proMap">
<parameter property="complainDateStart" javaType="java.lang.String" mode="IN" jdbcType="VARCHAR" />
<parameter property="complainDateEnd" javaType="java.lang.String" mode="IN" jdbcType="VARCHAR" />
<parameter property="priceOne" javaType="java.math.BigDecimal" mode="IN" jdbcType="DECIMAL" />
<parameter property="priceTwo" javaType="java.math.BigDecimal" mode="IN" jdbcType="DECIMAL" />
<parameter property="orgId" javaType="java.math.BigDecimal" mode="IN" jdbcType="DECIMAL" />
<parameter property="speciesIdList" javaType="java.lang.String" mode="IN" jdbcType="VARCHAR" />
<parameter property="userId" javaType="java.math.BigDecimal" mode="IN" jdbcType="DECIMAL" />
<parameter property="reportId" javaType="java.math.BigDecimal" mode="OUT" jdbcType="DECIMAL" />
</parameterMap>
<procedure id="generateProjectDetial" parameterMap="proMap">
<![CDATA[
CALL szzc_stat.p_project_details_stat(?,?,?,?,?,?,?,?)
]]>
</procedure>

 

mybatis/xml配置文件



参考 oracle存储过程


 

 

jdbcType类型:

数据库类型与JDBC TYPE 和Java类型对应关系

SQL Datatypes

JDBC Typecodes

Standard Java Types

Java取值范围

NUMBER

java.sql.Types.NUMERIC

java.math.BigDecimal

无限制

NUMBER

java.sql.Types.DECIMAL

java.math.BigDecimal

无限制

NUMBER

java.sql.Types.BIT

boolean

true,false

NUMBER

java.sql.Types.TINYINT

byte

from –128 to 127

NUMBER

java.sql.Types.SMALLINT

short

from –32768 to 32767

NUMBER

java.sql.Types.INTEGER

int

From –2147483648 to 2147483647

NUMBER

java.sql.Types.BIGINT

long

From –9223372036854775808 to 9223372036854775807

NUMBER

java.sql.Types.REAL

float

From 1.4E-45

To 3.4028235E38

NUMBER

java.sql.Types.FLOAT

double

From 4.9E-324 to

1.7976931348623157E308

NUMBER

java.sql.Types.DOUBLE

double

Mybaitis JdbcType 和javaType

Mybaitis JdbcType 和javaType

MyBatis 通过包含的jdbcType类型

BIT         FLOAT      CHAR           TIMESTAMP       OTHER       UNDEFINED

TINYINT     REAL       VARCHAR        BINARY          BLOB        NVARCHAR

SMALLINT    DOUBLE     LONGVARCHAR    VARBINARY       CLOB        NCHAR

INTEGER     NUMERIC    DATE           LONGVARBINARY   BOOLEAN     NCLOB

BIGINT      DECIMAL    TIME           NULL            CURSOR

 

MybatisjavaTypejdbcType对应和CRUD例子

Xml代码   收藏代码
  1. <resultMap type="java.util.Map" id="resultjcm">  
  2.   <result property="FLD_NUMBER" column="FLD_NUMBER"  javaType="double" jdbcType="NUMERIC"/>  
  3.   <result property="FLD_VARCHAR" column="FLD_VARCHAR" javaType="string" jdbcType="VARCHAR"/>  
  4.   <result property="FLD_DATE" column="FLD_DATE" javaType="java.sql.Date" jdbcType="DATE"/>  
  5.   <result property="FLD_INTEGER" column="FLD_INTEGER"  javaType="int" jdbcType="INTEGER"/>  
  6.   <result property="FLD_DOUBLE" column="FLD_DOUBLE"  javaType="double" jdbcType="DOUBLE"/>  
  7.   <result property="FLD_LONG" column="FLD_LONG"  javaType="long" jdbcType="INTEGER"/>  
  8.   <result property="FLD_CHAR" column="FLD_CHAR"  javaType="string" jdbcType="CHAR"/>  
  9.   <result property="FLD_BLOB" column="FLD_BLOB"  javaType="[B" jdbcType="BLOB" />  
  10.   <result property="FLD_CLOB" column="FLD_CLOB"  javaType="string" jdbcType="CLOB"/>  
  11.   <result property="FLD_FLOAT" column="FLD_FLOAT"  javaType="float" jdbcType="FLOAT"/>  
  12.   <result property="FLD_TIMESTAMP" column="FLD_TIMESTAMP"  javaType="java.sql.Timestamp" jdbcType="TIMESTAMP"/>  
  13.  </resultMap>  

 

 

MybatisjavaTypejdbcType对应关系

 

Notepad代码   收藏代码
  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数据类型对照表

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
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
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与Oracle、MySql 数据类型对应关系

MyBatis 包含的jdbcType类型

------------------------------------------------------------------------------------------------------------------

BIT         FLOAT      CHAR           TIMESTAMP       OTHER       UNDEFINED

TINYINT     REAL       VARCHAR        BINARY          BLOB        NVARCHAR

SMALLINT    DOUBLE     LONGVARCHAR    VARBINARY       CLOB        NCHAR

INTEGER     NUMERIC    DATE           LONGVARBINARY   BOOLEAN     NCLOB

BIGINT      DECIMAL    TIME           NULL            CURSOR

------------------------------------------------------------------------------------------------------------------

Mybatis中javaType和jdbcType对应和CRUD例子

<resultMap type="java.util.Map" id="resultjcm">  
  <result property="FLD_NUMBER" column="FLD_NUMBER"  javaType="double" jdbcType="NUMERIC"/>  
  <result property="FLD_VARCHAR" column="FLD_VARCHAR" javaType="string" jdbcType="VARCHAR"/>  
  <result property="FLD_DATE" column="FLD_DATE" javaType="java.sql.Date" jdbcType="DATE"/>  
  <result property="FLD_INTEGER" column="FLD_INTEGER"  javaType="int" jdbcType="INTEGER"/>  
  <result property="FLD_DOUBLE" column="FLD_DOUBLE"  javaType="double" jdbcType="DOUBLE"/>  
  <result property="FLD_LONG" column="FLD_LONG"  javaType="long" jdbcType="INTEGER"/>  
  <result property="FLD_CHAR" column="FLD_CHAR"  javaType="string" jdbcType="CHAR"/>  
  <result property="FLD_BLOB" column="FLD_BLOB"  javaType="[B" jdbcType="BLOB" />  
  <result property="FLD_CLOB" column="FLD_CLOB"  javaType="string" jdbcType="CLOB"/>  
  <result property="FLD_FLOAT" column="FLD_FLOAT"  javaType="float" jdbcType="FLOAT"/>  
  <result property="FLD_TIMESTAMP" column="FLD_TIMESTAMP"  javaType="java.sql.Timestamp" jdbcType="TIMESTAMP"/>  
 </resultMap> 

一、 Mybatis JDBCType与JavaType数据类型对应列表

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				int
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[color=red][/color]

----------------------------------------------------------------------------

二、 Mybatis JdbcType与Oracle、MySql

https://blog.csdn.net/loongshawn/article/details/50496460

 

今天关于MyBatis常用的jdbcType数据类型mybatis jdbctype数据类型的分享就到这里,希望大家有所收获,若想了解更多关于ibatis/Mybatis 配备调用存储过程,jdbctype配置、Mybaitis JdbcType 和javaType、MyBatis JdbcType 与Oracle、MySql数据类型对照表、Mybatis JdbcType与Oracle、MySql 数据类型对应关系等相关知识,可以在本站进行查询。

本文标签: