天天看點

ibatis oracle 批量添加之UncategorizedSQLException

ibatis批量添加 參數實體類清單

異常資訊:

org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];   

--- The error occurred in com/wandafilm/api/model/conf/demo/DEMO_USER_SqlMap.xml.  

--- The error occurred while preparing the mapped statement for execution.  

--- Check the DEMO_USER.insertNumber.  

--- Check the parameter map.  

--- Cause: com.ibatis.common.beans.ProbeException: Error getting ordinal list from JavaBean. Cause java.lang.StringIndexOutOfBoundsException: String index out of range: -1; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   

--- The error occurred in com/wandafilm/api/model/conf/demo/DEMO_USER_SqlMap.xml.  

--- The error occurred while preparing the mapped statement for execution.  

--- Check the DEMO_USER.insertNumber.  

--- Check the parameter map.  

--- Cause: com.ibatis.common.beans.ProbeException: Error getting ordinal list from JavaBean. Cause java.lang.StringIndexOutOfBoundsException: String index out of range: -1

    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)

    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)

    at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)

    at com.shtao.ext.springframework.orm.ibatis.ExtSqlMapClientTemplate.execute(ExtSqlMapClientTemplate.java:170)

    at com.shtao.ext.springframework.orm.ibatis.ExtSqlMapClientTemplate.insert(ExtSqlMapClientTemplate.java:357)

sqlmap.xml 錯誤案例:

<insert id="insertNumber" parameterClass="java.util.List">

    <![CDATA[

       INSERT ALL

    ]]>

       <iterate conjunction=" " property="mapList">

          INTO wandafilm.send_active_user_phone_number

              (ACTIVE_ID,USER_PHONE,USER_ID)

          VALUES

               (#mapList[].userNme:VARCHAR#,#mapList[].nickName:VARCHAR#,#mapList[].mobileNo:VARCHAR#)

      </iterate>

      <![CDATA[

      SELECT * FROM dual

    ]]>

  </insert>

sqlmap.xml 正确案例:

<insert id="insertNumber" parameterClass="java.util.List">

    <![CDATA[

       INSERT ALL

    ]]>

       <iterate conjunction=" ">

          INTO wandafilm.send_active_user_phone_number

              (ACTIVE_ID,USER_PHONE,USER_ID)

          VALUES

               (#[].userNme:VARCHAR#,#[].nickName:VARCHAR#,#[].mobileNo:VARCHAR#)

      </iterate>

      <![CDATA[

      SELECT * FROM dual

    ]]>

  </insert>

sqlmap.xml 正确模闆:

<insert id="标示" parameterClass="參數類型">

    <![CDATA[

       INSERT ALL

    ]]>

       <iterate conjunction="空格">

          INTO 表名

              (字段名)

          VALUES

               (#[].實體類對應的屬性名:資料庫字段類型#)

      </iterate>

      <![CDATA[

      SELECT * FROM dual

    ]]>

  </insert>

daoimpl.java部分代碼:

List<User> list = null;

省略部分代碼

getSqlMapClientTemplate().insert("DEMO_USER.insertNumber", list);

總結:

org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0]

sql配置檔案錯誤,仔細檢查自己的配置檔案

批量添加隻要不報異常就可以視為成功,他傳回值是一個null,或許自己初次解決的原因吧

繼續閱讀