20160322 javaweb 之jdbc-- mysql 批处理

package com.dzq.batch;

import java.sql.Connection;
import java.sql.Statement;

import com.itheima.util.JDBCUtils;

/*
    create database day10batch;
    use day10batch;
    create table batchDemo(
        id int primary key auto_increment,
        name varchar(20)
    );
    insert into batchDemo values(null,'aaaa');
    insert into batchDemo values(null,'bbb');
    insert into batchDemo values(null,'cc');
    insert into batchDemo values(null,'d');
 */
/*
    Statement方式执行批处理:
        优点:可以执行多条不同结构的sql语句
        缺点:没有使用预编译机制,效率低下,如果要执行多条结构相同仅仅参数不同的sql时,仍然需要写多次sql语句的主干
 */
public class StatementBatch {
    public static void main(String[] args) {
        Connection conn = null;
        Statement stat = null;
        try{
            conn = JDBCUtils.getConn();
            stat = conn.createStatement();
            stat.addBatch("create database day10batch");
            stat.addBatch("use day10batch");
            stat.addBatch("create table batchDemo("+
                                "id int primary key auto_increment,"+
                                "name varchar(20)"+
                            ")");
            stat.addBatch("insert into batchDemo values(null,'aaaa')");
            stat.addBatch("insert into batchDemo values(null,'bbb')");
            stat.addBatch("insert into batchDemo values(null,'cc')");
            stat.addBatch("insert into batchDemo values(null,'d')");
            
            stat.executeBatch();
        }catch (Exception e) {
            e.printStackTrace();
        }finally{
            JDBCUtils.close(null, stat, conn);
        }
    }
}

 

package com.dzq.batch;

import java.sql.Connection;
import java.sql.PreparedStatement;

import com.itheima.util.JDBCUtils;
/*
     create table psbatch(
         id int primary key auto_increment,
         name varchar(30)
     );
 */
/*
    prparedStatement 方式实现的批处理:
        优点:有预编译机制,效率比较高.执行多条结构相同,参数不同的sql时,不需要重复写sql的主干
        缺点:只能执行主干相同参数不同的sql,没有办法在一个批中加入结构不同的sql
 */
public class PSBatch {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement ps = null;
        try{
            conn = JDBCUtils.getConn();
            ps = conn.prepareStatement("insert into psbatch values(null,?)");
            
            for(int i=1;i<=100000;i++){
                ps.setString(1, "name"+i);
                ps.addBatch();
                
                if(i%1000==0){
                    ps.executeBatch();
                    ps.clearBatch();
                }
            }
            ps.executeBatch();
            
        }catch (Exception e) {
            e.printStackTrace();
        }finally{
            JDBCUtils.close(null, ps, conn);
        }
    }
}

 

转载于:https://www.cnblogs.com/xiaoduc-org/p/5369632.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值