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