精华内容
下载资源
问答
  • sql语句批量处理Batch

    2014-04-23 21:28:00
    package Statement批量处理; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import org.junit.After; import org.junit.Before; import org.junit.Test; ...
    package Statement批量处理;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.Statement;
    
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    
    public class StatementDemo {
    
        /**
    void    clearBatch() 
           清空此 Statement 对象的当前 SQL 命令列表。
    void    addBatch(String sql) 
              将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。
    int[]    executeBatch() 
              将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。
    int    getMaxRows() 
              获取由此 Statement 对象生成的 ResultSet 对象可以包含的最大行数
    void    setMaxRows(int max) 
              将此 Statement 对象生成的所有 ResultSet 对象可以包含的最大行数限制设置为给定数。
    
    
         */
        
        @Test
        public void batch() throws Exception{
            
            Statement st=con.createStatement();
            for(int i=11;i<20;i++){
                //String sql ="delete from stud where id="+i;
                String sql = "insert into stud values("+i+",'Jack')";
                //每一次执行exeucteUpdate方法 ,st对象直接就将这个sql
                //通过connection发送给了数据库
                //st.executeUpdate(sql);
                //仅仅是添加sql而不执行
                //st.executeUpdate(sql);
                //也执行了????
                st.addBatch(sql);
                
    
            }
            int[] eff=st.executeBatch();
            System.err.println("执行完成"+eff.length);
            st.close();
            
        }
        
        @Test
        public void batch2() throws Exception{
            Statement st = con.createStatement();
            for(int i=1;i<=5;i++){
                String sql = "insert into stud values("+i+",'Jack')";
                st.addBatch(sql);
            }
            //对于st这个对象的批量处理,可以处理不同的sql语句
            String sql = "update stud set name='Rose'";
            //再添加这个sql
            st.addBatch(sql);
            //在几行数组的大小即length是几
            int[] effects = st.executeBatch();//{1,1,1,1,1,5}=10
            //获取执行了多少个sql
            int sqlCount = effects.length;
            //获取一共影响多少行
            int sum= 0;
            for(int i:effects){
                sum+=i;
            }
            System.err.println("一共有SQL:"+sqlCount+",影响了表中行数:"+sum);
            st.close();
        }
    
        @Before
        // 执行Test前执行
        public void getCon() throws Exception {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://127.0.0.1:3306/abc?useUnicode=true&characterEncoding=utf8";
            con = DriverManager.getConnection(url, "root", "1234");
            // con.close();
            // System.err.println(con);
    
        }
    
        @After
        // 执行Test后执行
        public void closeConn() throws Exception {
            if (con != null || !con.isClosed()) {
    
                con.close();
            }
    
        }
    
        private Connection con;
    }

    转载于:https://www.cnblogs.com/xiaweifeng/p/3683961.html

    展开全文
  • packageStatement批量处理;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;importorg.junit.After;importorg.junit.Before;importorg.junit.Test;public classStatementDemo {/*...

    packageStatement批量处理;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;importorg.junit.After;importorg.junit.Before;importorg.junit.Test;public classStatementDemo {/**void clearBatch()

    清空此 Statement 对象的当前 SQL 命令列表。

    void addBatch(String sql)

    将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。

    int[] executeBatch()

    将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。

    int getMaxRows()

    获取由此 Statement 对象生成的 ResultSet 对象可以包含的最大行数

    void setMaxRows(int max)

    将此 Statement 对象生成的所有 ResultSet 对象可以包含的最大行数限制设置为给定数。*/@Testpublic void batch() throwsException{

    Statement st=con.createStatement();for(int i=11;i<20;i++){//String sql ="delete from stud where id="+i;

    String sql = "insert into stud values("+i+",'Jack')";//每一次执行exeucteUpdate方法 ,st对象直接就将这个sql//通过connection发送给了数据库//st.executeUpdate(sql);//仅仅是添加sql而不执行//st.executeUpdate(sql);//也执行了????

    st.addBatch(sql);

    }int[] eff=st.executeBatch();

    System.err.println("执行完成"+eff.length);

    st.close();

    }

    @Testpublic void batch2() throwsException{

    Statement st=con.createStatement();for(int i=1;i<=5;i++){

    String sql= "insert into stud values("+i+",'Jack')";

    st.addBatch(sql);

    }//对于st这个对象的批量处理,可以处理不同的sql语句

    String sql = "update stud set name='Rose'";//再添加这个sql

    st.addBatch(sql);//在几行数组的大小即length是几

    int[] effects = st.executeBatch();//{1,1,1,1,1,5}=10//获取执行了多少个sql

    int sqlCount =effects.length;//获取一共影响多少行

    int sum= 0;for(inti:effects){

    sum+=i;

    }

    System.err.println("一共有SQL:"+sqlCount+",影响了表中行数:"+sum);

    st.close();

    }

    @Before//执行Test前执行

    public void getCon() throwsException {

    Class.forName("com.mysql.jdbc.Driver");

    String url= "jdbc:mysql://127.0.0.1:3306/abc?useUnicode=true&characterEncoding=utf8";

    con= DriverManager.getConnection(url, "root", "1234");//con.close();//System.err.println(con);

    }

    @After//执行Test后执行

    public void closeConn() throwsException {if (con != null || !con.isClosed()) {

    con.close();

    }

    }privateConnection con;

    }

    展开全文
  • JDBC批量处理批量处理JDBC语句提高处理速度~addBatch(String):添加需要批量处理的SQL语句或是参数;~executeBatch():执行批量处理语句;/*** 向Oracle的customers数据表中插入10万条记录* 测试如何插入,用时最短* 1...

    JDBC批量处理

    批量处理JDBC语句提高处理速度

    ~addBatch(String):添加需要批量处理的SQL语句或是参数;

    ~executeBatch():执行批量处理语句;

    /**

    * 向Oracle的customers数据表中插入10万条记录

    * 测试如何插入,用时最短

    * 1.使用Statement

    * 2.使用PreparedStatement

    * 3.使用Batch

    */

    @Test

    public void testBatchWithStatement(){

    Connection conn = null;

    Statement statement = null;

    String sql = null;

    try {

    conn = Methods.getConnection();

    Methods.beginTx(conn);

    statement = conn.createStatement();

    long begin = System.currentTimeMillis();

    for (int i = 0; i <10000 ; i++) {

    sql="insert into account values("+(i+1) + ",name_"+i+")";

    statement.executeUpdate(sql);

    }

    long end = System.currentTimeMillis();

    System.out.println(end-begin);//39567

    Methods.commit(conn);

    } catch (Exception e) {

    e.printStackTrace();

    Methods.rollback(conn);

    }finally {

    Methods.release(statement,conn,null);

    }

    }

    @Test

    public void testBatchWithPreparedStatement(){

    Connection conn = null;

    PreparedStatement preparedStatement= null;

    String sql = null;

    try {

    conn = Methods.getConnection();

    Methods.beginTx(conn);

    sql="insert into account(name,password) values(?,?)";

    preparedStatement = conn.prepareStatement(sql);

    long begin = System.currentTimeMillis();

    for (int i = 0; i <10000 ; i++) {

    preparedStatement.setString(1,"name_"+i);

    preparedStatement.setString(2,"i");

    preparedStatement.executeUpdate();

    }

    long end = System.currentTimeMillis();

    System.out.println(end-begin);//9819

    Methods.commit(conn);

    } catch (Exception e) {

    e.printStackTrace();

    Methods.rollback(conn);

    }finally {

    Methods.release(preparedStatement,conn,null);

    }

    }

    @Test

    public void testBatch(){

    Connection conn = null;

    PreparedStatement preparedStatement= null;

    String sql = null;

    try {

    conn = Methods.getConnection();

    Methods.beginTx(conn);

    sql="insert into account(name,password) values(?,?)";

    preparedStatement = conn.prepareStatement(sql);

    long begin = System.currentTimeMillis();

    for (int i = 0; i <10000 ; i++) {

    preparedStatement.setString(1,"name_"+i);

    preparedStatement.setString(2,"i");

    //“积攒”SQL

    preparedStatement.addBatch();

    //当积攒到一定程度,就统一的执行一次,并且清空先前"积攒"的SQL

    if((i+1)%300==0){

    preparedStatement.executeBatch();

    preparedStatement.clearBatch();

    }

    }

    //若总条数不是批量数值的整数倍,则还需要再额外的执行一次

    if(100000%300!=0){

    preparedStatement.executeBatch();

    preparedStatement.clearBatch();

    }

    long end = System.currentTimeMillis();

    System.out.println(end-begin);//569

    Methods.commit(conn);

    } catch (Exception e) {

    e.printStackTrace();

    Methods.rollback(conn);

    }finally {

    Methods.release(preparedStatement,conn,null);

    }

    }

    从util.Date转为sql.Date

    Date date = new Date(new java.util.Date().getTime());

    展开全文
  • JAVA批量处理框架

    2011-01-17 11:20:00
    准备自已写一个批量处理的框架,不准备用Spring Batch. 主要实现: 1.任务定义,依赖关系,执行条件,执行时间(时,日,月,年),任务级别(INFO,FATAL),任务执行时时间,任务执行顺序号,任务状态,任务执行结果 2.执行...

      准备自已写一个批量处理的框架,不准备用Spring Batch.

          主要实现:

          1.任务定义,依赖关系,执行条件,执行时间(时,日,月,年),任务级别(INFO,FATAL),任务执行时时间,任务执行顺序号,任务状态,任务执行结果

          2.执行时间控制

          3.多任务执行流程

          4.任务并行

          5.任务串行

          6.任务监控

          7.任务日志

          8.对各种报表定义支持

          9.与C通信

          10.与银联通信

          11.支持Drools

          12.MQ

          13.WebService

          14.短信通知,EMAIL通知

          15.文件加密

     

          

    转载于:https://www.cnblogs.com/candyfudp/archive/2011/01/17/1937196.html

    展开全文
  • Easy BatchThe simple, stupid batch framework for Java™Project statusAs of November 18, 2020, Easy Batch is in maintenance mode. This means only bug fixes will be addressed from now on.Version 7.0.x ...
  • Spring Batch批量处理数据实战教程 拥有近10年的软件开发及项目管...
  • 我在批量删除时,下面的错误当我批量删除五六次是报出!什么原因呢?严重:Exceptionexecutingbatch:org.hibernate.StaleStateException:...严重: Exception executing batch...
  • S3是AWS非常核心的一个存储服务。由于S3具有极强的扩展性、数据持久性、极低成本和高安全性,很多AWS用户会在一个S3存储桶上存储超过百万甚至过亿个的对象。这些对象通常是图像、视频、...可以考虑使用S3 Batch Oper...
  • java mysql 批量处理

    2015-10-08 09:35:26
    使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(10W+),如何提高效率呢? 在JDBC编程接口中Statement 有两个...Adds a set of parameters to this PreparedStatement object's batch
  • 其中红色字体部分为batch批量处理,大概处理50万条数据1分钟以内,而蓝色字体为非批量处理,大概处理几千条数据就需要一分钟 import java.text.SimpleDateFormat; import java.util.Date; import com.mysql.jdbc.C
  • MySQL使用Batch批量处理

    千次阅读 2017-03-20 14:42:56
    使用MySQL的Batch批量处理, JDBC驱动版本需要5.1.13或以上 测试使用的JDBC驱动版本:mysql-connector-java-5.1.30-bin 测试表结构如下: CREATE TABLE test (  id int(11) DEFAULT N
  • java 对oracle 批量处理

    2015-05-22 15:14:32
    当通过springjdbcTemplate.batchUpdate 执行批量处理时,一旦其他一条出现错误,则是不会有返回值的,会抛出BatchUpdateException,异常,但是我们这个异常获取成功数量...
  • JDBC 批量处理JDBC提供了对批量查询语句集合到单条查询语句的支持。在应用方面,这意味着数据...hibernate.jdbc.batch_size设定hibernate单条批量处理请求中查询语句数量的上限。可用零或负数来禁用此功能。hibernat...
  • 前言之前一篇写了SpringBatch批量加载支付宝账单的基础篇...本篇是上一篇的进阶,还是会继续基于Springbatch全程使用javaconfig的方式实现,数据加载入库、异常数据处理、并行、定时任务...
  • jdbc 批量操作 batch

    2020-01-24 16:35:50
    大量的数据处理的时候就需要使用Statement了 package com.testJDBC; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.Result...
  • Spring Batch是一个专门处理批处理的子项目,是一个轻量级的大数据量的并行处理(批处理)的框架。作用和Hadoop很相似,不过Hadoop是基于重量级的分布式环境(处理巨量数据),而SpringBatch是基于轻量的应用框架(处理中...
  • 综述批量处理一般指批量插入,批量更新,删除通过可以指定where条件实现。批量插入的实现方式有三种类型。statement,preparedStatement,callableStatement。Java代码/*** 演示批量插入的三种方式*@...
  • 3吧),之所以写这篇文章其实是纯粹是为了给开发人员一些好的使用jdbc真正去减少交互和提升批量处理batch update性能的例子; 本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1278505 ...
  • #comments batch run po server config_nohup='nohup java -jar '; config_command='command 1>'; config_and='86400 & '; alert_1='一键启动PO-SERVER基础服务设施'; function configServer(){ #加载...
  • Java JDBC Batch

    2014-06-22 22:37:00
    Java批量处理数据 import java.sql.Connection; import java.sql.PreparedStatement; //import String sql = "insert into employee (name, city, phone) values (?, ?, ?)"; Connection connection = ...
  • JDBC批量处理

    2021-01-06 11:11:22
    粗略实现JDBC中的批量处理 package Jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import ...
  • 一、使用Batch批量处理数据库当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。;1、实现批处理有两种方式,第一种方式:Statement.addBatch(sql)...
  • 不拾掇Java有好几年了(N>3吧),之所以写这篇文章其实是纯粹是为了给开发人员一些好的使用jdbc真正去减少交互和提升批量处理batch update性能的例子; 如果你是DBA,那么工作之余你可以把这篇文章推荐给开发看一下, ...

空空如也

空空如也

1 2 3 4 5 6
收藏数 105
精华内容 42
关键字:

java批量处理batch

java 订阅