zoukankan      html  css  js  c++  java
  • JDBC删除数据

    JDBC删除数据

    Demo: 删除数据 (删除编号是 7369 的雇员信息)

     1 public class TestMysql {
     2     //取得连接
     3     private static Connection conn =ConnectionUitl.getConnection();
     4     
     5     public static void main(String[] args) {
     6         System.out.println("删除的数据行数是:" + deleteById(7369));
     7     }
     8     
     9     public static int deleteById(Integer empno) {
    10         String sql = "DELETE FROM emp WHERE empno=" + empno;
    11         
    12         //获取发送 sql 语句的对象
    13         try {
    14             PreparedStatement pst = conn.prepareStatement(sql);
    15             //发送 sql 语句
    16             return pst.executeUpdate();
    17         } catch (Exception e) {
    18             e.printStackTrace();
    19         } finally {
    20             ConnectionUitl.close(conn);
    21         }
    22         return 0;
    23     }
    24 }

    Demo: 批量删除数据 (删除编号为 7654/7782/7844 的雇员信息)
      方法: 可以把要删除的雇员的编号保存到一个集合中传递这个方法进行删除

     1 public class TestMysql {
     2     //取得连接
     3     private static Connection conn =ConnectionUitl.getConnection();
     4     
     5     public static void main(String[] args) {
     6         Set<Integer> empnos = new HashSet<Integer>();
     7         empnos.add(7654);
     8         empnos.add(7782);
     9         empnos.add(7844);
    10         System.out.println("删除的数据行数是: " + deleteBarch(empnos));
    11     }
    12     
    13     public static int deleteBarch(Set<Integer> empnos) {
    14         StringBuffer sb = new StringBuffer("DELETE FROM emp WHERE empno IN(");
    15         Iterator<Integer> iter = empnos.iterator();
    16         while (iter.hasNext()) {
    17             sb.append(iter.next() + ",");
    18         }
    19         
    20         sb.delete(sb.length()-1, sb.length());
    21         sb.append(")");
    22         
    23         
    24         //获取发送 sql 语句的对象
    25         try {
    26             PreparedStatement pst = conn.prepareStatement(sb.toString());
    27             //执行 sql 语句
    28             return pst.executeUpdate();
    29         } catch (Exception e) {
    30             e.printStackTrace();
    31         } finally {
    32             ConnectionUitl.close(conn);
    33         }
    34         return 0;
    35     }
    36 }

    为什么使用StringBuffer 而不是String
      因为自渡船要频繁的修改,如果使用 String 会造成大量垃圾
      (String 类型一旦声明则内容不可以改变, 改变的是引用, 引用会导致垃圾产生),
      所以这种情况下使用 StringBuffer 或者 StringBuilder.

  • 相关阅读:
    SpringDataRedis 常用命令
    Java 连接 Redis
    Java 循环标记
    初学Docker
    线程池,进程和线程的理解
    Linux-定时器任务
    Linux 命令2
    Linux命令
    Java基础整理
    微服务简介
  • 原文地址:https://www.cnblogs.com/yslf/p/10731893.html
Copyright © 2011-2022 走看看