Bem, eu quero pesquisar algo no banco de dados, o código funciona, mas agora eu resolvi fazer um JDialog para que a pessoa decidisse pesquisar pelo Código, RG ou CPF, dentro do JDialog tem uma combo box e um campo de texto para isso.
Eu quero puxar os valores que a pessoa digitar na JDialog para o programa normal e assim realizar minha pesquisa, mas como eu faço isso?
Segue o código:
[code]private void btnPesquisarFuncMouseClicked(java.awt.event.MouseEvent evt) {
PesquisaDiag.setVisible(true);
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 ? = ?”;
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, campo); //Aqui vem o valor do combo box
pstmt.setString(2, dado); //Aqui vem o valor do campo de texto
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
txtCodFunc.setText(rs.getString(“Cod_Funcionario”));
txtNomeFunc.setText(rs.getString(“Nome”));
txtEnderecoFunc.setText(rs.getString(“Endereco”));
txtCEPFunc.setText(rs.getString(“CEP”));
txtBairroFunc.setText(rs.getString(“Bairro”));
txtCidadeFunc.setText(rs.getString(“Cidade”));
cmbEstadoFunc.setSelectedItem(rs.getString(“Estado”));
txtNaturalFunc.setText(rs.getString(“Cidade_Natu”));
cmbEstadoNascFunc.setSelectedItem(rs.getString(“Estado_Natu”));
txtTelefoneFunc.setText(rs.getString(“Tel”));
txtCelularFunc.setText(rs.getString(“Tel_Cel”));
txtRGFunc.setText(rs.getString(“RG”));
txtCPFFunc.setText(rs.getString(“CPF”));
txtCargoFunc.setText(rs.getString(“Funcao”));
txtEmailFunc.setText(rs.getString(“E_Mail”));
txtpaneHistFunc.setText(rs.getString(“Historico”));
}
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!”);
}
}
private void jButton31MouseClicked(java.awt.event.MouseEvent evt) { //Botão dentro do Dialog
campo = cmbCampo.getSelectedItem().toString(); //Variável do combo box onde tem os campos que podem ser pesquisados
dado = txtDado.getText(); //Variável onde vai o que deve ser pesquisado
PesquisaDiag.dispose();
}[/code]
Obrigado, qualquer coisa é só falar!
Li esse tópico mas agora aparece erro nas linhas:
private void jButton31MouseClicked(java.awt.event.MouseEvent evt) {
public String getDado(){
return txtDado.getText();
}
public String getCampo(){
return cmbCampo.getSelectedItem().toString();
}
PesquisaDiag.setVisible(false);
}
Esse é o código do botão e onde aparece o erro:
“Illegal start of expression”
Esse erro aparece nas linhas “public String…”, em ambas, e se eu removo isso ele funciona normalmente (não aparece erros e não faz o que eu quero, mas funciona).
Como faz :?:
Ué… vc tá colocando um método dentro de outro método? Aí não funciona mesmo.
[code]public String getDado(){
return txtDado.getText();
}
public String getCampo(){
return cmbCampo.getSelectedItem().toString();
}
private void jButton31MouseClicked(java.awt.event.MouseEvent evt) {
PesquisaDiag.setVisible(false);
}[/code]
Agora o erro é estranho:
private void btnPesquisarFuncMouseClicked(java.awt.event.MouseEvent evt) {
PesquisaDiag.setVisible(true);
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 ? = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, PesquisaDiag.getCampo());
pstmt.setString(2, PesquisaDiag.getDado());
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
txtCodFunc.setText(rs.getString("Cod_Funcionario"));
txtNomeFunc.setText(rs.getString("Nome"));
txtEnderecoFunc.setText(rs.getString("Endereco"));
txtCEPFunc.setText(rs.getString("CEP"));
txtBairroFunc.setText(rs.getString("Bairro"));
txtCidadeFunc.setText(rs.getString("Cidade"));
cmbEstadoFunc.setSelectedItem(rs.getString("Estado"));
txtNaturalFunc.setText(rs.getString("Cidade_Natu"));
cmbEstadoNascFunc.setSelectedItem(rs.getString("Estado_Natu"));
txtTelefoneFunc.setText(rs.getString("Tel"));
txtCelularFunc.setText(rs.getString("Tel_Cel"));
txtRGFunc.setText(rs.getString("RG"));
txtCPFFunc.setText(rs.getString("CPF"));
txtCargoFunc.setText(rs.getString("Funcao"));
txtEmailFunc.setText(rs.getString("E_Mail"));
txtpaneHistFunc.setText(rs.getString("Historico"));
}
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!");
}
}
[code]public String getCampo(){
return cmbCampo.getSelectedItem().toString();
}
public String getDado(){
return txtDado.getText();
}[/code]
Meus métodos existem, mas na linha onde eu faço referência a eles: “pstmt.setString(1, PesquisaDiag.getCampo());” e “pstmt.setString(2, PesquisaDiag.getDado());” está dando erro dizendo que não foi achado o método.
O que fazer :?:
Obs: Passou desapercebido colocar um método dentro do outro :oops:
Verifique se você não colocou os métodos dentro do Listener por acidente ao invés de dentro do dialog.
As vezes isso acontece.
Desculpe, mas meu código foi feito no NetBeans e é meio automático, eu não fiz uma classe nova chamada “PesquisaDiag” ele é um JDialog que fica dentro do arquivo que eu já tenho, e o jeito que o NetBeans usa para instanciar objetos é extremamente estranho. Eu não tenho algo como “public void PesquisaDiag extends JDialog” então onde eu colocaria esses métodos?
Ainda não consegui, alguém pode me dar uma luz?