2018-03-08 JDBC批处理

预处理语句对象 PreparedStatement

    String sql = "delete from ajia_user where id=?";

    PreparedStatement pstmt

    = conn.prepareStatement(sql);

        如果删除10条数据,与数据库交互10次

    for(int id:ids){

    pstmt.setInt(1,id);

    //将操作添加到语句列表中

    pstmt.addBatch();

    //pstmt.executeUpdate();

    //一次性缓存一组数据

    在语句对象中,维护了一个语句列表

    }

    //一次性执行一组操作

    pstmt.executeBatch();   

    addBatch(),填充语句列表

    executeBatch(),执行语句列表

    clearBatch(),清除语句列表

public class JdbcDemo1 {

    public static void main(String[] args) {

        int[] ids = {70,71};

        String sql = "DELETE FROM ajia_user WHERE id=?";

        Connection conn = null;

        boolean autoCommit = false;

        try { conn = JdbcUtil.getConn();

        autoCommit = conn.getAutoCommit();

        conn.setAutoCommit(false);

        PreparedStatement pstmt = conn.prepareStatement(sql);

        for(int id:ids){

        pstmt.setInt(1, id);

        //添加到语句列表中

        pstmt.addBatch();

        }

        //执行语句列表 pstmt.executeBatch();

        //默认JDBC自动给数据库发送commit指令 conn.commit();

        //关闭语句对象

        pstmt.close();

        } catch (SQLException e) {

        try {

        conn.rollback();

        } catch (SQLException e1) {

        e1.printStackTrace();

        } e.printStackTrace();

        }finally{ try {

        conn.setAutoCommit(autoCommit);

        } catch (SQLException e) {

        e.printStackTrace();

        } JdbcUtil.close(conn); } } }


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文内容 1.什么是JDBC以及为什么要使用JDBC 2.JDBC核心API的讲解 3.使用JDBC核心API进行...
    Vincilovfang阅读 1,235评论 0 11
  • JDBC简介 SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。JDBC...
    奋斗的老王阅读 1,550评论 0 51
  • 预编译sql处理(防止sql注入) Statement : 执行SQL命令CallableStatement : ...
    奋斗的老王阅读 1,164评论 2 52
  • 本人的环境为Myeclipse10、MySQL5.7.15 本文包括:简介JDBC编程步骤打通数据库程序详解—Dr...
    廖少少阅读 4,005评论 7 39
  • 今天上午在总经理办公室开研讨会,主题是打造生态圈,专注做好客户增值服务,一把手、分管总和各部门负责人悉数到场...
    之乎者也06阅读 343评论 0 0