Mybatis中sql更新可以设置为空值么
<updateid="update"parameterType="org.tarena.netctoss.entity.Account">updateACCOUNTset...
<update id="update" parameterType="org.tarena.netctoss.entity.Account">
update ACCOUNT set REAL_NAME=#{real_name},IDCARD_NO=#{idcard_no},
LOGIN_PASSWD=#{login_passwd},TELEPHONE=#{telephone},RECOMMENDER_ID=#{recommender_id},
BIRTHDATE=#{birthdate},EMAIL=#{email},OCCUPATION=#{occupation},GENDER=#{gender},
MAILADDRESS=#{mailaddress},ZIPCODE=#{zipcode},QQ=#{qq} where ID=#{id}
</update>
我直接传了一个对象进去,然后作更新操作,但是对象中有的属性是null的,也就是说我作了set xxx = null这样的操作请问这样的操作是被允许的么?
为什么总是报下面的错误呢?
HTTP Status 500 - Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #7 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111 展开
update ACCOUNT set REAL_NAME=#{real_name},IDCARD_NO=#{idcard_no},
LOGIN_PASSWD=#{login_passwd},TELEPHONE=#{telephone},RECOMMENDER_ID=#{recommender_id},
BIRTHDATE=#{birthdate},EMAIL=#{email},OCCUPATION=#{occupation},GENDER=#{gender},
MAILADDRESS=#{mailaddress},ZIPCODE=#{zipcode},QQ=#{qq} where ID=#{id}
</update>
我直接传了一个对象进去,然后作更新操作,但是对象中有的属性是null的,也就是说我作了set xxx = null这样的操作请问这样的操作是被允许的么?
为什么总是报下面的错误呢?
HTTP Status 500 - Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #7 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的列类型: 1111 展开
3个回答
展开全部
我估计你用的是oracle或其非mysql数据库。错误报出的很明确。java的null类型映射成OTHER了,你明确指定一下jdbctype=NULL就解决了,如是oracle不支持OTHER类型。要么就写个动态sql要好一些。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
需要指定 jdbcType #{username,jdbcType=VARCHAR},
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-08-01 · 知道合伙人互联网行家
关注
展开全部
你需要高速mybatis,你的这个字段在数据库里是什么类型,然后mybatis才能处理你这个null放到数据库里到底是什么样子,在每个变量处指定jdbcType,比如下面这样:
EMAIL=#{email,jdbcType=VARCHAR}
jdbcType有很多种,比如VARCHAR就是可变长字串,NUMBER就是数值型,你可以去网上搜一下
EMAIL=#{email,jdbcType=VARCHAR}
jdbcType有很多种,比如VARCHAR就是可变长字串,NUMBER就是数值型,你可以去网上搜一下
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询