简体   繁体   English

如何在使用java创建新帐户之前检查sql数据库中是否已存在用户名

[英]How to check if username already exist in the sql database before one can create new account using java

How can i put into code when i want to prompt a message whenever a user creates a new account or updates his/her username and that username already exist on the sql database. 当我想在用户创建新帐户或更新他/她的用户名时提示消息并且sql数据库中已存在该用户名时,我如何输入代码。 here's a part of my code when i click save button on my CreateNewUserAccount class: 当我在CreateNewUserAccount类上单击“保存”按钮时,这是我的代码的一部分:

   String sql = "insert into tblUserInfo (UserID, LastName, FirstName, PositionID, Username, Password) values(?, ?, ?, ?, ?, ?) " ;
    try{
        pst = conn.prepareStatement(sql);
        pst.setString(1, txtUserID.getText());
        pst.setString(2, txtLastName.getText());
        pst.setString(3, txtFirstName.getText());
        pst.setString(4, (String) comboPosition.getSelectedItem().toString().substring(0, 1));
        pst.setString(5, txtUsername.getText());
        pst.setString(6, txtPassword.getText());
        pst.execute();
        if(txtConfirmPassword.getText().equals(txtPassword.getText())){
        JOptionPane.showMessageDialog(null, "Saved New User Account");
        clear();
        }
        else{
          JOptionPane.showMessageDialog(null, "Incompatible Password");
          txtConfirmPassword.setText("");
        }
        //UpdateEmployeeTable();
    }catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }

and also my UserAccount class where user can update/edit their information including their username: 以及我的UserAccount类,用户可以在其中更新/编辑他们的信息,包括用户名:

  String sql = "update tblUserInfo set LastName = ?, FirstName = ?, PositionID = ?, Username = ?, Password = ? where UserID= ?";

 try {
    pst = conn.prepareStatement(sql);

    pst.setString(1, txtLastName.getText());
    pst.setString(2, txtFirstName.getText());
    pst.setString(3, (String) comboPos.getSelectedItem().toString().substring(0, 1));
    pst.setString(4, txtUserName.getText());
    pst.setString(5, txtPassword.getText());
    pst.setString(6, txtUserID.getText());
    pst.executeUpdate();
    JOptionPane.showMessageDialog(null, "User Account Updated");

} catch (Exception e) {
    e.printStackTrace();
    JOptionPane.showMessageDialog(null, e);
}

how can i put a checking on this? 我怎么能对此进行检查? Thanks in advance 提前致谢

I would use something like this 我会用这样的东西

IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue')
    UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
    INSERT INTO Table1 VALUES (...)

http://blogs.msdn.com/b/miah/archive/2008/02/17/sql-if-exists-update-else-insert.aspx http://blogs.msdn.com/b/miah/archive/2008/02/17/sql-if-exists-update-else-insert.aspx

One option is to do a count query of that username where the user id isn't the same, such as this: 一种选择是对用户名不相同的用户名进行计数查询,例如:

select count(Username) from tblUserInfo where UserId != ?

If you find a result greater than zero, that user id is used by someone else, display the warning. 如果您发现结果大于零,则该用户ID由其他人使用,则显示警告。

you can do like that 你可以这样做

Statement st=con.getConnection(.....);
String query= "select username from tables where username="uservalue"";
 ResultSet rs=st.executeQuery(query);
int value=0;
 while(rs.next())
 {
  value++;
  }
  if(value>1)
  {
  String query= "select username from tables where username="uservalue"";
   ResultSet rs=st.executeQuery(query);
       while(rs.next())
      {
        String user=rs.getString("username");

       }
          String updatequery="update tables set username="updatevalue"   where username="updatevalue"";
       int q=st.executeupdate(updatequery);
     }
       else 
     {
         insert query..........
   }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何检查用户名是否已经存在于数据库中 sql 服务器 - How to check Username is already exist in the database or not sql server Java Servlet检查用户名是否已经存在 - Java Servlet check if username already exist 如果用户名已在使用但在 JAVA 中,请检查 Firebase 数据库 - Check Firebase database if username is already in use but in JAVA Java SQL检查用户名是否已经存在 - Java SQL Check if username already exists 为什么我的方法无法在他们能够创建新帐户之前检查我的用户是否存在? - Why my method is not able to check if my user is exist or not before they are able to create a new account? 如果一个文件尚不存在,如何用Java创建文件? - how to create a file in Java only if one doesn't already exist? 当新用户尝试使用现有用户名创建帐户时,如何避免在数据库中保存详细信息? - How to avoid saving details in database when a new user tries to create account with existing username? Android:检查文件是否存在,是否不创建新文件 - Android: Check if file exist and if not create new one android如何在保存之前检查java中记录mysql数据库中已经存在的字符串值 - android how to check in java before saving record the string value already exist in mysql data base 如何在创建新数据库之前检查现有的h2数据库 - How to check existing h2 database before creating a new one
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM