Mybatis中什麼時候用jdbcType,javaType,什麼時候不用,javaType,jdbcType的解析

jdbcType,javaType的對應關係

  java.sql.Types 值 Java 類型 IBM DB2 Oracle Sybase SQL Informix IBM Content Manager
  BIGINT java.lang.long BIGINT NUMBER (38, 0) BIGINT BIGINT INT8 DK_CM_BIGINT
  BINARY byte[] CHAR FOR BIT DATA RAW BINARY IMAGE BYTE DK_CM_BLOB
  BIT java.lang.Boolean N/A BIT BIT BIT BIT DK_CM_SMALLINT
  BLOB byte[] BLOB BLOB BLOB BLOB BLOB DK_CM_BLOB
  CHAR java.lang.String CHAR, GRAPHIC CHAR CHAR CHAR CHAR DK_CM_CHAR
  CLOB java.lang.String CLOB, DBCLOB CLOB CLOB CLOB CLOB DK_CM_CLOB
  DATE java.sql.Date DATE DATE DATE DATE DATE DK_CM_DATE
  DECIMAL java.math.BigDecimal DECIMAL NUMBER DECIMAL, MONEY, SMALLMONEY DECIMAL DECIMAL DK_CM_DECIMAL
  DOUBLE java.lang.Double DOUBLE DOUBLE PRECISION DOUBLE PRECISION DOUBLE PRECISION DOUBLE PRECISION DK_CM_DOUBLE
  FLOAT java.lang.Double FLOAT FLOAT FLOAT FLOAT FLOAT DK_CM_DOUBLE
  INTEGER java.lang.Integer INTEGER INTEGER INT INTEGER INTEGER DK_CM_INTEGER
  JAVA_OBJECT java.lang.Object JAVA_OBJECT JAVA_OBJECT JAVA_OBJECT JAVA_OBJECT OPAQUE N/A
  LONGVARBINARY byte[] LONG VARCHAR FOR BIT DATA LONG RAW IMAGE IMAGE BYTE DK_CM_BLOB
  LONGVARCHAR java.lang.String LONG VARCHAR, LONG VARGRAPHIC LONG TEXT TEXT TEXT DK_CM_VARCHAR(3500)
  NUMERIC java.math.BigDecimal NUMERIC NUMBER NUMERIC NUMERIC NUMERIC DK_CM_DECIMAL
  OTHER java.lang.Object OTHER OTHER OTHER OTHER OTHER N/A
  REAL java.lang.Float REAL REAL REAL REAL REAL DK_CM_DOUBLE
  SMALLINT java.lang.Integer SMALLINT SMALLINT SMALLINT SMALLINT SMALLINT DK_CM_INTEGER
  TIME java.sql.Time TIME DATE TIME TIME DATETIME HOUR TO SECOND DK_CM_TIME
  TIMESTAMP java.sql.Timestamp TIMESTAMP DATE DATETIME, SMALLDATETIME DATETIME DATETIME YEAR TO FRACTION (5) DK_CM_TIMESTAMP
  TINYINT java.lang.Bute SMALLINT

TINYINT

TINYINT

TINYINT TINYINT DK_CM_INTEGER
  VARBINARY byte[] VARCHAR FOR BIT DATA RAW VARBINARY IMAGE BYTE DK_CM_BLOB
  VARCHAR java.lang.String VARCHAR, VARGRAPHIC VARCHAR VARCHAR VARCHAR VARCHAR DK_CM_VARCHAR

 轉載圖表,根源爲考證,可以學習一下

其中javaType簡單的說,就是java所具有的數據類型,我們可以根據平時接觸到的java數據類型,就能夠知道java的數據類型,例如:java的String,Date,等等

而jdbcType,則是數據庫對應的數據類型,例如:oracle數據庫的數據類型,VARCHAR,CHAR等等

常用的oracle數據庫的java對應關係:

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 

 

Mybatis中什麼時候用jdbcType,javaType

關於什麼時候使用jdbcType的問題的話

舉例說明:在更新操作中,如果我們沒有特別指定數據類型的話

1、當傳入的參數name的值爲空的時候

2、如果參入的參數name的值爲空,而沒有加上jdbcType這個來限定類型的話,執行的SQL會報異常

    Error querying database.  Cause: org.postgresql.util.PSQLException: ERROR

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章