Estou desenvolvendo um projeto no qual o usuario ao fazer o 1º login tem que criar um personagem e depois seguir ao menu do sistema.
Ao efetuar o 2º Login se o usuario já possuir um personagem pode seguir direto para o menu do sistema caso contrario vai para a criação do personagem.
Eu nao estou conseguindo relaziar esta condição estou utilizando baco de dados mysql(PHPMyadmin) e o netbeans ja tentei de varias formas alguem poderia me ajudar.
privatevoidbtnLogarMouseClicked(java.awt.event.MouseEventevt){// COMANDO PARA EFETUAR O LOGIN;try{Autenticarlogin=newAutenticar();Loginlg=newLogin(txtUsuario.getText(),txtSenha.getText());intregistro=login.autentica(lg);if(registro==1){Stringsql="select * from Personagem where Usuario = ?";try(PreparedStatementstm=con.prepareStatement(sql)){ResultSetrs=stm.executeQuery();rs.next();if(rs.getString("Usuario").equals(txtUsuario.getText())){Tela_Jogojogo=newTela_Jogo();jogo.setVisible(true);dispose();}else{Tela_Personagemtela=newTela_Personagem(txtUsuario.getText());tela.setVisible(true);dispose();}}}else{JOptionPane.showMessageDialog(null,"incorreto","erro",JOptionPane.ERROR_MESSAGE);}}catch(SQLExceptionex){Logger.getLogger(Tela_Login.class.getName()).log(Level.SEVERE,null,ex);}}
Lucas_Camara
Nâo achei no código algo que pudesse causar erro. Qual o problema realmente?
J
juan01
Esta dando erro na consulta SQL para fazer a restrição do login
Lucas_Camara
Qual?
Jothar_Aleksander
A consulta espera um parâmetro (?) e eu não o identifiquei onde você o informa. De fato, você está passando a “string SQL” para o prepareStatement sem esse parâmetro.
Como sugestão:
publicclassUsuario{publicstaticbean.UsuariopesquisarFuncionario(bean.UsuariousuariosSelecionado)throwsSQLException{try(ConnectionconectaBancoDeDados=ConectaBancoDeDados.getConexao()){StringstringSQLPesquisa="SELECT * FROM Usuarios ""WHERE usuario = usuariosSelecionado";try(PreparedStatementpstmt=conectaBancoDeDados.prepareStatement(stringSQLPesquisa)){try(ResultSetrstSet=pstmt.executeQuery()){bean.UsuariousuarioEncontrado=newbean.Usuario();usuarioEncontrado.setCodigoUsuario(rstSet.getInt("cod_usuario"));usuarioEncontrado.setNomeUsuario(rstSet.getInt("nome_usuario"));rstSet.close();}pstmt.close();}conectaBancoDeDados.close();}returnusuarioEncontrado;}}
Daí receberia as informações na view (e evitaria de misturar a persistência com a exibição). As informações quando lá (na view), poderiam ser manipuladas como fez: