¿Ayuda con error lógico en código en java?

estoy haciendo el login de un programa, entonces cuando quiero insertar un nuevo registro hace una búsqueda para ver si ya hay un usuario con ese nombre pero no me esta funcionando aquí abajo dejo el código...
public void registrar () {
try {
Connection con = conexión.crearConexion();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * from datos");
String usuario2;
String contra;
while (rs.next()) {
usuario2 = rs.getString("login");
contra = rs.getString("pass");
if (usuario2.equals(usuario)) {
JOptionPane.showMessageDialog(null,"El usuario ya esta registrado","Error",0);
}
else
{
//Código para insertar un nuevo registro en la base de datos
String sql ="";
sql = "INSERT INTO datos(login, pass) VALUES (?,?)";
PreparedStatement pst = con.prepareStatement(sql);
pst.setString(1, usuario);
pst.setString(2,contraseña);
int n = pst.executeUpdate();
if (n>0) {
JOptionPane.showMessageDialog(null, "Registrado","Aviso",1);
}
}
}
con.close();
st.close();
}catch (SQLException e) {
System.out.println("error");
}
}
}

Añade tu respuesta

Haz clic para o