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