mybatis插入数据传入值为null时提示无效的列类型

mybatis插入数据传入值为null时提示无效的列类型,第1张

mybatis插入数据传入值为null时提示无效的列类型

原因:mybatis无法解析值的类型

方法

方法2

原因:mybatis无法解析值的类型

方法一

因为无法解析null为何种类型,可对传入值在xml中指定类型,如下

<insert id="batchInsertQuestion" useGeneratedKeys="false">

        insert all

        <foreach collection="list" item="item" index="index">

            into ZB_APPRAISE_RECORD_QUESTION (id, record_id, question_name, sort_no, created_by, created_time,

            modified_by,

            modified_time,option_type,appraise_id)

            values

            (#{item.id},#{item.recordId},#{item.questionName,jdbcType=varchar},#{item.sortNo},#{item.createdBy},#{item.createdTime},#{item.modifiedBy},#{item.modifiedTime},#{item.optionType},#{item.appraiseId})

        </foreach>

        select 1 from dual

    </insert>

方法2

在mybatis-config.xml配置文件中配置:

<?xml version=”1.0” encoding=”UTF-8” ?>

<!DOCTYPE configuration PUBLIC “-//mybatis.org//DTD Config 3.0//EN” “http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

<settings>

<setting name="jdbcTypeForNull" value="NULL" />

</settings>

</configuration>

springboot yml配置方法如下

mybatis-plus:

  configuration:

    jdbc-type-for-null: 'null' #注意:单引号

你好,试试把配置改成如下看看,去掉DESCRIPTION那行的if判断

 <update id="updateField" parameterType="map">

  UPDATE SYS_ROLE 

  <trim prefix="SET" suffixOverrides=",">

   <if test="roleName != null">ROLENAME=#{roleName},</if>

   DESCRIPTION=#{description}

  </trim>

   WHERE ID=#{id}

 </update>

第一种写法:

UpdateWrapper updateWrapper = new UpdateWrapper()

updateWrapper.set("mer_name", null)//把字段改为null

updateWrapper.eq("mer_id", "111")

merInfoService.update(updateWrapper)

第二种写法(lambda):

merInfoService.lambdaUpdate()

.set(MerInfo::getMerName, null) //把字段改为null

.eq(MerInfo::getMerId, "111")

.update()


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11371778.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存