public boolean checkLogin(String str){
try {
 Statement st = conn.createStatement();
 ResultSet rs=st.executeQuery(str);
 if(rs.next()){
 
 return true;
 }else{
 return false;
 }
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
public static Vector get(){
 if(checkLogin(String str)){
 try{
 Statement st=conn.createStatement();
 ResultSet rs=st.executeQuery("select * from users where Users_name='"+name+"'and Users_password='"+password+"'");
 Vector v=new Vector();
while(rs.next()){
UserBean bean=new UserBean();
bean.setId(rs.getInt(1));
bean.setName(rs.getString(2));
bean.setPassword(rs.getString(3));
bean.setStytle(rs.getInt(4));
v.add(bean);
}
    return v;
}catch (Exception e) {
e.printStackTrace();
 return null;
 }

}
get方法只能在前面的check方法返回true的情况下,才能执行  为什么不行,报错啊

解决方案 »

  1.   

    意思是,我先在判断这个界面上用户名是否存在在数据库的checkLogin()方法,如果返回true,就执行下面的get()方法,把这个用户里的其他字段取出来
      

  2.   

    怎么不行?你只写了if,如果返回false当然就什么都不做了。
    ResultSet rs=st.executeQuery(str); 这个里面的str应该是个sql吧。我没看出你写什么呀。
      

  3.   

    str 的SQL我写在action里了,错误出在 public static Vector get(){ 
                                     if(checkLogin(String str)){ 
    这两行上,if()里面能这样写出checkLogin(String str)方法吗?