您的位置:首页 > 数据库

一次向数据库插入多条记录

2012-11-30 15:25 183 查看
在开发中对于数据的操作经常有可能一次向数据库插入多条记录。

对于才入门的程序员来说,第一感觉就是写个循环,先把sql写好每次循环的时候都传入不同的参数即可。

向用户表中一次插入多个用户。

String[] users={"张三","李四","王老五"};
String sql="insert into user (name)values(?)";
PreparedStatement ps=conn.prepareStatement(sql);
for (String string : users) {
ps.setString(1, string);
ps.executeUpdate();
}
这种做法肯定也是能满足需求的,但是从性能上讲就不是那么好了。这样你要插入多少用户就需要向数据库发送多少次请求。

在真正的应用中我们不会像这样做。

如果插入数据的来源是有系统输入的那么我们可以这样:

insert into user (name) values ('张三'),('李四'),('王老五');
insert into user (name) select '张三' union all select '李四' union all '王老五';
上边两种方式在mysql中是可行的,在oracle中需要这样
insert into user (name) select '张三' from dual union all select '李四' from dual union all '王老五' from dual;
 
这样的性能绝定比上边第一种好好的多吧!

当插入数据的来源就在数据库中,我们可以这样

insert into user (name,sex,age) select name,sex,age from user1;


这里需要注意的是:

         select 查询字段的位置顺序一定要和into表中字段位置顺序对应一致。他不会根据你的名称来对应,他是根据位置顺序来对应的。

        还望多多指点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: