Java批处理

发布时间:2024-12-02 11:12

了解如何使用批处理批量处理照片 #生活技巧# #数码产品使用技巧# #摄影后期处理技巧#

最新推荐文章于 2024-08-07 18:04:15 发布

汤高 于 2015-06-03 00:53:18 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

批处理
JDBC对批处理的操作,首先简单说一下JDBC操作sql语句的简单机制。
JDBC执行数据库操作语句,首先需要将sql语句打包成为网络字节流,传递给数据库,数据库经过解包,然后编译sql语句,最后执行,然后将结果通过字节流的形式返回给JDBC API,简单的来说大致分为以下几点:
Ø JDBC打包sql语句;
Ø 发送字节流至数据库;
Ø 数据库解包;
Ø 检查sql语法,编译sql;
Ø 执行sql语句;
Ø 将sql语句返回给JDBC 接口;

如果我们需要插入成千上万甚至更多的数据库,如果采用传统的方式,势必每次都需要经历上述几个步骤,其中执行多少次sql语句就需要进行多少次通讯,网络数据通讯的开销也是一个很耗时的操作步骤,怎样才能减少网络的操作次数呢?我们可否将所有的需要执行的sql语句一次性传递给数据库,然后再将结果返回回来呢,这样不就减少了网络层的开销么?基于这样的原因JDBC API 提供了一个批处理的机制,方便我们的操作.
举例说明:

public class Test4 {
public static void main(String[] args) throws SQLException {
DBHelper db=new DBHelper();
long starttime=System.currentTimeMillis();
String sql=”“;
for( int i=2;i<1000;i++){
sql=”insert into tuser values( ?,’a’)”;
List params=new ArrayList();
params.add( i +”“);
db.doUpdate(sql, params);
}
long endtime=System.currentTimeMillis();
System.out.println( endtime-starttime );
}
}

结果:非常耗时间 ,而且语句过多会导致程序崩溃
下面看看使用了批处理的例子:
public class Test5 {

public static void main(String[] args) throws SQLException { DBHelper db=new DBHelper(); Connection con=db.getCon(); String sql="insert into tuser values( ?,?)"; PreparedStatement pstmt=con.prepareStatement(sql); for( int i=1;i<100000;i++){ pstmt.setString( 1,i+""); pstmt.setString(2, "a"+i); pstmt.addBatch();//添加一次预定义参数 if( i%1000==0){ int [] r=pstmt.executeBatch(); //批量执行预定义SQL 这个返回值里面存的是每条语句执行的结果. } } pstmt.close(); con.close(); }

12345678910111213141516

}

网址:Java批处理 https://www.yuejiaxmz.com/news/view/346100

相关内容

Java解决if(!=null)臭名昭著的判空处理(Optional)
【原创】java+springboot+mysql日程管理系统设计与实现
robot java
java代理模式的应用场景
基于java的健康管理系统设计与实现
dentity在Java里是什么意思
java健康饮食管理系统(ssm)
Java家庭理财系统(开题+源码)
Java课程设计:学生信息管理系统
java计算机二级知识点、易错点整理(二)

随便看看