以下是简单的登录系统。目前它允许我在表中输入一个空白的用户名和密码,即使每个索引被指定为NOT NULL?它不允许我输入我想要的重复项,但如何从输入中捕获空白参数?我错过了什么?
注册Servlet
....
LoginService loginService = new LoginService();
connection = loginService.getConnection(connection);
loginService.addNewUser(preparedStatement, connection, newUserId, newUserPassword, newUserFirstName, newUserLastName);
...
LoginService方法addNewUser
public void addNewUser(PreparedStatement ps, Connection connection, String newUserId, String newUserPassword,String newUserFirstName,String newUserLastname) throws SQLException
{
ps = connection.prepareStatement("INSERT INTO users (userId ,password , userFirstName, userLastName)VALUES(?,?,?,?)");
ps.setString(1, newUserId);
ps.setString(2, newUserPassword);
ps.setString(3, newUserFirstName);
ps.setString(4, newUserLastname);
ps.executeUpdate();
}
答案 0 :(得分:2)
要解决当前问题,可以将其添加到addNewUser方法的开头(在行之前:ps = connection.prepareStatement(“...”);)
if (newUserId != null && "".equals(newUserId.trim()))
newUserId = null;
if (newUserPassword != null && "".equals(newUserPassword.trim()))
newUserPassword = null;
你应该在JDBC参数中传递真实的NULL值(空字符串不够好)