当向数据库发送多条不同的SQL语句时,可以使用Statement实现批处理。Statement通过addBatch()方法添加一条SQL语句,通过executeBatch()方法批量执行SQL语句。为了帮助大家更好地学习如何使用Statement实现批处理,下面通过一个案例来演示。
Example10.java
package cn.itcast.jdbc.exanple;
inport java.sql.Connection;
inport
java.sgl.Statenent;
inport cn.itcast.jdbc.example.utils.JDBCUtils;
public
class Example10 (
public static void main (String[] args) {
Connection conn=null;
Statement stmt=nul1;
try {
//加载数据库驱动
conn=JDBCUtils.getConnection();
stmt=conn.createStatement ();
//SQL语句
String sgl1="DROP
TABLE IF EXISTS school";
String sql2="CREATE TABLE school(id int,name
varchar(20))";
String sql3="INSERT INTO school
VALUES(2,'传智播客')";
String aql4="UPDATE school SET id=1";
//Statement 批处理 sQL语句
stmt.addBatch(sql1);
stmt.addBatch(sq12);
stmt.addBatch(sq13);
stmt.addBatch(sql4);
stmt.executeBatch();
} catch (Exception e) {
e.printStackTrace();
}finally{ //释放资源
ARpCUtils.release(nul1, stmt, conn);
}
}
}
程序运行过程中,Statement会将4条SQL语句提交给数据库一起执行。为了验证上述中的SQL语句是否执行成功,进入MySQL,使用SELECT语句查看school表,SQL语句的执行结果如下所示。
mysql>select * from school;
+-------+-----------+
| id | name |
+-------+-----------+
| 1 | 传智播客 |
+-------+-----------+
I row in set (0.00 sec)
从上述结果可以看出,school表存在,并且向表中添加了一条数据,该数据的id被成功修改成了1。