代替执行单个查询, 我们可以执行一批(组)查询。它使性能快速。
java.sql.Statement和java.sql.PreparedStatement接口提供了用于批处理的方法。
批处理的优势快速的表现
语句接口方法批处理所需的方法如下:
方法 | 描述 |
---|---|
void addBatch(String query) | 它将查询添加到批处理中。 |
int[] executeBatch() | 它执行一批查询。 |
让我们看一下jdbc中批处理的简单示例。它遵循以下步骤:
- 加载驱动程序类
- 建立连接
- 建立陈述
- 批量添加查询
- 执行批处理
- 紧密连接
import java.sql.*;
class FetchRecords{
public static void main(String args[])throws Exception{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
con.setAutoCommit(false);
Statement stmt=con.createStatement();
stmt.addBatch("insert into user420 values(190, 'abhi', 40000)");
stmt.addBatch("insert into user420 values(191, 'umesh', 50000)");
stmt.executeBatch();
//executing the batchcon.commit();
con.close();
}}
如果你看到表user420, 则添加了两个记录。
使用PreparedStatement进行批处理的示例
import java.sql.*;
import java.io.*;
class BP{
public static void main(String args[]){
try{Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");
PreparedStatement ps=con.prepareStatement("insert into user420 values(?, ?, ?)");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
while(true){System.out.println("enter id");
String s1=br.readLine();
int id=Integer.parseInt(s1);
System.out.println("enter name");
String name=br.readLine();
System.out.println("enter salary");
String s3=br.readLine();
int salary=Integer.parseInt(s3);
ps.setInt(1, id);
ps.setString(2, name);
ps.setInt(3, salary);
ps.addBatch();
System.out.println("Want to add more records y/n");
String ans=br.readLine();
if(ans.equals("n")){
break;
}}
ps.executeBatch();
System.out.println("record successfully saved");
con.close();
}catch(Exception e){System.out.println(e);
}}}
【JDBC中的批处理】它将查询添加到批处理中, 直到用户按n。最后, 它执行批处理。因此, 所有添加的查询将被触发。
推荐阅读
- Java中的序列化和反序列化
- Windows8谷歌浏览器没有注册类怎样办?
- Win8系统C盘要多大比较合适?
- Win8系统老是提示“连接自动选择卡”如何处理?
- Windows8.1怎样隐藏文件扩展名?
- Win8总是弹出应用程序出错怎样办?
- Win8.1桌面文件无法拖动到文件夹怎样办?
- Win8.1 USB转串口线用不了出错怎样办?
- Win8安装软件提示“扩展属性不一致”怎样办?