批处理:若需要对数据库进行多步操作,则就没必要每次都和数据库进行一次通信,这样很消耗资源和时间。则需要将操作进行批处理;
    Statement方式来实现批处理
        优点:
            可以包含结构不同的sql语句
        缺点:
            不能防止sql注入攻击
            没有预编译机制, 效率低下
            如果发送的sql语句主干部分相同, 主干部分每次都需要写.
        
    PreparedStatement方式实现批处理
        优点:
            可以防止sql注入攻击
            采用预编译机制, 效率高
            如果发送的sql语句主干部分相同, 主干部分只需要写一次, 每次发送的只是参数部分.
        缺点:
            包含的sql语句的主干部分必须相同

PreparedStatement 实现基本的批处理:

 public static void main(String[] args) {
Connection conn = null;
Statement stat = null;
PreparedStatement ps = null; try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql:///mydb5","root","admin");
//开始事务
conn.setAutoCommit(false);
String sql = "insert into tb_batch values (null,?)";
ps = conn.prepareStatement(sql);
for(int i=2000;i<3000;i++){
ps.setString(1, "tong"+i);
ps.addBatch();
}
ps.executeBatch();
//提交事务
conn.commit();
System.out.println("完成???????????"); } catch (Exception e) {
e.printStackTrace();
}finally{
JDBCutils.closeResou(conn, ps, null);
} }

Statement 实现基本的批处理:

 public static void main(String[] args) {

         Connection conn = null;
Statement stat = null;
//注册驱动和连接数据库
conn = JDBCutils.getConn();
try {
stat = conn.createStatement();
stat.addBatch("drop database if exists mydb5");
stat.addBatch("create database mydb5");
stat.addBatch("use mydb5");
stat.addBatch("create table tb_batch(id int primary key auto_increment, name varchar(20))");
stat.addBatch("insert into tb_batch values(null,'a')");
stat.addBatch("insert into tb_batch values(null,'b')");
stat.addBatch("insert into tb_batch values(null,'c')");
stat.executeBatch();
System.out.println("完成"); } catch (Exception e) {
e.printStackTrace();
}finally{
JDBCutils.closeResou(conn, stat, null);
} }

注:JDBCutils.closeResou这个是自定义的一个JDBC工具类。主要是用来关闭资源和建立连接。

http://www.cnblogs.com/tongxuping/p/6880315.html    ---> JDBCutils自定义的工具类包

PreparedStatement 和 Statement 实现基本的批处理的更多相关文章

  1. PreparedStatement与Statement的区别

    PreparedStatement与statement的区别 1.PreparedStatement是预编译的,对于批量处理可以大大提高效率. 也叫JDBC存储过程 2.使用 Statement 对象 ...

  2. preparedStatement和Statement 有什么不一样

    1. PreparedStatement接口继承Statement, PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象.    2.作 ...

  3. JDBC 中preparedStatement和Statement区别

    一.概念 PreparedStatement是用来执行SQL查询语句的API之一,Java提供了 Statement.PreparedStatement 和 CallableStatement三种方式 ...

  4. Java中PreparedStatement与Statement的总结

    概要: PreparedStatement 接口继承自 Statement 接口,PreparedStatement 比普通Statement 对象使用起来更加灵活,更有效率. 一.PreparedS ...

  5. JDBC增删改查,PreparedStatement和Statement的区别

    此篇是在上一篇的基础上使用PreparedStatement对象来实现JDBC增删改查的 具体工具类JDBCTools和实现类和配置文件在上一篇Statement对象实现的时候有写. 上一篇地址htt ...

  6. PreparedStatement和Statement的区别

    转自:http://blog.sina.com.cn/s/blog_77eba18f01019csh.html 1. PreparedStatement接口继承Statement, PreparedS ...

  7. 应该始终以PreparedStatement代替Statement

    在JDBC应用中,如果你已经是稍有水平开发者,你就应该始终以PreparedStatement代替Statement.也就是说,在任何时候都不要使用Statement 一.代码的可读性和可维护性.虽然 ...

  8. Java中PreparedStatement和Statement的用法区别(转)

    1. PreparedStatement接口继承Statement, PreparedStatement 实例包含已编译的 SQL 语句,所以其执行速度要快于 Statement 对象.   2.作为 ...

  9. JDBC中PreparedStatement和Statement的区别

    共同点: PreparedStatement和Statement都是用来执行SQL查询语句的API之一. 不同点: 在PreparedStatement中,当我们经常需要反复执行一条结构相似的sql语 ...

随机推荐

  1. stap用法

    sudo stap -g submit_bio.stp -D MAXACTION=100000 kern_path_locked lookup_one_len filename_create --&g ...

  2. SSH整合主要XML代码

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2 ...

  3. 【题解】[USACO12JAN]视频游戏的连击Video Game Combos

    好久没有写博客了,好惭愧啊……虽然这是一道弱题但还是写一下吧. 这道题目的思路应该说是很容易形成:字符串+最大值?自然联想到学过的AC自动机与DP.对于给定的字符串建立出AC自动机,dp状态dp[i] ...

  4. 【题解】HAOI2011Problem b

    第一次接触莫比乌斯反演,总之脑子都快要炸掉了……好难啊!本蒟蒻表示根本无法理解呜呜呜呜呜……不过在机房DL的帮助下总算是磕磕绊绊的A掉了这一题: 这道题目要我们的求的是:(1)ΣiΣj [gcd(i, ...

  5. [洛谷P1231] 教辅的组成

    题目大意:有n1本书,n2本练习册和n3个答案,然后又一些条件,说明某本答案可能和某本书对应,某本练习册可能和某本书对应,求最多有多少本完整的书(有书,练习册,答案) 题解:网络流,对应就连边,然后考 ...

  6. ARC076 F Exhausted? Hall定理 + 线段树扫描线

    ---题面--- 题目大意: 有n个人,m个座位,每个人可以匹配的座位是[1, li] || [ri, m],可能有人不需要匹配座位(默认满足),问最少有多少人不能被满足. 题解: 首先可以看出这是一 ...

  7. [Leetcode] 3sum 三数和

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  8. BZOJ2120 数颜色 【带修改莫队】

    2120: 数颜色 Time Limit: 6 Sec  Memory Limit: 259 MB Submit: 6579  Solved: 2625 [Submit][Status][Discus ...

  9. [POI2006] OKR-period of words

    传送门 - > \(bzoj 1511\) 题目描述 A string is a finite sequence of lower-case (non-capital) letters of t ...

  10. javascript继承有5种实现方式

    1.对象冒充 function Parent(username){ this.username = username; this.hello = function(){ alert(this.user ...