在Eclipse中测试MySQL-JDBC(9)statement 批处理(同时执行多条sql语句)

来源:互联网 发布:xp中windows设置在哪 编辑:程序博客网 时间:2024/05/23 00:59

【需求】

1、  创建一个名叫batch_test的数据库

2、  切换到新建的数据库

3、  在该数据库中创建一张名为batch的表,字段有id,name,password.

4、  向该表插入三条数据。

【1 需要的工具类及工具类中的配置见前一个文章】


【2  测试类 JdbcBatch.java 】

package com.flying.jdbc;import java.sql.Connection;import java.sql.Statement;import org.junit.Test;public class JdbcBatch {@Testpublic void statementBatch(){Connection con = null;Statement st = null;try {con =JdbcUtils.getConnection();st = con.createStatement();String sql1 = "create database batch_test";String sql2 = "use batch_test";String sql3 = "create table batch(id int primary key auto_increment,name varchar(20),password varchar(20))";String sql4 = "insert into batch values(null,'zhangsan','123')";    String sql5 = "insert into batch values(null,'lisi','123')";String sql6 = "insert into batch values(null,'wangwu','123')";st.addBatch(sql1);st.addBatch(sql2);st.addBatch(sql3);st.addBatch(sql4);st.addBatch(sql5);st.addBatch(sql6);st.executeBatch();} catch (Exception e) {e.printStackTrace();}finally{JdbcUtils.release(con, st);}}}


【结果 】

在数据库中用视图查看工具查看是否成功添加3条数据

【注意 :java程序中的插入语句中的数据暂时不要使用中文,若换作中文,数据添加不进去,控制台会报错!】


【总结】

采用Statement.addBatch(sql)方式实现批处理:

优点:可以向数据库发送多条不同类型的sql语句。

缺点: SQL语句没有预编译,有注入风险。

当向数据库发送多条语句相同,但参数不同的SQL语句时,需重复写上很多条SQL语句并且编译多次。例如:

              Insertinto batch values(‘aa’,’111’);

              Insertinto batch values(‘bb’,’222’);

              Insertinto batch values(‘cc’,’333’);

              Insertinto batch values(‘dd’,’444’);



阅读全文
0 0
原创粉丝点击