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

在使用java创建新帐户之前,如何检查sql数据库中是否已经存在用户名,java,sql,Java,Sql,当用户创建新帐户或更新其用户名且该用户名已存在于sql数据库中时,如果我希望提示消息,如何将其输入代码中。 以下是我在CreateNewUserAccount类上单击“保存”按钮时代码的一部分: String sql = "insert into tblUserInfo (UserID, LastName, FirstName, PositionID, Username, Password) values(?, ?, ?, ?, ?, ?) " ; try{ pst

当用户创建新帐户或更新其用户名且该用户名已存在于sql数据库中时,如果我希望提示消息,如何将其输入代码中。 以下是我在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);
    }
还有my 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);
}

我怎么能把支票放在这上面?提前感谢

一个选项是在用户id不相同的情况下对该用户名进行计数查询,例如:

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

如果您发现结果大于零,则该用户id被其他人使用,请显示警告。

我将使用类似的内容

IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue')
    UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
    INSERT INTO Table1 VALUES (...)
你可以这样做

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..........
   }