日期:2014-05-16  浏览次数:20479 次

心得7--JDBC回顾-批处理案例解说

1. 业务场景:当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率。

l    实现批处理有两种方式,第一种方式:

?       Statement.addBatch(sql)  list

?       优点:可以向数据库发送多条不同的SQL语句。

?       缺点:SQL语句没有预编译。当向数据库发送多条语句相同,但仅参数不同的SQL语句时,需重复写上很多条SQL语句。

l    执行批处理SQL语句

?       executeBatch()方法:执行批处理命令

?       clearBatch()方法:清除批处理命令

l    实现批处理的第二种方式:

?       PreparedStatement.addBatch()

?       优点:发送的是预编译后的SQL语句,执行效率高。

?       缺点:只能应用在SQL语句相同,但参数不同的批处理中。因此此种形式的批处理经常用于在同一个表中批量插入数据,或批量更新表的数据。

2.  实际案例分析

    题目:新建一个用户表person,包括的字段有id,name,headimg,intro。其中heading的类型为blob,intro的类型为text,使用jdbc完成这样一个需求,向用户表中插入三条记录。

//  一般做法:

packagecom.zuoye;

 

importjava.io.BufferedReader;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.FileReader;

importjava.sql.Connection;

importjava.sql.PreparedStatement;

importcom.Db.DbManager;

 

publicclass Person {

   public void insert(){

      Connection con =DbManager.getConnection();

      PreparedStatement st = null;

      try {  

   String sql = "insert into personvalues(?,?,?,?)";

           st = con.prepareStatement(sql); 

                File f1 = newFile("src/Eclipse.txt");

                File f2 = newFile("src/1.jpg");