Java中怎样实现批量删除操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中怎样实现批量删除操作相关的知识,希望对你有一定的参考价值。

Java中实现批量删除操作的方法如下:
示例代码如下:
public PreparedStatement pstmt=null;
/**
* 得到连接对象
*/
public void getConnection()
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/zufang?user=root&password=root&useUnicode=true&characterEncoding=GB2312";
try
Class.forName(driver);
con=DriverManager.getConnection(url,"root","root");
catch (ClassNotFoundException e)
e.printStackTrace();
catch (SQLException e)
e.printStackTrace();


public Connection con=null;
public PreparedStatement pstmt=null;
/**
* 得到连接对象
*/
public void getConnection()
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/zufang?user=root&password=root&useUnicode=true&characterEncoding=GB2312";
try
Class.forName(driver);
con=DriverManager.getConnection(url,"root","root");
catch (ClassNotFoundException e)
e.printStackTrace();
catch (SQLException e)
e.printStackTrace();


/ * 批量删除信息表中的信息
* @param sql
* @param param
* @return
*/
public boolean updateBatchDel(String sql,String[] param)
boolean flag = false;
getConnection();
try
con.setAutoCommit(false);
pstmt = con.prepareStatement(sql);
for(int i =0 ;i<param.length;i++)
pstmt.setString(1,param[i].trim());
pstmt.addBatch();

pstmt.executeBatch(); //批量执行
con.commit();//提交事务
flag = true;
catch (SQLException e)
try
con.rollback(); //进行事务回滚
catch (SQLException ex)
ex.printStackTrace();

finally
closeAll(null,pstmt,con);

return flag;

/**
* 批量删除信息表中的信息
* @param sql
* @param param
* @return
*/
public boolean updateBatchDel(String sql,String[] param)
boolean flag = false;
getConnection();
try
con.setAutoCommit(false);
pstmt = con.prepareStatement(sql);
for(int i =0 ;i<param.length;i++)
pstmt.setString(1,param[i].trim());
pstmt.addBatch();

pstmt.executeBatch(); //批量执行
con.commit();//提交事务
flag = true;
catch (SQLException e)
try
con.rollback(); //进行事务回滚
catch (SQLException ex)
ex.printStackTrace();

finally
closeAll(null,pstmt,con);

return flag;

删除后同步提交就可以了。
参考技术A /*
怎么用java同时实现批量删除,批量修改?
*/

//1,可以利用循环批量来操作数组元素

int arr[] = new int[100];//定义一个数组,长度为100

//对该数组进行批量赋值
for (int i = 0; i < arr.length; i++)
arr[i] = i;


//2,对于集合,可以使用removeALL方法进行批量删除
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");

list.removeAll(list);

System.out.println(list);

//这上是java自带的一些方法

//3,JDBC

/**
* 对于数据库的操作,就需要用SQL语言来批量处理了;
* 比如:select *from EMP;
*
* 利用JDBC的一些方法,比如预处理命令,可以对数据库进行批量操作,
*/
参考技术B 删除数据库还是什么啊?你这问题太模糊了

PHP+MySql+Bootstrap实现用户界面数据的删除修改与批量选择删除——实例操作

第一步:在数据库中建立要操作的信息表 如下图:

第二步:实现对该信息表中数据的删除功能

代码如下:main(主页面)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>删除功能</title>
        <script src="bootstrap/js/jquery-1.11.2.min.js"></script>  //引入这里的三个文件
        <script src="bootstrap/js/bootstrap.min.js"></script>
        <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
    </head>
    <body>
        <div style="height: 100px;"></div>                    
        <form action="batch_process.php" method="post">  //利用form表单进行提交页面
        <table class="table table-hover" style="max-width: 800px;margin-left: 260px;">
              <thead>
                <tr>
                  <th><input type="checkbox" onclick="qx(this)"/>&nbsp;&nbsp;&nbsp;代号</th>
                  <th>名称</th>
                  <th>价格</th>
                  <th>产地</th>
                  <th>库存</th>
                  <th>操作</th>
                </tr>
              </thead>
              <tbody>
<?php
              $db = new MYSQLi("localhost","root","","0710_info");
              $sql = "select * from fruit";
              $result = $db->query($sql);
              $arr = $result->fetch_all();
              
              foreach($arr as $v){
                  echo "<tr>
                  <td><input type=\'checkbox\' class=\'ck\' value=\'{$v[0]}\' name=\'sub[ ]\'/>&nbsp;&nbsp;&nbsp;{$v[0]}</td>
                  <td>{$v[1]}</td>
                  <td>{$v[2]}</td>
                  <td>{$v[3]}</td>
                  <td>{$v[4]}</td>
                  <td>
                          <a href=\'del_processpage.php?code={$v[0]}\' onclick=\\"return confirm(\'确定删除吗?\')\\">  //防止失误操作处理
                              <button type=\'button\' class=\'btn btn-primary btn-xs\'>删除</button>
                          </a>
                          <a href=\'update_page.php?code={$v[0]}\' onclick=\\"return confirm(\'确定修改吗?\')\\">
                              <button type=\'button\' class=\'btn btn-primary btn-xs\'>修改</button>
                          </a>
                  </td>
                </tr>";
              }
?>
              </tbody>
        </table>
            <button type="submit" class="btn btn-danger btn-xs" style="margin-left: 260px;">批量删除</button>
        </form>
    </body>

 //这里的JS操作为第四步批量删除的批量选择按钮的点击事件操作(同第四步)
    <script>
        function qx(qx){
            var ck = document.getElementsByClassName("ck");
            for(var i=0;i<ck.length;i++){        
            ck[i].checked=qx.checked;
        }
    }        
    </script>
</html>

delete(删除处理页面)

<?php
$code = $_GET["code"];
$db = new MYSQLi("localhost","root","","0710_info");
$sql = "delete from fruit where ids=\'{$code}\'";
if($db->query($sql)){
    header("location:del_page.php");
}else{
    echo "删除失败!";
}  

第三步:实现对数据库中数据的修改功能(与主界面连接)

代码如下 :

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>修改功能</title>
        <script src="bootstrap/js/jquery-1.11.2.min.js"></script>
        <script src="bootstrap/js/bootstrap.min.js"></script>
        <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
    </head>
    <style>
    *{
        margin: 0px auto;
        padding: ;
    }
    .input-group{
        margin-top: 15px;
    }
    .sub{
        margin: 20px 260px 10px;
    }
    </style>
    
    <body>
        <div style="height: 100px;"></div>
        <?php
        $code = $_GET["code"];
        $db = new MYSQLi("localhost","root","","0710_info");
        $sql = "select * from fruit where ids=\'{$code}\'";
        $result = $db->query($sql);
        $arr = $result->fetch_row();    
        ?>
        <form action="update_processpage.php" method="post">
            <div class="panel panel-default" style="max-width: 600px;">
                <div class="panel-heading">
                    修改数据
                </div>
            <div class="panel-body">    
                     <div class="input-group">
                        <span class="input-group-addon">代号</span>
                        <input type="text" class="form-control" readonly="readonly" placeholder="请输入代号" name="code" value="<?php echo $arr[0] ?>">
                    </div>
                    <div class="input-group">
                        <span class="input-group-addon">名称</span>
                        <input type="text" class="form-control" placeholder="请输入名称" name="name" value="<?php echo $arr[1] ?>">
                    </div>
                    <div class="input-group">
                        <span class="input-group-addon">价格</span>
                        <input type="text" class="form-control" placeholder="请输入价格" name="price" value="<?php echo $arr[2] ?>">
                    </div>
                    <div class="input-group">
                        <span class="input-group-addon">产地</span>
                        <input type="text" class="form-control" placeholder="请输入产地" name="chandi" value="<?php echo $arr[3] ?>">
                    </div>
                    <div class="input-group">
                        <span class="input-group-addon">库存</span>
                        <input type="text" class="form-control" placeholder="请输入库存" name="kucun" value="<?php echo $arr[4] ?>">
                    </div>        
                <button type="submit" class="btn btn-primary sub">提交</button>
               </div>
     </div>                 
        </form>
    </body>
</html>

update(修改处理页面)

<?php
$code = $_POST["code"];
$name= $_POST["name"];
$price = $_POST["price"];
$chandi = $_POST["chandi"];
$kucun = $_POST["kucun"];

$db = new MYSQLi("localhost","root","","0710_info");
$sql = "update fruit set
name=\'{$name}\',price={$price},source=\'{$chandi}\',numbers={$kucun} where ids=\'{$code}\'";

if($db->query($sql)){
    header("location:del_page.php");
}else{
    echo "修改失败!";
}

第四步:实现对数据库中数据的批量选择与删除的功能(与主界面连接)

JS操作代码如下:

 <script>
        function qx(qx){
            var ck = document.getElementsByClassName("ck");
            for(var i=0;i<ck.length;i++){        
            ck[i].checked=qx.checked;
        }
    }        
    </script>

PHP操作代码如下:

<?php
$arr= $_POST["sub"];
require_once "./DBDA.class.php";//加载类进入操作界面
$db = new DBDA();
$str = implode("\',\'", $arr);
$sql = "delete from fruit where ids in (\'{$str}\')";
if($db->query($sql,1)){
    header("location:del_page.php");
}else{
    echo "删除失败!";
}

***这里进行了数据访问类的封装操作(优化使用)

PHP代码如下:

<?php
class DBDA{
    public $host="localhost";
    public $uid="root";
    public $pwd="";
    public $dbname="0710_info";
    /*
        query方法:执行用户给的sql语句,并返回相应的结果
        $sql:用户需要执行的sql语句
        $type:用户需要执行的sql语句的类型
        return:如果是增删语句改返回true或false,如果是查询语句返回二维数组
     */
    public function query($sql,$type=1){//默认true为增删改
        $db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
        if(mysqli_connect_error()){
            return "连接失败!";    
        }
        $result = $db->query($sql);
        if($type==1){
            return $result;//增删改语句返回true或false
        }else{
            return $result->fetch_all();//查询语句返回二维数组
        }    
    }
}

以上是关于Java中怎样实现批量删除操作的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis实现批量删除操作

怎么用java同时实现批量删除,批量修改

java实现多选批量删除

java如何对数据库的数据进行批量删除之后接着做批量增加,删除和增加是一次操作完成

SAP 采购申请单批量删除 怎么操作

Mybatis实现批量删除