Batch Processing in JDBC
Instead of executing a single
query, we can execute a batch (group) of queries. It makes the performance
fast.
The java.sql.Statement and
java.sql.PreparedStatement interfaces provide methods for batch processing.
Advantage of Batch
Processing
Fast Performance
Methods of Statement
interface
The required methods for batch
processing are given below:
| 
   
Method 
 | 
  
   
Description 
 | 
 
| 
   
void
  addBatch(String query) 
 | 
  
   
It
  adds query into batch. 
 | 
 
| 
   
int[]
  executeBatch() 
 | 
  
   
It
  executes the batch of queries. 
 | 
 
Example of batch processing in jdbc
Let's see the simple example of
batch processing in jdbc. It follows following steps:
- Load
     the driver class
 - Create
     Connection
 - Create
     Statement
 - Add
     query in the batch
 - Execute
     Batch
 - Close
     Connection
 
1.    import java.sql.*;  
2.    class FetchRecords{  
3.    public static void main(String args[])throws Exception{  
4.    Class.forName("oracle.jdbc.driver.OracleDriver");  
5.    Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");  
6.    con.setAutoCommit(false);  
7.      
8.    Statement stmt=con.createStatement();  
9.    stmt.addBatch("insert into user420 values(190,'abhi',40000)");  
10. stmt.addBatch("insert into user420 values(191,'umesh',50000)");  
11.   
12. stmt.executeBatch();//executing the batch  
13.   
14. con.commit();  
15. con.close();  
16. }}  
If you see the table user420,
two records has been added.
Example of batch processing using
PreparedStatement
1.    import java.sql.*;  
2.    import java.io.*;  
3.    class BP{  
4.    public static void main(String args[]){  
5.    try{  
6.      
7.    Class.forName("oracle.jdbc.driver.OracleDriver");  
8.    Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");  
9.      
10. PreparedStatement ps=con.prepareStatement("insert into user420 values(?,?,?)");  
11.   
12. BufferedReader br=new BufferedReader(new InputStreamReader(System.in));  
13. while(true){  
14.   
15. System.out.println("enter id");  
16. String s1=br.readLine();  
17. int id=Integer.parseInt(s1);  
18.   
19. System.out.println("enter name");  
20. String name=br.readLine();  
21.   
22. System.out.println("enter salary");  
23. String s3=br.readLine();  
24. int salary=Integer.parseInt(s3);  
25.   
26. ps.setInt(1,id);  
27. ps.setString(2,name);  
28. ps.setInt(3,salary);  
29.   
30. ps.addBatch();  
31. System.out.println("Want to add more records y/n");  
32. String ans=br.readLine();  
33. if(ans.equals("n")){  
34. break;  
35. }  
36.   
37. }  
38. ps.executeBatch();  
39.   
40. System.out.println("record successfully saved");  
41.   
42. con.close();  
43. }catch(Exception e){System.out.println(e);}  
44.   
45. }}  
It will add the queries into
the batch until user press n. Finally it executes the batch. Thus all the added
queries will be fired.
No comments:
Post a Comment