消息关闭
    暂无新消息!

ibatis批量导入报错

问题作者 : 悦读mtn2017-07-07发布
插入语句原型,
< insert  id =" iterate_insert1 "  parameterClass ="java.util.List" >   
2.       <![CDATA[  
3.           insert intowsjinag_test( col1 , col2 , col3 ) values  
4.       ]]>    
5.       < iterate  conjunction ="," >   
6.           <![CDATA[  
7.               (#test[]. col1 #, # test []. col2 #, # test []. col3 #)  
8.           ]]>   
9.       </ iterate >   
10.  </ insert > 

报错:
WARNING: EXCEPTION 
javax.servlet.ServletException: org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred while applying a parameter map.  
--- Check the IctProject.oppoInsertBatch-InlineParameterMap.  
--- Check the statement (update failed).  
--- Cause: java.sql.SQLException: ORA-00933: SQL 命令未正确结束

at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:459)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1054)
at org.eredlab.g4.rif.util.RequestFilter.doFilter(RequestFilter.java:119)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
at org.eredlab.g4.rif.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:48)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1045)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:358)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:231)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:629)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:453)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
at org.mortbay.jetty.Server.handle(Server.java:303)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:452)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:735)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:636)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:209)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:349)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:320)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

6个回答

︿ 2

<insert id="batchInsert" parameterType="list">
INSERT INTO role_menu(id,role_id,menu_id ) VALUES
<foreach collection="list" item="obj" index="index" separator=",">
(uuid(),#{obj.roleId},#{obj.menuId})
</foreach>
</insert>

我这么写的
︿ 0
分享一款生成器,http://blog.csdn.net/loginandpwd/article/details/73739444,界面化生成mybaits文件
︿ 0
楼主是看的这个吧
http://blog.csdn.net/baijianjun123456/article/details/48371213

看起来没啥问题,可以把
insert intowsjinag_test( col1 , col2 , col3 ) values
这句  into后面加个空格试试看看
insert into wsjinag_test( col1 , col2 , col3 ) values