mybatis insert标签中使用 select问题 2C

需求是这样的:我要把B表中的数据插入到A表中
sql语句是这样的:
insert into DM_USER_invoking_JXIF
select t.uuid,t.userip,t.Userurl,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'1' from M_USER_SYSTEM_JXIF t where a.userip = '127.0.0.1'

然后我在配置文件中
1.如果这样直接配的话:

insert into DM_USER_invoking_JXIF
select t.uuid,t.userip,t.Userurl,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'1' from M_USER_SYSTEM_JXIF t where a.userip = '127.0.0.1'

2.如果这样配的话

    <selectKey keyProperty="id,ip,url,time,num" resultClass="Map" type="pre">
        select t.uuid id,t.userip ip,t.Userurl url ,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') time,'1' num from DM_USER_SYSTEM_JXIF t
        where a.userip = '127.0.0.1'
    </selectKey>
    insert into DM_USER_invoking_JXIF (uuid,ip,url,createtime,invokingnum) values (#id#,#ip#,#url#,#time#,#num#)

</insert>


都报同样的错误:

org.apache.cxf.interceptor.Fault: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; Select statements cannot be executed as an update.; nested exception is java.sql.SQLException: Select statements cannot be executed as an update.

求高手指点,怎么解决这个问题?用其他方法实现也行

3个回答

mybaties中的insert into select 用法,mybaties批量插入。http://blog.csdn.net/a347911/article/details/51542845

fanfanfys
fanfanfys 3是没问题的 网上大多数例子 也都是3的。。。
3 年多之前 回复
sun1021873926
夕阳雨晴 不清楚哎,我这边使用mybatis3.3.0,这样使用没有问题。
3 年多之前 回复
fanfanfys
fanfanfys 我按照那上面写 还是报一样的错。。。是不是mybatis2.x 没法这样实现?
3 年多之前 回复

我按照那上面写 还是报一样的错。。。是不是mybatis2.x 没法这样实现?

是不是傻,两步的事情,为什么非要一步做完。第一步查询,第二步插入用两个方法不就完了

chenjiajain
wudicjj 这要是在同一个事务中的好吧
一年多之前 回复
fanfanfys
fanfanfys 好吧。。。
3 年多之前 回复
songqiang2011
像忘了谁sq 回复fanfanfys: 编程需要简单高效,不要把东西想复杂了。
3 年多之前 回复
fanfanfys
fanfanfys 回复像忘了谁sq: 总有点用吧,还有就是想多用点不一样的方法,实在不行,也只有分两步了
3 年多之前 回复
songqiang2011
像忘了谁sq 回复fanfanfys: 你继续钻牛角尖。你认为你这样能提高性能?
3 年多之前 回复
fanfanfys
fanfanfys 不是想减少请求数据库的次数么。。。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问