java:try catch语句中的值与外部共享问题
下边是我写的一段代码(返回boolean值,数据查询),我想弄明白为什么trycatch语句中的值不能与外界共享,想共享如何处理publicstaticbooleanlo...
下边是我写的一段代码(返回boolean值,数据查询),我想弄明白为什么try catch语句中的值不能与外界共享,想共享如何处理
public static boolean loginVerify(String userName, String password){
DbUtil.appInit();
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
Integer temp=0;
String sql="select username,passwd from userinfo where username ='"+userName+"'";
try {
conn= DbUtil.getConnection();
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
if(password==rs.getString(2))
return true;
else
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DbUtil.closeConnection(conn);
DbUtil.closeStatement(stmt);
DbUtil.closeResultSet(rs);
}
这样写最后不会返回 true 或false 展开
public static boolean loginVerify(String userName, String password){
DbUtil.appInit();
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
Integer temp=0;
String sql="select username,passwd from userinfo where username ='"+userName+"'";
try {
conn= DbUtil.getConnection();
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
if(password==rs.getString(2))
return true;
else
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DbUtil.closeConnection(conn);
DbUtil.closeStatement(stmt);
DbUtil.closeResultSet(rs);
}
这样写最后不会返回 true 或false 展开
1个回答
展开全部
try catch语句中的变量属于局部变量,就像if else语句一样,不能被外界访问。
若想共享,可以在try 上面定义一个变量:
boolean b = false;
try{
...
if(password==rs.getString(2))
b = true;
else
b = false;
}catch(){
}
//return b;
另外:从楼主的方法名和功能上看,是验证用户登录的sql,因此遍历记录集不需要用while,只需要:
if(rs.next()){
若想共享,可以在try 上面定义一个变量:
boolean b = false;
try{
...
if(password==rs.getString(2))
b = true;
else
b = false;
}catch(){
}
//return b;
另外:从楼主的方法名和功能上看,是验证用户登录的sql,因此遍历记录集不需要用while,只需要:
if(rs.next()){
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询