Buscar dados no banco de dados

9 respostas
G

Boa tarde :wink:

Estou tentando fazer uma busca no banco

eu digito uma palavra chave e o java tem que voltar para mim oq tem no banco com aquela palavra .

a logica é mais ou menos assim :

se o campo.text = campo do banco então

mostra dados

se não

palavra não encotrada .

não vou postar me codigo pois esta confuso . ja tentei de varias maeniras … então ta mo salada …

alguem pode dar um luz rsrss ? :idea:

9 Respostas

yorgan

Bom, no banco fica um pouco complicado de buscar. Mas acho que o que você quer dizer é que precisa pesquisar uma coisa em uma tabela.
De qualquer forma, poste seu código. Mesmo estando confuso, fica melhor para entendermos onde você quer chegar.

[]´s

Daniel

G
<code>




<b>import </b>java.sql.<em>;


<b>import </b>java.text.ParseException;


<b>import </b>javax.swing.</em>;


<b>import </b>javax.swing.text.AttributeSet;


<b>import </b>javax.swing.text.BadLocationException;


<b>import </b>javax.swing.text.MaskFormatter;


<b>import </b>javax.swing.text.PlainDocument;


<b>import </b>java.awt.<em>;


<b>import </b>java.awt.event.</em>;





@SuppressWarnings(serial)


<b>public class </b>Sistemas <b>extends </b>JFrame <b>implements </b>ActionListener  {


  <b>private static </b>String driver,url;


  <b>private </b>Connection conexao;


  <b>private </b>Statement comando;


  <b>private </b>ResultSet resultado;


  <b>private </b>String Titulo = Service Desk- Procurar Sistemas;


  <b>private </b>String rs;


  <b>private </b>String executar = <b>null</b>;


  <b>private </b>JButton JbProcurar,JbLimpar;


  <b>private </b>JPanel jpdados,jpBotoes,jpmostra,jpCampoBusca; 


  <b>private </b>Container container = getContentPane();


    <b>private </b>JTextField Busca_Campo,jtfcta1,jtfcta2,jtfcta3,jtfcordenador, jtfgerente,jtfsistema,jtfmodulo;


  <b>private </b>JLabel Busca_ID,jlcta1,jlcta2,jlcta3,jlcordenador, jlgerente, jlsistema,jlmodulo;


  //private ButtonGroup Escolhe_Busca;


  


  <b>private </b>MaskFormatter setMascara(String mascara){


    MaskFormatter mask = <b>null</b>;


    <b>try</b>{


      mask = <b>new </b>MaskFormatter(mascara);


    }


    <b>catch</b>(java.text.ParseException ex){}


    <b>return </b>mask;


  }


<b>public  </b>Sistemas() {


  container.setLayout( <b>new </b>BorderLayout() );


  jpdados=<b>new </b>JPanel(<b>new </b>GridLayout(2,2));      container.add(North,jpdados);


  jpBotoes=<b>new </b>JPanel();                container.add(Center,jpBotoes);


  jpmostra=<b>new </b>JPanel(<b>new </b>GridLayout(7,1));      container.add(South,jpmostra);


  jpCampoBusca=<b>new </b>JPanel(<b>new </b>GridLayout(2,2));    jpdados.add(jpCampoBusca);


  


  JbProcurar=<b>new </b>JButton(Procurar);    /<em>JbProcurar.addActionListener(this);</em>/  jpBotoes.add(JbProcurar);


    JbLimpar=<b>new </b>JButton(Limpar);      /<em>JbLimpar.addActionListener(this);</em>/  jpBotoes.add(JbLimpar);


  


    Busca_ID=<b>new </b>JLabel(sistema);


    Busca_Campo = <b>new </b>JTextField(20);    jpCampoBusca.add(Busca_Campo);


  


    


    jlcta1=<b>new </b>JLabel(Contato1);          jtfcta1=<b>new </b>JTextField(10);        jtfcta1.setEditable(<b>false</b>);


    jlcta2=<b>new </b>JLabel(Contato2);          jtfcta2=<b>new </b>JTextField(10);         jtfcta2.setEditable(<b>false</b>);


  jlcta3=<b>new </b>JLabel(Contato3);          jtfcta3=<b>new </b>JTextField(10);          jtfcta3.setEditable(<b>false</b>);


  jlcordenador=<b>new </b>JLabel(Cordenador);  jtfcordenador=<b>new </b>JTextField(10);  jtfcordenador.setEditable(<b>false</b>);


  jlgerente=<b>new </b>JLabel(Gerente);      jtfgerente=<b>new </b>JTextField(10);       jtfgerente.setEditable(<b>false</b>);


  


  jlsistema=<b>new </b>JLabel(Sistema);      jtfsistema = <b>new </b>JTextField(10);  jtfsistema.setEditable(<b>false</b>);


  jlmodulo=<b>new </b>JLabel(Modulo);      jtfmodulo = <b>new </b>JTextField(10);      jtfmodulo.setEditable(<b>false</b>);


  


  jpmostra.add(jlcta1);        jpmostra.add(jtfcta1);


  jpmostra.add(jlcta2);        jpmostra.add(jtfcta2);


  jpmostra.add(jlcta3);          jpmostra.add(jtfcta3);


  jpmostra.add(jlcordenador);      jpmostra.add(jtfcordenador);


  jpmostra.add(jlgerente);      jpmostra.add(jtfgerente);


  jpmostra.add(jlsistema);      jpmostra.add(jtfsistema);


  jpmostra.add(jlmodulo);        jpmostra.add(jtfmodulo);


  


   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );


    setTitle("::Procurar::");


    setResizable(<b>false</b>);


    setVisible(<b>true</b>);


    pack();


  


}











<b>public </b><b>void </b>conecta(){


  <b>try</b>{


    driver=sun.jdbc.odbc.JdbcOdbcDriver;


    Class.forName(driver);


    url=jdbc:odbc:Turismo;


    conexao=DriverManager.getConnection(url,"","");


  }


  <b>catch</b>(SQLException SqlExc){


    JOptionPane.showMessageDialog(null,Problema na conexão com o Banco de Dados,Titulo,JOptionPane.WARNING_MESSAGE);


  }


  <b>catch</b>(ClassNotFoundException exc){


    System.out.println(Classe não encontrada!);


  }


}


<b>public </b><b>void </b>buscaDados(){


  conecta();


  


  


  <b>try</b>{


    comando=conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);


    executar = Select * FROM Cliente WHERE +Busca_ID.getText()+=’”+Busca_Campo.getText()+"’;";


    resultado=comando.executeQuery(executar);


    MostrarDados();


  }


  <b>catch</b>(SQLException SqlExc){


    JOptionPane.showMessageDialog(null,Problema na Busca de Dados ,Titulo,JOptionPane.WARNING_MESSAGE);


  }


  desconecta();


}





<b>public </b><b>void </b>MostrarDados() <b>throws </b>SQLException{


  String imprimir=<b>null</b>;


  <b>try</b>{


    <b>if</b>(resultado.next()){  


      jtfsistema.setText(resultado.getString(nome_sistema));


      jtfmodulo.setText(resultado.getString(modulo));


      jtfcta1.setText(resultado.getString(contato1));


      jtfcta2.setText(resultado.getString(contato2));


      jtfcta3.setText(resultado.getString(contato3));


      jtfcordenador.setText(resultado.getString(cordenador));


      jtfgerente.setText(resultado.getString(gerente));


      


      imprimir = “\n Sistema: " +jtfsistema.getText()+ “\nModulo: “+jtfmodulo.getText()+”\nContato1: “+jtfcta1.getText()+”\nContato2: “+jtfcta2.getText()+”\nContato3: “+jtfcta3.getText()+”\nCordenador: “+jtfcordenador.getText()+”\nGerente: “+jtfgerente.getText();


    }


    <b>if</b>(imprimir==<b>null</b>){


      imprimir=Busca_ID.getText()+” não encontrado”;


    }


  }


  <b>catch</b>(SQLException SqlExc){


    JOptionPane.showMessageDialog(null,“Problema na Busca de Dados “,Titulo,JOptionPane.WARNING_MESSAGE);


  }  


  <a href="//JOptionPane.showMessageDialog">//JOptionPane.showMessageDialog</a>(null,imprimir,Titulo,JOptionPane.INFORMATION_MESSAGE);


}


<b>public </b><b>void </b>desconecta(){


  <b>try</b>{


    conexao.close();


  }


  <b>catch</b>(SQLException SqlExc){


    JOptionPane.showMessageDialog(null,Problema na desconexão com o Banco de Dados,Titulo,JOptionPane.WARNING_MESSAGE);


  }


}





<b>public </b><b>void </b>limpaCampos(){


  jtfsistema.setText(””);


  jtfmodulo.setText(””);


  jtfcta1.setText(");


  jtfcta2.setText("");


  jtfcta3.setText("");


  jtfcordenador.setText("");


  jtfgerente.setText("");


}





<b>public </b><b>void </b>actionPerformed(ActionEvent e){


  <b>try</b>{


    <b>if</b>(e.getSource()==JbProcurar)


      buscaDados();


    <b>if</b>(e.getSource()==JbLimpar)


      limpaCampos();


      //if(e.getSource()==jbsair){


      //desconecta();


      <a href="//System.exit">//System.exit</a>(0);


    


  


}


<b>catch</b>(SQLException SqlExc){


  System.out.println(Erro de SQL1!);


}


}


<b>public  static </b><b>void </b>main(String args[]){


  <b>new </b>Sistemas();    


}





}</code>
yorgan

Então, antes de mais nada a tag CODE utiliza [ e não <.
Quanto ao seu SQL, não sei o que você está digitando no campo Busca_ID, mas pelo nome não parece ser o nome da coluna da tabela.

Tente fazer algo assim:

executar = "Select * FROM Cliente WHERE nome_da_coluna ='"+Busca_Campo.getText()+"';"; //substitua o nome_da_coluna pelo nome de uma das colunas da sua tabela

[]´s

Daniel

VagnerChines

ou ao invês do = utiliza o “like”

G

OI … eu mudei algumas coisas e estou ultizando outra tabela agora …

so que ele não realiza a busca …

acusa erro ao buscar…

se alguem ainda puder ajudar …

Grata !

public  Sistemas() {
	container.setLayout( new BorderLayout() );
	jpdados=new JPanel(new GridLayout(2,2));			container.add("North",jpdados);
	jpBotoes=new JPanel();								container.add("Center",jpBotoes);
	jpmostra=new JPanel(new GridLayout(7,1));			container.add("South",jpmostra);
	jpCampoBusca=new JPanel(new GridLayout(2,2));		jpdados.add(jpCampoBusca);
	
	JbProcurar=new JButton("Procurar");		JbProcurar.addActionListener(this);	jpBotoes.add(JbProcurar);
    JbLimpar=new JButton("Limpar");			JbLimpar.addActionListener(this);	jpBotoes.add(JbLimpar);
	
   
    Busca_Campo = new JTextField(20);		jpCampoBusca.add(Busca_Campo);
	
    jlsistema=new JLabel("Sistema");	    jtfsistema = new JTextField(10);	jtfsistema.setEditable(false);
    jlmodulo=new JLabel("Modulo");			jtfmodulo = new JTextField(10);	    jtfmodulo.setEditable(false);
    jlcta1=new JLabel("Contato1");	        jtfcta1=new JTextField(10);		    jtfcta1.setEditable(false);
    jlcta2=new JLabel("Contato2");	        jtfcta2=new JTextField(10);	 	    jtfcta2.setEditable(false);
	jlcta3=new JLabel("Contato3");	        jtfcta3=new JTextField(10);	        jtfcta3.setEditable(false);
	jlcordenador=new JLabel("Cordenador");	jtfcordenador=new JTextField(10);	jtfcordenador.setEditable(false);
	jlgerente=new JLabel("Gerente");	    jtfgerente=new JTextField(10); 	    jtfgerente.setEditable(false);
	
	
	
	jpmostra.add(jlsistema);			jpmostra.add(jtfsistema);
	jpmostra.add(jlmodulo);				jpmostra.add(jtfmodulo);
	jpmostra.add(jlcta1);				jpmostra.add(jtfcta1);
	jpmostra.add(jlcta2);				jpmostra.add(jtfcta2);
	jpmostra.add(jlcta3);			    jpmostra.add(jtfcta3);
	jpmostra.add(jlcordenador);			jpmostra.add(jtfcordenador);
	jpmostra.add(jlgerente);			jpmostra.add(jtfgerente);
	
	
	
	 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
		setTitle("::Procurar::");
		setResizable(false);
		setVisible(true);
		pack();
	
}



public void conecta(){
	try{
		driver="sun.jdbc.odbc.JdbcOdbcDriver";
		Class.forName(driver);
		url="jdbc:odbc:Turismo";
		conexao=DriverManager.getConnection(url,"","");
	}
	catch(SQLException SqlExc){
		JOptionPane.showMessageDialog(null,"Problema na conexão com o Banco de Dados",Titulo,JOptionPane.WARNING_MESSAGE);
	}
	catch(ClassNotFoundException exc){
		System.out.println("Classe não encontrada!");
	}
}

public void MostrarDados(){
	//String imprimir=null;
	conecta();
	try{
		comando=conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
		executar = "Select * FROM Sistemas WHERE nome_sistema.Sistemas LIKE "+Busca_Campo.getText()+" ";
		resultado=comando.executeQuery(executar);
		
		while(resultado.next()){  
		    jtfsistema.setText(resultado.getString("nome_sistema"));
			jtfmodulo.setText(resultado.getString("modulo"));
			jtfcta1.setText(resultado.getString("contato1"));
			jtfcta2.setText(resultado.getString("contato2"));
			jtfcta3.setText(resultado.getString("contato3"));
			jtfcordenador.setText(resultado.getString("cordenador"));
			jtfgerente.setText(resultado.getString("gerente"));
			
			//imprimir = "\n Sistema: " +jtfsistema.getText()+ "\nModulo: "+jtfmodulo.getText()+"\nContato1: "+jtfcta1.getText()+"\nContato2: "+jtfcta2.getText()+"\nContato3: "+jtfcta3.getText()+"\nCordenador: "+jtfcordenador.getText()+"\nGerente: "+jtfgerente.getText();
		}
		resultado.close();
	}
	catch(SQLException SqlExc){
		JOptionPane.showMessageDialog(null,"Problema na Busca de Dados ",Titulo,JOptionPane.WARNING_MESSAGE);
	}	
	//JOptionPane.showMessageDialog(null,imprimir,Titulo,JOptionPane.INFORMATION_MESSAGE);
	desconecta();
}
public void desconecta(){
	try{
		conexao.close();
	}
	catch(SQLException SqlExc){
		JOptionPane.showMessageDialog(null,"Problema na desconexão com o Banco de Dados",Titulo,JOptionPane.WARNING_MESSAGE);
	}
}


public void actionPerformed(ActionEvent e){
	if(e.getSource()==JbProcurar)
		MostrarDados();
	if(e.getSource()==JbLimpar)
		limpaCampos();
	  //if(e.getSource()==jbsair){
		//desconecta();
		//System.exit(0);
}
public  static void main(String args[]){
	new Sistemas();		
}

}
E

Cara, aqui vai um exemplinho, no meu exemplo tenho uma tabela de contatos e um objeto do tipo Contato. Ve ai se te ajuda:

Contato contato = new Contato();
		PreparedStatement stmt = this.connection.prepareStatement("select * from contatos where id like ?"); // esse ponto de interrogação será setado na linha abaixo

		stmt.setInt(1, id);
		ResultSet rs = stmt.executeQuery();
		while(rs.next()){
			contato.setId(rs.getInt("id"));
			contato.setNome(rs.getString("nome"));
			contato.setEmail(rs.getString("email"));
			contato.setEndereco(rs.getString("endereco"));
		}
		return contato;
yorgan

Acho que você inverteu a declaração de tabela/coluna e também esqueceu das aspas simples.

tente com:

executar = "Select * FROM Sistemas WHERE Sistemas.nome_sistema LIKE '%"+Busca_Campo.getText()+"%' ";

E se for usar o like talvez seja melhor usar % também.
Com o % você considera todas as linhas que contenham o dado e não apenas as que são iguais a ele.
Por exemplo:
Se você passar win no campo texto e não utilizar os % o sistema não traria a linha Windows pois win != windows.
Se você passar %win% ele verifica que win está contido em Windows e portanto irá trazer essa linha.

[]´s

Daniel

G

yorgan!!!

MUito obrigada era isso mesmo :smiley:

egamorim …

Obrigada pela atenção !!!

E

gigicandy:
yorgan!!!

MUito obrigada era isso mesmo :smiley:

egamorim …

Obrigada pela atenção !!!

vc conseguiu ???

Criado 11 de agosto de 2009
Ultima resposta 12 de ago. de 2009
Respostas 9
Participantes 4