MyBatis配置Mapping,JavaType和JDBCType的對應關系,#與$區別


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]

樣例:

 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> 

 MyBatis 占位符#和 $ 的區別如下:

  #符號將傳入的數據都當做一個字符串,會對自動傳入的數據加一個雙引號;

  $ 符號將傳入的數據直接顯示生成 SQL 中;

  #符號存在預編譯的過程對問號賦值,防止 SQL 注入

  $ 符號是直譯的方式,一般用在 order by ${列名}語句中;

  能用#號就不要用 $ 符號,$符號主要用於order by

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM