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.

  • 相关阅读:
    用TPLINK 无线网卡设置无线工作环境
    ChartDirector与JFreeChart两款主要web图表工具调研报告
    发现奇怪的问题,TOMCAT居然跟本机网卡的DNS设置有关
    解决Oracle监听器服务不能启动的问题
    JAVA 调用 .NET写的WEBSERVICE
    Windows Forms 实现安全的多线程详解
    异步调用与多线程
    关于.NET异步调用的初步总结
    c#中的多线程同步
    WinForm界面开发
  • 原文地址:https://www.cnblogs.com/yslf/p/10731893.html
Copyright © 2011-2022 走看看