注册 登录
编程论坛 JAVA论坛

不知道是为什么?

yu1543054075 发布于 2015-10-20 14:22, 504 次点击
public static int delUser(String uid)//删除用户
    {
        int count=0;//设置返回值
        Vector<String> vpid=new Vector<String>();//存放pid的集合 一个用户对应多个联系人
        try
        {
            con=DButil.getConnection();//得到数据库连接
            stat=con.createStatement();//创建语句对象
            rs=stat.executeQuery("select pid from lxy where uid='"+uid+"'");//得到每个联系人的ID
            while(rs.next())
            {
                String pid=rs.getString(1);//得到用户下的pid               
                vpid.add(pid);//添加进联系人集合
            }
            stat=con.createStatement();//重新创建语句对象
            for(String s:vpid)
            {//循环删除每个联系人的相册
                stat.executeUpdate("delete from photo where pid='"+s+"'");
            }
            //在联系人lxy表中删除每个联系人            
            count=stat.executeUpdate("delete from lxy where uid='"+uid+"'");
            //在用户表中删除用户
            stat.executeUpdate("delete from user where uid='"+uid+"'");            
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        finally{DButil.closeCon();}//关闭数据库连接
        return count;//返回删除了多少个联系人
    }   
上面的两个语句为什么不需要判断是否删除成功呢?即在它的前面加上一个count,判断是否删除成功,请指导!
5 回复
#2
诸葛欧阳2015-10-20 16:33
你觉得有必要吗?即使没删除成功在那里又处理不了
#3
yu15430540752015-10-20 20:59
count=stat.executeUpdate("delete from lxy where uid='"+uid+"'");那这一句前面的count也就没有必要了是吗?
#4
yu15430540752015-10-20 21:01
我怎么知道它是否更新成功了呢?
#5
calix2015-10-20 23:32
以下是引用yu1543054075在2015-10-20 20:59:23的发言:

count=stat.executeUpdate("delete from lxy where uid='"+uid+"'");那这一句前面的count也就没有必要了是吗?

这里是因为方法返回的需要(业务需要)才记录了执行的条数count

一般情况下只要sql顺利执行就可以认为操作成功
返回的执行结果条数表示影响了多少数据,跟执行成功与否没有直接关系
假如数据库中没有符合删除条件的数据,那么返回的结果为0条,你能说sql执行不正确吗?
1