oracle insert in ibatis3

來源:互聯網
上載者:User

今天開始用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>

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.