qq_24534807 2017-07-18 06:52 采纳率: 0%
浏览 1125

Java Oracle Ibatis 批量 Insert 出错(SQL执行出错???)!!!!

Java,map部分

    String insertCompId = "123,234";
    String ttId = "123,234";
        String ticketCode = "abc";

    String[] insertCompIdaa = insertCompId.split(",");
        String[] ttidaa = ttId.split(",");

    Map map = new HashMap();

            List<String> ttIdList = new ArrayList<String>();
            List<String> insertCompIdList = new ArrayList<String>();

            for (int i = 0; i < ttidaa.length; i++) {
                for (int j = 0; j < insertCompIdaa.length; j++) {
                    ttIdList.add(ttidaa[i]);
                    insertCompIdList.add(insertCompIdaa[j]);
                }
            }
            map.put("tickettypeid", ttIdList);
            map.put("ticketcodetype", ticketCode);
            map.put("insertcompid", insertCompIdList);

在上面拿到map后,传到执行SQL的部分

SQL部分

 <insert id="testInsertTicketCodeRelation" parameterClass="java.util.Map" >
        INSERT ALL
        <iterate>
        INTO TICKET_TYPE_TICKET_CODE
            (
            TICKET_TYPE_TICKET_CODE_ID,
            TICKET_TYPE_ID,
            TICKET_CODE_TYPE,
            COMPONENT_ID
            )
            VALUES
            (
            TICKET_TYPE_AND_CODE_ID_SEQ.nextVal,
            #tickettypeid[]#,
            #ticketcodetype#,
            #insertcompid[]#
            )
        </iterate>
        SELECT 1 FROM DUAL
    </insert>

下面是报错

 java.sql.SQLException: Insert statements cannot be executed as a query.
    at com.ibatis.sqlmap.engine.mapping.statement.InsertStatement.executeQueryForObject(InsertStatement.java:35)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:518)
    at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:493)
    at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
    at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:82)
    at com.hkt.engineering.oneoss.ticketing.dao.tickettype.impl.TicketTypeTicketCodeDAO.testInsertTicketCodeRelation(TicketTypeTicketCodeDAO.java:280)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    ........(剩下部分省略)

错误有点长,请各位帮忙看看,这个错误怎么产生的,要怎么解决,谢谢!!!

  • 写回答

2条回答 默认 最新

  • 叶之秋 2017-07-18 07:18
    关注

    你多了 SELECT 1 FROM DUAL

    评论

报告相同问题?

悬赏问题

  • ¥20 为什么我写出来的绘图程序是这样的,有没有lao哥改一下
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败