Mybatis插入数据null的的解决方案

传入一个数据库允许为null的paramterType对象,Mybatis报错插入不能为空,此时不仅需要配置javaType,还有为其指定jdbcType,例如下面的name属性便可轻松插入空数值。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.czyfwpla.xm.mapper.SpotMapper" >
<resultMap id="SpotResultMap" type="cn.czyfwpla.xm.model.Spot">
<id column="id" property="id" javaType="java.lang.String" />
<id column="name" property="name" javaType="java.lang.String" jdbcType="VARCHAR" />
<id column="description" property="description" javaType="java.lang.String" />
<id column="headImg" property="headImg" javaType="java.lang.String" />
<id column="price" property="price" javaType="java.math.BigDecimal" />
<id column="route" property="route" javaType="java.lang.String" />
<id column="strategy" property="strategy" javaType="java.lang.String" />
</resultMap>
<insert id="addSpot" parameterType="cn.czyfwpla.xm.model.Spot" >
INSERT INTO
spot
(id,name,description,headImg,price,route,strategy)
VALUES
(#{id}, #{name}, #{description},#{headImg},#{price},#{route},#{strategy})
</insert>
</mapper>

 附录: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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值