【发布时间】:2015-04-07 10:35:54
【问题描述】:
我能否知道通过检查我的数据库中是否有任何重复项来验证变量的最佳方法?
我已经尝试了几种不同的方法,但是每当第一个if条件不满足时,就会显示一个空白页面
编辑:我曾考虑将 username 设置为唯一值,但这会与我的主键 staff_id 发生冲突
<%-- Checking for duplicates - Reading --%>
<%
if(request.getParameter("Check") != null){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String conURL1= "jdbc:odbc:HOD_DATA";
Connection con1 = DriverManager.getConnection(conURL1);
Statement st1 = con1.createStatement();
String query = "select username from Staff where username = '"+sUsername+"'";
ResultSet rs = st1.executeQuery(query);
while(rs.next()){
result = rs.getString("username");
if(result.equals(sUsername)) {
response.setHeader("Refresh", "3; URL=StaffReg.jsp");
out.println("You may not use this username.");
}
else if(rs.wasNull()) {
response.setHeader("Refresh", "3; URL=StaffReg.jsp");
out.println("You may use this username.");
}
}
rs.close();
st1.close();
con1.close();
}
catch(Exception e){
out.println(e);
}
}
%>
【问题讨论】:
-
为什么要重新检查。只需输入
else而不是else if -
这没有意义。该查询已经检查了您断言的条件。而且这里没有任何东西可以检查重复项。
-
我已经试过了。即使是
else,检查也永远不会进入第二个条件 -
@EJP 你对检查重复有什么建议?非常感谢!
-
您可以简单地获取它的计数并检查结果计数是否大于 0,然后它已经呈现 else not
标签: java sql jsp resultset duplicate-data