【发布时间】:2014-04-20 17:21:34
【问题描述】:
我正在使用 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 中的表 创建表人 ( loginID varchar(30) 主键不为空, 密码 varchar(15), 电子邮件 varchar(30) 唯一, 俚语 varchar(128), /定义 varchar(200)/ ) 用户登录或登录后,我的 gui 转到另一个框架,允许用户输入一些我想添加到俚语列的更多信息,但我一直为空。是否可以从 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();
}
}
【问题讨论】:
-
public void addInfo(User info) { try{ makeConnection();语句 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,"已添加俚语,\n请输入不同的登录ID和密码", "Error",JOptionPane.ERROR_MESSAGE); //System.out.println("错误......."); ex.printStackTrace(); } }
-
您可以编辑原始帖子以在问题正文中添加代码。不要忘记对其进行格式化,以便于阅读。
-
另外,在您编辑问题以包含此代码时,请向我们提供有关 PERSON 架构的更多信息。
-
public void addUser(User user){ try{ makeConnection();语句 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,"LoginID & or email已经存在,\n请输入不同的loginID和密码", "Error",JOptionPane.ERROR_MESSAGE); //System.out.println("错误......."); ex.printStackTrace(); } }
-
非常重要 我建议您阅读 SQL 注入攻击。如果你让这段代码正常工作,它会让你容易受到攻击。
标签: java netbeans jdbc sql-server-2012