JBDC和MYSQL Null值插入表中

时间:2013-05-28 15:27:57

标签: mysql jdbc exception-handling

以下是简单的登录系统。目前它允许我在表中输入一个空白的用户名和密码,即使每个索引被指定为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();

    }

1 个答案:

答案 0 :(得分:2)

要解决当前问题,可以将其添加到addNewUser方法的开头(在行之前:ps = connection.prepareStatement(“...”);)

if (newUserId != null && "".equals(newUserId.trim()))
    newUserId = null;
if (newUserPassword != null && "".equals(newUserPassword.trim()))
    newUserPassword = null;

你应该在JDBC参数中传递真实的NULL值(空字符串不够好)