需要此Java项目的帮助



我使用的是sql server 2012,我正在执行一个允许用户注册和登录的java程序。但是,在用户登录或注册后,他们应该能够向表中添加更多信息。但我一直得到一个空值。我的表有4个字段。。。用户名(主键),密码,电子邮件,个人信息。我希望用户能够在登录或注册后添加到"个人信息"字段

//adding a user
public void addUser(User user)
{
   try{
       makeConnection();
       Statement s = con.createStatement();
      s.execute("INSERT INTO Person VALUES('"+user.getUserName()+"','"+user.getPassword()+"','"+user.getEmail()+"','"+user.getSlang()+"')");
   }
   catch(SQLException ex){
   xc=false;
       JOptionPane.showMessageDialog(null,"The LoginID  & or email already exists, n please type a different loginID and password",
               "Error",JOptionPane.ERROR_MESSAGE);
       //System.out.println("Error.......");
       ex.printStackTrace();
   }
 }

这是我在Sql中的表创建表Person(loginID varchar(30)主键不为空,密码varchar(15),电子邮件varchar(30)是唯一的,Slang varchar(128),/定义varchar(200)/)在用户登录或登录后,我的gui转到另一个框架,该框架允许用户输入更多我想添加到俚语列中的信息,但我一直为null。是否可以将其从null更新。

public void addInfo(User info) {
     try{
         makeConnection();
         Statement s = con.createStatement();
         String sp = ("UPDATE Person SET Slang = '"+info.getSlang()+"' where loginID='"+info.getUserName()+"' ");
       s.executeUpdate(sp);
     }
     catch(SQLException ex){
         xc = false;
           JOptionPane.showMessageDialog(null,"Slang already added, n please type a different loginID and password",
               "Error",JOptionPane.ERROR_MESSAGE);
            //System.out.println("Error.......");
           ex.printStackTrace();
     }
 }  

首先是使用PreparedStatement的强制性建议。它正确地转义单引号和其他特殊字符,并防止SQL注入。

    String sql = "INSERT INTO Person (loginID, password, email)"             
            + " VALUES(?, ?, ?)";
    try (PreparedStatement s = con.prepareStatement(sql)) {
        s.setString(1, user.getUserName());
        s.setString(2, user.getPassword());
        s.setString(3, user.getEmail());
        int updateCount = s.executeUpdate();
    }

语句应该是关闭的,为此可以使用try-with-resources语法,始终关闭。如果插入了记录,则updateCount应为1。

对错误;如果枚举列名,代码不会在将来的表更改时立即中断,但也可能将空字段排除在外(通常,如果列没有约束NOT null,则可以填写null。)

然而,您似乎在说,UPDATE给出了一个与NULL相关的错误。在这种情况下,它只能是包含null的User info。也许您可以给出更详细的错误信息。或者追踪数值;信息及其字段。就我们目前所知,即使是这种联系也可能是罪魁祸首。

相关内容

  • 没有找到相关文章

最新更新