JDBC批量插入、批量删除、批量更新

本文介绍了在Java中使用JDBC进行数据库批量插入、更新和删除的三种方法,包括使用PreparedStatement、Statement和直接使用Statement的方式,并通过示例代码进行详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、JDBC的批量插入

二、JDBC的批量更新

三、JDBC的批量删除


方法一:使用PreparedStatement加批量的方法

    try {   
            Class.forName("com.mysql.jdbc.Driver");   
            conn = DriverManager.getConnection(o_url, userName, password);   
            conn.setAutoCommit(false);   
            String sql = "INSERT adlogs(ip,website,yyyymmdd,hour,object_id) VALUES(?,?,?,?,?)";   
            PreparedStatement prest = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);   
            for(int x = 0; x < size; x++){   
               prest.setString(1, "192.168.1.1");   
               prest.setString(2, "localhost");   
               prest.setString(3, "20081009");   
               prest.setInt(4, 8);   
               prest.setString(5, "11111111");   
               prest.addBatch();   
            }   
            prest.executeBatch();   
            conn.commit();   
            conn.close();   
      } catch (SQLException ex) {   
          Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE, null, ex);   
      } catch (ClassNotFoundException ex) {   
           Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE, null, ex);   
      }  

方法二:使用Statement加批量的方法

    try {

            Class.forName("com.mysql.jdbc.Driver");   
            conn = DriverManager.getConnection(o_url, userName, password);   

            conn.setAutoCommit(false);   
            Statement stmt =conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);   
            for(int x = 0; x < size;x++){   
              stmt.addBatch("INSERT INTOadlogs(ip,website,yyyymmdd,hour,object_id) VALUES('192.168.1.3','localhost','20081009',8,'23123')");   

            }   
            stmt.executeBatch();   
            conn.commit();   
            conn.close();   

      } catch (SQLException ex) {   
         Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE, null, ex);   
      } catch (ClassNotFoundException ex) {   
           Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE, null, ex);   
      }  

方法三:直接使用Statement

    try {   

            Class.forName("com.mysql.jdbc.Driver");   
            conn = DriverManager.getConnection(o_url, userName, password);   
            conn.setAutoCommit(false);   
            Statement stmt =conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,   
            ResultSet.CONCUR_READ_ONLY);   
            for(int x = 0; x < size;x++){   
               stmt.execute("INSERT INTOadlogs(ip,website,yyyymmdd,hour,object_id) VALUES('192.168.1.3','localhost','20081009',8,'23123')");   
            }  

            conn.commit();   
            conn.close();   

      } catch (SQLException ex) {   
          Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE, null, ex);   
      } catch (ClassNotFoundException ex) {   
           Logger.getLogger(MyLogger.class.getName()).log(Level.SEVERE, null, ex);   
      }  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值