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