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();
    }</span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception e) {
        e.printStackTrace();
    }</span><span style="color: #0000ff;">finally</span><span style="color: #000000;">{
        JDBCUtils.close(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">, 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,?)”);

        </span><span style="color: #0000ff;">for</span>(<span style="color: #0000ff;">int</span> i=1;i&lt;=100000;i++<span style="color: #000000;">){
            ps.setString(</span>1, "name"+<span style="color: #000000;">i);
            ps.addBatch();
            
            </span><span style="color: #0000ff;">if</span>(i%1000==0<span style="color: #000000;">){
                ps.executeBatch();
                ps.clearBatch();
            }
        }
        ps.executeBatch();
        
    }</span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (Exception e) {
        e.printStackTrace();
    }</span><span style="color: #0000ff;">finally</span><span style="color: #000000;">{
        JDBCUtils.close(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">, ps, conn);
    }
}

}

复制代码

 

分类: Javaweb开发
标签: jdbc, mysql, 批处理
0
0
« 上一篇: 20160408javaweb之JDBC 大二进制和大文件存取
» 下一篇: 关于利用动态代理手写数据库连接池的异常 java.lang.ClassCastException: com.sun.proxy.$Proxy0 cannot be cast to java.sql.Connection
	</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值