mybatis 中关于jdbcType=VARCHAR

看到网上很多大牛的mybatis xml代码 其中取值 都加上

#{filter,jdbcType=VARCHAR} 一直很好奇。

查询了一下 一些资料说是: 


引用

MyBatis 插入空值时,需要指定JdbcType 
mybatis insert空值报空值异常,但是在pl/sql不会提示错误,主要原因是mybatis无法进行转换, 

所以一般在insert语句中insert的对象加上jdbcType就可以了。

注意当插入为int类型时

则为 #{filter,jdbcType=NUMERIC} 

 

MyBatis的jdbcType是一个枚举类,有以下类型:

public enum JdbcType {
    ARRAY(2003),
    BIT(-7),
    TINYINT(-6),
    SMALLINT(5),
    INTEGER(4),
    BIGINT(-5),
    FLOAT(6),
    REAL(7),
    DOUBLE(8),
    NUMERIC(2),
    DECIMAL(3),
    CHAR(1),
    VARCHAR(12),
    LONGVARCHAR(-1),
    DATE(91),
    TIME(92),
    TIMESTAMP(93),
    BINARY(-2),
    VARBINARY(-3),
    LONGVARBINARY(-4),
    NULL(0),
    OTHER(1111),
    BLOB(2004),
    CLOB(2005),
    BOOLEAN(16),
    CURSOR(-10),
    UNDEFINED(-2147482648),
    NVARCHAR(-9),
    NCHAR(-15),
    NCLOB(2011),
    STRUCT(2002),
    JAVA_OBJECT(2000),
    DISTINCT(2001),
    REF(2006),
    DATALINK(70),
    ROWID(-8),
    LONGNVARCHAR(-16),
    SQLXML(2009),
    DATETIMEOFFSET(-155);

 

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了在MyBatis使用JdbcType,需要在映射文件使用resultMap元素。resultMap元素用于将结果集的列映射到对象的属性上。在resultMap元素,可以使用result元素来指定每个属性的映射。在result元素,可以使用column属性来指定结果集的列名,使用property属性来指定对象属性的名称,使用jdbcType属性来指定JDBC类型。下面是一个使用resultMap元素的例子: ```xml <resultMap id="userResultMap" type="User"> <result column="id" property="id" jdbcType="INTEGER"/> <result column="username" property="username" jdbcType="VARCHAR"/> <result column="password" property="password" jdbcType="VARCHAR"/> </resultMap> ``` 在这个例子,resultMap元素的id属性被设置为“userResultMap”,type属性被设置为“User”。resultMap元素包含三个result元素,每个result元素分别将结果集的“id”、“username”和“password”列映射到User对象的“id”、“username”和“password”属性上,并且分别使用了INTEGER、VARCHARVARCHAR JDBC类型。 在使用MyBatis进行查询时,可以使用resultMap元素来指定结果集的映射。例如,下面是一个使用resultMap元素的查询例子: ```xml <select id="getUser" resultMap="userResultMap"> SELECT * FROM users WHERE id = #{id} </select> ``` 在这个例子,select元素的resultMap属性被设置为“userResultMap”,这意味着查询结果将使用“userResultMap”指定的映射进行映射。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值