导航

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