购物车表,向其中添加多条数据(Oracle数据库),使用
insert into tablename
select 'aa','bb' from dual union all
select 'aa1','bb1' from dual
但是现在的需求是,
添加多条数据,
1.如果表中不存在这些数据,就添加,
2.如果存在就更新数量.
这样的需求如何高效的实现了.请教大侠门.
[b]问题补充:[/b]
谢谢各位.我获得一个connection后,创建一个statment,循环使用stmt.executeQuery(sql)查询,根据结果判断,如果有就使用stmt.executeUpdate(editSql);添加或更新,这样做的.不知道有没问题.
statment执行的方法会把当前的结果集关闭,如果你已经处理完毕,应该是没有问题。
不过我觉得statement还是用PreparedStatement比较高效些。
oracle数据库也可以利用oracle的merge函数,利用存储过程来调也会很方便
就是按照你的业务逻辑一步步处理,虽然可能访问数据库的次数多了一些,不过数据库设计得好,sql优化的好也是很高效的。
不要害怕在一个页面中有多次访问数据库的情况,按照我的经验,普通的按主键查询或update每秒钟可以执行1000-2000次。
把数据list都丢给后台Service, 循环list, 逐条查数据库, 看是添加还是更新, 再添加或更新.
同上的结论: 逻辑实现第一, 性能第二.