Mybatis之jdbcType
在mapper.xml中,寫java類映射數據庫表字段的時候,有jdbcType,之前並沒有很注意,發現有些人習慣在寫mybatis寫sql的時候,映射關聯參數時喜歡加上jdbcType=xxx
<insert id="insert" parameterType="java.xx.xx" > insert into table_xxx values(
name = #{name,jdbcType=VARCHAR}
)
) </insert>
例如上面的jdbcType=VARCHAR,這是為了程序的安全性,使一些特殊情況,當傳入的參數為name為空時不會使程序出現問題,當name為空時,mybatis不知道具體要轉換成什么jdbcType類型,有些特殊情況會報錯,Mybatis經常出現的:無效的列類型: 1111 錯誤,就是因為沒有設置JdbcType造成的。以后還是必須加jdbcType了,下面給出一些常見的jdbcType和java類型的對應:
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 INTEGER 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