The correspondence between javaType and jdbcType in Mybatis

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]

Example:

copy code
1 <resultMap type="java.util.Map" id="resultData">  
 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="Blob" 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>
copy code

 The difference between the MyBatis placeholders # and $ is as follows:

  The # symbol treats the incoming data as a string, and adds a double quote to the automatically incoming data;

  The $ symbol directly displays the incoming data in the generated SQL;

  The # symbol exists in a precompiled process to assign a question mark to prevent SQL injection;

  The $ symbol is a literal translation method, which is generally used in the order by ${column name} statement;

  Do not use the $ sign if you can use the # sign. The $ sign is mainly used for order by

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324906845&siteId=291194637