public  static  boolean  hasEmployee(String  empName) :查询SQL语句后 如果有返回true,否则返回false。这是小弟写的代码:
public  static  boolean  hasEmployee( String  empName)
{
PreparedStatement pstmt=null;
try
{
String sql="select empno,ename,sal,deptno from emp where ename=?";
pstmt=ConnectionFctory.getConnection().prepareStatement(sql);
pstmt.setString(1, empName);
pstmt.executeUpdate();

pstmt.close();
return true;
}catch(SQLException se)
{
System.out.println("查询员工是否存在出错!"+se.getMessage());
return false;
}
}执行SQL语句就返回true,抛出异常就返回false;
但是为什么我每次执行都是true~~不返回false的~ 就算我输入的empName数据库里面没有~~ 还是显示true啊~~ 高手指教!!!!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【goopoolzl】截止到2008-07-25 21:44:35的历史汇总数据(不包括此帖):
    发帖的总数量:11                       发帖的总分数:200                      每贴平均分数:18                       
    回帖的总数量:6                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:11                       结贴的总分数:200                      
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:9.09  %               无满意结分率:10.00 %                  
    敬礼!
      

  2.   

    executeUpdate(),是执行查询的?  换个角度来说,不管有没有查到,程序是正常的,没有异常,为什么要走异常呢?你这种写法就有问题,你要么抛出异常,不要在try中控制流程,代价是非常高的如果你非要返回false的话,你把数据库关掉
      

  3.   

    老大,你要去结果集里面检查啊,如果查询出来的结果不为空那就返回true,如果为空或者有异常就返回false啊,你现在只是说执行了操作而已。而且执行的方法也不对啊 。executeUpdate() 
              在此 PreparedStatement 对象中执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句,比如 DDL 语句。
    executeQuery()才能返回ResultSet对象啊,看下API
      

  4.   

    你应该检测更新返回的条数。如果大于0条就返回true,否则返回false.
      

  5.   

    executeUpdate();执行更新的语句把
      

  6.   

    按你程序不出异常的话返回的肯定是true,与返回无关