Como criar um campo de pesquisa em banco de dados no projeto?

8 respostas
alexandref93

Bem galera, tipo, eu jah tenho um banco de dados criados, um JFrame para cadastro de cliente, outro para listar o cliente jah cadastro etc, mais tipo, como faço tipo, tem um campo de texto lá, escrevo o primeiro nome, e clico no botão pesquisar, pra ele apenas listar os nomes de acordo com a minha pesquisa???

Obrigado pela atenção!!!

8 Respostas

A

Crie uma listagem de resultados pra isso, um método que te retorne um List< T >. A magica está no sql que você vai colocar:

public List<String> getListaBusca(String valor){
PreparedStatement stmt = this.con.prepareStatement("select * from suaTabela where seuCampo like '%" + valor + "%'");
//% significa qualquer coisa. se colocar antes do valor, é qualquer coisa antes + valor, se colocar depois, qualquer valor depois do valor
.
.
.
}

exemplo prático do mysql:

CREATE TABLE contato (
         nome VARCHAR(100)
       );

vamos inserir valores

insert into contato(nome) values 
('And9re'), 
('And8re8'), 
('7Andre'), 
('Andre6'), 
('A55ndre'), 
('An33dre'), 
('Andre111'), 
('Andre222')

agora vamos buscar algum valor:

select * from contato where nome like '%8%'

deu pra pegar?
ah, detalhe. essa é a única forma que eu conheço, mas também sou novo com bds :roll:

alexandref93

andre.froes:
Crie uma listagem de resultados pra isso, um método que te retorne um List< T >. A magica está no sql que você vai colocar:

public List<String> getListaBusca(String valor){
PreparedStatement stmt = this.con.prepareStatement("select * from suaTabela where seuCampo like '%" + valor + "%'");
//% significa qualquer coisa. se colocar antes do valor, é qualquer coisa antes + valor, se colocar depois, qualquer valor depois do valor
.
.
.
}

exemplo prático do mysql:

CREATE TABLE contato (
         nome VARCHAR(100)
       );

vamos inserir valores

insert into contato(nome) values 
('And9re'), 
('And8re8'), 
('7Andre'), 
('Andre6'), 
('A55ndre'), 
('An33dre'), 
('Andre111'), 
('Andre222')

agora vamos buscar algum valor:

select * from contato where nome like '%8%'

deu pra pegar?
ah, detalhe. essa é a única forma que eu conheço, mas também sou novo com bds :roll:

bem, do seu primeiro exemplo, esse método eu aplico no botão pesquisar correto???

A

isso, quando você clicar no botão pesquisar, o seu método vai receber e retornar o list com os valores que tu ta procurando

alexandref93

bem, eu apliquei esse método dentro do ActionEvent do botão, tá certo o método???
por que aqui não tá funfando!!!

A

tu tem que ver o que tu quer que retorne. Por exemplo, aquele metodo de retorna um List de elementos que tu quer. É isso mesmo que você tá querendo ou você quer que ele traga um único valor?

posta o seu método também e me diz qual erro ta aparecendo.

alexandref93

andre.froes:
tu tem que ver o que tu quer que retorne. Por exemplo, aquele metodo de retorna um List de elementos que tu quer. É isso mesmo que você tá querendo ou você quer que ele traga um único valor?

posta o seu método também e me diz qual erro ta aparecendo.

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) { List<String> getListaBusca(String valor){ PreparedStatement stmt = this.con.prepareStatement("select * from jTable1 where jTextField1 like '%" + valor + "%'"); }

ele acusa erro na linha do List!!!

eu quero ele faça o seguinte, tipo, digitei lah “alex” no campo, e ao clicar no botão pesquisar, ele retorna com uma lista de possiveis nome com alex!!!
entendeu???

A

Entendi o seu erro, e você está cometendo um equívoco, você terá que criar um método que vai ser chamado no action performed.

public List<String> getBusca(String valor){
		PreparedStatement stmt = this.con.prepareStatement("select nome from contato where nome like '%" + valor + "%'");
		ResultSet rs = stmt.executeQuery();
		
		List<String> listaBusca = new ArrayList<String>();
		
		while (rs.next()){
			listaBusca.add(rs.getString("nome"));
		}
		
		rs.close();
		stmt.close();
		
		return listaBusca;
		
	}
	
	private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {  
		List<String> d = getBusca("Teste");
		for(String dado : d){
			System.out.println(dado);
		}
	}

o método getbusca vai acusar erros porque não fiz os try/catch, to na munheca no computador da namorada aqui, apenas completa os exceptions.

Deu pra entender porque deu o erro?
o método vai te retornar a lista, e lá você vai tratar

alexandref93

andre.froes:
Entendi o seu erro, e você está cometendo um equívoco, você terá que criar um método que vai ser chamado no action performed.

public List<String> getBusca(String valor){
		PreparedStatement stmt = this.con.prepareStatement("select nome from contato where nome like '%" + valor + "%'");
		ResultSet rs = stmt.executeQuery();
		
		List<String> listaBusca = new ArrayList<String>();
		
		while (rs.next()){
			listaBusca.add(rs.getString("nome"));
		}
		
		rs.close();
		stmt.close();
		
		return listaBusca;
		
	}
	
	private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {  
		List<String> d = getBusca("Teste");
		for(String dado : d){
			System.out.println(dado);
		}
	}

o método getbusca vai acusar erros porque não fiz os try/catch, to na munheca no computador da namorada aqui, apenas completa os exceptions.

Deu pra entender porque deu o erro?
o método vai te retornar a lista, e lá você vai tratar

não consegui entender direito!!! =/

Criado 12 de julho de 2010
Ultima resposta 13 de jul. de 2010
Respostas 8
Participantes 2