public String getLastName() {
try {
String strSql = "select userName from user";
/*连接数据库*/
openDrive(); /*这是加载数据库驱动的一个方法*/
/*获取数据库语句对象*/
ps = conn.prepareStatement(strSql);
/*获取数据库结果集*/
rs = ps.executeQuery();
        rs.last(); /*指针移到最后一行*/
                        return rs.getString("userName"); /*获取最后一个人命*/
}
catch(SQLException sqle) {
System.out.println(sqle.getMessage());
}
catch(Exception e) {
System.out.println(e.getMessage());
}
finally {
/*关闭数据库*/
super.closeDrive();
}
}
关键是方法的最后还需要返回值,比如我最后返回return "";它返回的就是空了,不是最后一个人的名字了.怎么解决啊,

解决方案 »

  1.   

      return rs.getString("userName"); 这句移到finally里面去试试?
      

  2.   

    不过如果是我的话我会像以下处理:
    public String getLastName() { 
    String username=null;
    try { 
    String strSql = "select userName from user"; 
    /*连接数据库*/ 
    openDrive(); /*这是加载数据库驱动的一个方法*/ 
    /*获取数据库语句对象*/ 
    ps = conn.prepareStatement(strSql); 
    /*获取数据库结果集*/ 
    rs = ps.executeQuery(); 
            rs.last(); /*指针移到最后一行*/ 
                            username=rs.getString("userName"); /*获取最后一个人命*/ 

    catch(SQLException sqle) { 
    System.out.println(sqle.getMessage()); 

    catch(Exception e) { 
    System.out.println(e.getMessage()); 

    finally { 
    /*关闭数据库*/ 
    return username;
    super.closeDrive(); 

    }
      

  3.   

    解决了,2楼的把renturn 提出来就可以了
      

  4.   

    ??这种SQL语句应该不用预处理吧??还有...最好是把那个返回值放到finally里面..
    五楼的前辈,
    finally {  
    /*关闭数据库*/  
    return username; 
    super.closeDrive();  
    }  
    }
    这样好像不行哦.....返回了..下面那个关闭就不会执行了吧??