Mybatis之jdbcType的重要性
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