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

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题