gpt4 book ai didi

java - 添加一种防止方法,用户无法使用名称和电子邮件创建现有帐户

转载 作者:行者123 更新时间:2023-11-30 21:47:14 24 4
gpt4 key购买 nike

我想实现一种方法来阻止用户创建一个现有帐户,其中的名称和电子邮件已被使用

 try{
String query="Insert into users(name,email,password)values(?,?,?)";
pst=conn.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
pst.setString(1,nam.getText());
pst.setString(2,emal.getText());
pst.setString(3,pass.getText());
int affectedrows=pst.executeUpdate();
rs=pst.getGeneratedKeys();
if(rs.next()){
int id = rs.getInt(1);
JOptionPane.showMessageDialog(null, "Your account has been registerd");
dispose();
new Landing_Page(id);
}
else{
JOptionPane.showMessageDialog(null,"Account already exists");
}
}
catch(Exception e ){
JOptionPane.showMessageDialog(null, e.getMessage());
}
}

最佳答案

最好的方法是从数据库中选择查询电子邮件和姓名,如果查询的结果集为空,则插入到表中。

假设您的数据库中有一个表,如下所示:

CREATE TABLE `stackoverflow`.`users` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NULL,
`email` VARCHAR(45) NULL,
`password` VARCHAR(45) NULL,
PRIMARY KEY (`id`));

现在下面的代码首先从数据库中选择在此方法中设置为参数的名称和电子邮件,然后如果值为空(使用 resultSet 方法 next() 检查它)开始插入到表中:

 public static void insertUser(String name,String email,String pass)
{
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
String queryName = "select * from users where name = ?";
String queryEmail = "select * from users where email = ?";
boolean nameExists = false;
boolean emailExists = false;
try
{
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/stackoverflow", "root", "red devils11");
ps = conn.prepareStatement(queryName);
ps.setString(1, name);
rs = ps.executeQuery();
nameExists = rs.next();

ps = conn.prepareStatement(queryEmail);
ps.setString(1, email);
rs.close();
rs = ps.executeQuery();
emailExists = rs.next();
if(!nameExists && !emailExists)
{
String insertUser = "insert into users(name,email,password) values(?,?,?)";
ps = conn.prepareStatement(insertUser);
ps.setString(1, name);
ps.setString(2, email);
ps.setString(3, pass);
ps.execute();
}
else
{
System.out.println("user or email is already in the database");
}


}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
rs.close();
ps.cancel();
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}

}//insertUser

remember to add jconnector for mysql to the jre library of your project or you won't even get connected https://dev.mysql.com/downloads/connector/j/

关于java - 添加一种防止方法,用户无法使用名称和电子邮件创建现有帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48893233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com