• oracle insert in ibatis3


    今天开始用ibatis3在Oracle中做一个user表的插入:

      <insert id="insertSelective" parameterType="cn.com.aabbcc.beans.InnerUser">
        insert into SQ_ADMIN
        <trim prefix="(" suffix=")" suffixOverrides=",">
          <if test="name != null">
            NAME,
          </if>
          <if test="password != null">
            PASSWORD,
          </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            #{innerUserID,jdbcType=DECIMAL},
          <if test="name != null">
            #{name,jdbcType=VARCHAR},
          </if>
          <if test="password != null">
            #{password,jdbcType=VARCHAR},
          </if>
        </trim>
      </insert>

    报告:不能将NULL插入到ID中。噢!原来我没有写select SQ_ADMIN_SEQ.nextval from dual

    修改后就好了,注意红色部分,order="BEFORE"在3.0中要加上的,然后ID不要去用<if test="innerUserID != null">去判断,因为innerUserID永远是null(不知道是不是BUG):

      <insert id="insertSelective" parameterType="cn.com.aabbcc.beans.InnerUser">

        <selectKey keyProperty="innerUserID" resultType="Long" order="BEFORE">
          select SQ_ADMIN_SEQ.nextval from dual
        </selectKey>

        insert into SQ_ADMIN
        <trim prefix="(" suffix=")" suffixOverrides=",">

       ID,
          <if test="name != null">
            NAME,
          </if>
          <if test="password != null">
            PASSWORD,
          </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            #{innerUserID,jdbcType=DECIMAL},
          <if test="name != null">
            #{name,jdbcType=VARCHAR},
          </if>
          <if test="password != null">
            #{password,jdbcType=VARCHAR},
          </if>
        </trim>
      </insert>

  • 相关阅读:
    从运维域看 Serverless 真的就是万能银弹吗?
    C#技术漫谈之垃圾回收机制(GC)(转)
    题解 hdu4624 Endless Spin
    JS递归删除所有子元素【原】
    Asp.Net 生成验证图片
    mouseover显示层mouseout隐藏层,并且在鼠标放上层时显示层【原】
    C# yield关键字的使用
    MS SQL SERVER中的临时表
    猫 老鼠 人的编程题
    面试题:接口和抽象类的区别 【转】
  • 原文地址:https://www.cnblogs.com/huqingyu/p/1742741.html
Copyright © 2020-2023  润新知