[RESOLVIDO] Como fazer uma pesquisa ao Banco?

12 respostas
S

Estou fazendo um programa no qual envolve banco de dados, eu tenho um botão pesquisar, sei fazer a pesquisa para que retorne os valores com “System.out.println” mas não sei como por exemplo fazer a pesquisa e colocar o Código no campo de texto onde vai o código, ou o Nome no campo de texto onde vai o nome.
Espero que tenham entendido, qualquer dúvida é só perguntar!

12 Respostas

N

Basta você colocar assim
jTextField.setText(valorVindoDoBanco);

onde o jTextField é nome do seu componente.

S

No caso seria POR EXEMPLO:

txtCodFuncionario.setText(Cod_Funcionario);

Certo?
E no caso da conexão, como fica? Igual a quando eu uso o “System.out.println”?
Como fica o select?

N

Da mesma forma, não muda em nada, é possível que dê um erro por causa que cod_funcionario deve ser inteiro, então faz assim.

txtCodFuncionario.setText(""+Cod_Funcionario);

Se você quiser postar o seu código da conexão e select pra nós analisar-mos.

S

Ok, vou tentar, qualquer coisa eu posto aqui!

S

String pesquisa = JOptionPane.showInputDialog(null,"Digite o código desejado:"); try{ DriverManager.registerDriver(new com.mysql.jdbc.Driver()); String banco = "testetcc"; //Nome do Banco criado String host = "localhost"; //Maquina onde está o banco String str_conn = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão String usuario = "root"; //Usuário do banco String senha = ""; //Senha de conexão Statement stmt = null; //Inicializa Statement Connection conn = null; //Inicializa Connection conn = DriverManager.getConnection(str_conn, usuario, senha); stmt = conn.createStatement(); String sql = "SELECT * FROM funcionario WHERE Cod_Funcionario = " + pesquisa; ResultSet rs = stmt.executeQuery(sql); txtNomeFunc.setText(rs.getString("Nome")); stmt.close(); conn.close(); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Erro (" + ex + ") ao conectar ao banco de dados, entre em contato com o Administrador!"); }
Aqui está meu código, mas ele me retorna esse erro:
java.sql.SQLException: Illegal operation on empty result set.

S
String sql = "SELECT * FROM funcionario WHERE Cod_Funcionario = " + pesquisa;

Tente assim:

String sql = "SELECT * FROM funcionario WHERE Cod_Funcionario = ?";

Coloque o ponte de interrogação na clausula where ao lado do Cod_Funcionario.
Vc está usando Statement, procure saber sobre PreparedStatement e utilize no lugar, isso facilitará sua vida.

S

String pesquisa = JOptionPane.showInputDialog(null,"Digite o código desejado:"); try{ DriverManager.registerDriver(new com.mysql.jdbc.Driver()); String banco = "testetcc"; //Nome do Banco criado String host = "localhost"; //Maquina onde está o banco String str_conn = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão String usuario = "root"; //Usuário do banco String senha = ""; //Senha de conexão Statement stmt = null; //Inicializa Statement Connection conn = null; //Inicializa Connection conn = DriverManager.getConnection(str_conn, usuario, senha); stmt = conn.createStatement(); String sql = "SELECT * FROM funcionario WHERE Cod_Funcionario = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, pesquisa); pstmt.execute(); txtNomeFunc.setText(Nome); pstmt.close(); stmt.close(); conn.close(); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Erro (" + ex + ") ao conectar ao banco de dados, entre em contato com o Administrador!"); }

Bem, agora o problema é outro. O que eu coloco ali na parte de “txtNomeFunc.setText(???)” como eu faço pra puxar a coluna nome?

S

Vc terá que utilizar o ResultSet e iterar em cima dele, pra poder pegar a coluna que vc deseja.

S

Como faço isso? Eu pensei em fazer isso, mas dá errado!

String pesquisa = JOptionPane.showInputDialog(null,"Digite o código desejado:"); try{ DriverManager.registerDriver(new com.mysql.jdbc.Driver()); String banco = "testetcc"; //Nome do Banco criado String host = "localhost"; //Maquina onde está o banco String str_conn = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão String usuario = "root"; //Usuário do banco String senha = ""; //Senha de conexão Statement stmt = null; //Inicializa Statement Connection conn = null; //Inicializa Connection conn = DriverManager.getConnection(str_conn, usuario, senha); stmt = conn.createStatement(); String sql = "SELECT * FROM funcionario WHERE Cod_Funcionario = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, pesquisa); ResultSet rs = pstmt.executeQuery(); txtNomeFunc.setText(rs.getString("Nome")); pstmt.close(); stmt.close(); conn.close(); } catch (Exception ex) { JOptionPane.showMessageDialog(null, "Erro (" + ex + ") ao conectar ao banco de dados, entre em contato com o Administrador!"); }
Aí está o código e continua me dando erro:
java.sql.SQLException: Before start of result set.

S

O segundo tópico dessa apostila http://www.caelum.com.br/curso/fj-21-java-web/ é sobre JDBC - java.sql, dê uma olhada.

S

Consegui fazer, muito obrigado e desculpe o incomodo! :oops:

S

Blz, qualquer coisa estamos aqui pra ajudar.
Edite o assunto e coloque [RESOLVIDO], pra ajudar a filtrar os resolvidos dos pendentes.

Criado 11 de maio de 2010
Ultima resposta 11 de mai. de 2010
Respostas 12
Participantes 3