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

在开发中对于数据的操作经常有可能一次向数据库插入多条记录。

对于才入门的程序员来说,第一感觉就是写个循环,先把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表中字段位置顺序对应一致。他不会根据你的名称来对应,他是根据位置顺序来对应的。


        还望多多指点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值