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);
        }
    }
}
时间: 2024-12-27 08:52:15

20160322 javaweb 之jdbc-- mysql 批处理的相关文章

JavaWeb学习总结(十一)--JDBC之批处理

一.批处理的介绍 在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率.批处理只针对更新(增.删.改)语句,批处理没有查询什么事儿! JDBC实现批处理有两种方式:statement和preparedstatement 可以多次调用Statement类的addBatch(String sql)方法,把需要执行的所有SQL语句添加到一个"批"中,然后调用Statement类的executeBatch

javaweb学习总结(三十六)——使用JDBC进行批处理

在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. JDBC实现批处理有两种方式:statement和preparedstatement 一.使用Statement完成批处理 1.使用Statement对象添加要批量执行SQL语句,如下: 1 Statement.addBatch(sql1); 2 Statement.addBatch(sql2); 3 Statement.addBatch(sql3);

深入分析JavaWeb Item30 -- 使用JDBC进行批处理

在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. JDBC实现批处理有两种方式:statement和preparedstatement 一.使用Statement完成批处理 1.使用Statement对象添加要批量执行SQL语句,如下: Statement.addBatch(sql1); Statement.addBatch(sql2); Statement.addBatch(sql3); 2.执行批

jdbc mysql crud dao模型 sql注入漏洞 jdbc 操作大文件

day17总结 今日内容 l JDBC 1.1 上次课内容总结 SQL语句: 1.外键约束:foreign key * 维护多个表关系! * 用来保证数据完整性! 2.三种关系: * 一对多: * 一个客户可以对应多个订单,一个订单只属于一个客户! * 建表原则: * 在多的一方创建一个字段,作为外键指向一的一方的主键!!! * 多对多: * 一个学生可以选择多个课程,一个课程也可以被多个学生选择! * 建表原则: * 创建第三张表,第三张表中放入两个字段,作为外键分别指向多对多双方的主键! *

JavaWeb之JDBC

一.介绍 C#定义了ADO.Net接口来实现对SQLServer.Oracel等数据库的访问,那Java定义了JDBC接口实现对数据库的访问,数据库提供商只要实现这些接口,Java语言就能访问数据库. 二.工作流程 1.驱动引入 数据库提供商实现了JDBC接口,可好几种数据库,Java知道是哪一种呢,于是乎得注册不同的驱动来操作对应的数据库,注册驱动也得要有驱动才是,所以首先是将驱动引入项目,这里用Mysql举例,之前也用C#操作过Mysql数据库,今天用Java操作,驱动下载地址:https:

[javaSE] JDBC的批处理

向数据库发送多条sql语句 create database batch use batch create table batch_table( id int primary key auto_increment, name varchar(20) ) insert into batch_table values(null,”aaa”) insert into batch_table values(null,”bbb”) insert into batch_table values(null,”c

JDBC MySQL

JDBC连接MySQL 加载及注册JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); Class.forName("com.mysql.jdbc.Driver").newInstance(); JDBC URL 定义驱动程序与数据源之间的连接 标准语法: <protocol(主要通讯协议)>:<subprotocol(次要通讯协议,即驱动程序名称)>:<data source identif

JDBC的批处理操作三种方式

SQL批处理是JDBC性能优化的重要武器,经本人研究总结,批处理的用法有三种. package lavasoft.jdbctest; import lavasoft.common.DBToolkit; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; /** * JDBC的批量操作三种方式 * * @auth

JDBC数据批处理

JDBC(Java Data Base Connectivity):SUN公司为统一对数据库的操作定义的一套Java操作规范(接口),成为JDBC: API中组成JDBC的两个包:java.sql  |  javax.sql JDBC过程(以MySQL.Oracle数据库为例) mysql数据库默认端口:3306oracle数据库默认端口:1521 services.msc:查看系统中所有的服务 mysql数据库中最重要的配置文件C:\Program Files (x86)\MySQL\MySQ

JDBC MYSQL 学习笔记(一) JDBC 基本使用

1.JDBC简介 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC. JDBC全称为:Java Data Base Connectivity(java数据库连接),它主要由接口组成. 组成JDBC的2个包:java.sql  javax.sql 开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动). 2.使用JDBC的步骤--第一个JDBC程序 需求:编程从user表中读取数据,并打印在命令行窗口中. (1) 搭建实