public boolean isManagerExist() throws SQLException {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;DasebaseName=StudentSystem";
conn = DriverManager.getConnection(url, "yu", "yuminghaoop");
PreparedStatement pstmt = conn
.prepareStatement("select username,password from manager where username = ?");
pstmt.setString(1, mb.getUsername());
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
rs.close();
conn.close();
pstmt.close();
return true;
} else {
rs.close();
pstmt.close();
conn.close();
return false;
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return false; //不加这句就报错,应该可以不加才对吧?
}这段代码,如果不在最后一个花括号之前返回一个值则会报错,加上之后返回的值一直都是false,为什么??
在你的if next成功了设置 flag = true; 在最后返回flag就可以了
执行的else吧
public boolean isManagerExist() throws SQLException {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;DasebaseName=StudentSystem";
try (Connection conn = DriverManager.getConnection(url, "yu",
"yuminghaoop");
PreparedStatement pstmt = conn
.prepareStatement("select username,password from manager where username = ?");) { pstmt.setString(1, mb.getUsername());
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
return true;
} else {
return false;
}
}
}
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;DasebaseName=StudentSystem";
conn = DriverManager.getConnection(url, "yu", "yuminghaoop");
PreparedStatement pstmt = conn
.prepareStatement("select username,password from manager where username = ?");
pstmt.setString(1, mb.getUsername());
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
return true;
}
return false;
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
finally
{
rs.close();
pstmt.close();
conn.close();
}
}
mb.getUsername()这个里面是否是null
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;DasebaseName=StudentSystem";
conn = DriverManager.getConnection(url, "yu", "yuminghaoop");
PreparedStatement pstmt = conn
.prepareStatement("select username,password from manager where username = ?");
pstmt.setString(1, mb.getUsername());
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
rs.close();
conn.close();
pstmt.close();
return true;
} else {
rs.close();
pstmt.close();
conn.close();
return false;
}
}finally{
//关闭一般都写这 不catch就可以不用返回
rs.close();//最好判断是否为空
conn.close();
pstmt.close();} }