Consultando no banco e mostrando numa jTable

1 resposta
S

Olá pessoal... tow com um probleminha...
já cadastro certinho no banco...
porém na hora de consultar os dados não acontece nada !
e agora?
Bom, minha consulta eh um pouko estranha e complexa...
pq?
acontece o seguinte...
eu tenho no meu campo de busca 5 opções de busca...
Consultar por 1 campo, consultar por 2, por 3, por 4 ou por 5...
por isso eu monto a minha sql deste jeito como verão...
e qnd eu chamo o método buscar passo a string sql q montei...
essa foi uma opção q fiz por ter q buscar por vários campos né?
mas simplesmente não acontece nada e ainda
minha jTable sumiu da tela...
por favor, me ajudem...

olha... aki estão meus códigos...

Meu código no botão q fiz pra consultar foi este...

jButtonConsultaP.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					jContentPane1.add(getJPanelCadastrarP());
					jContentPane1.revalidate();
					
					
				}

meu código de busca foi este:

public Object[][] buscarProfissionalTudo(String sql1){
		//13 colunas
		Object[][] celulas = new Object[6000][13];
		int i=0;
		//consulta na base...
		//like % => retorna todo mundo que tiver essa substring
		String sql = sql1;
		try {
			Statement  st = con.createStatement();
			ResultSet rs = st.executeQuery(sql);
			//enquanto houver linhas no resultSet
			while(rs.next()){
				//pegar o valor de cada linha
				String nome = rs.getString(1);
				int idade = rs.getInt(2);
				String sexo = rs.getString(3);
				String profissao = rs.getString(4);
				String rg = rs.getString(5);
				String cpf = rs.getString(6);
				String endereco = rs.getString(7);
				String complemento = rs.getString(8);
				int ddd = rs.getInt(9);
				String telefone = rs.getString(10);
				String ativo = rs.getString(11);
				String locadopara2 = rs.getString(12);
				String observacoes = rs.getString(13);
				celulas[i][0] = nome;
				celulas[i][1] = idade;
				celulas[i][2] = sexo;
				celulas[i][3] = profissao;
				celulas[i][4] = rg;
				celulas[i][5] = cpf;
				celulas[i][6] = endereco;
				celulas[i][7] = complemento;
				celulas[i][8] = ddd;
				celulas[i][9] = telefone;
				celulas[i][10] = ativo;
				celulas[i][11] = locadopara2;
				celulas[i][12] = observacoes;
				i++;
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return celulas;
	}
meu cógido na jTable é este: eu uso uma variável contadora pq tenho q ver qnd preciso ou naum colocar o and na string sql
private JTable getJTableConsultaProf() {
		if (jTableConsultaProf == null) {
			jTableConsultaProf = new JTable();
			jTableConsultaProf.setBounds(new Rectangle(14, 256, 528, 188));
			//pegar os valores
			String nome = jTextFieldConsultaNomeP.getText();
			String profissao = ((String) jComboBoxConsultaProfissaoP.getSelectedItem());
			String ativo = ((String) jComboBoxConsultaAtivoP.getSelectedItem());
			String sexo = ((String) jComboBoxConsultaSexoP.getSelectedItem());
			String locadopara = jTextFieldConsultaLocadoparaP.getText();
			//sua query default
			String sql="";
			if (nome!=null && nome.equals("") && profissao!=null && profissao.equals("") && ativo!=null && ativo.equals("") && sexo!=null && sexo.equals("") && locadopara!=null && locadopara.equals("") ){
				 sql = "select * from profissional";
			}else{
				 sql = "select * from profissional where";
			}
			
			//Variável contadora
			int cont = 0;
			//montando a query
			if(nome!=null && nome.equals("")){
				cont ++;
				sql += " nome = '"+nome+"'";
			}
			if(cont>0 && profissao!=null && profissao!=""){
				sql += " and profissao = '"+profissao+"'";
			}else {
				if(cont==0 && profissao!=null && profissao!=""){
					sql += " profissao = '"+profissao+"'";
				}
			}
			if(cont>0 && ativo!=null && ativo!=""){
				sql += " and ativo = '"+ativo+"'";
			}else {
				if(cont==0 && ativo!=null && ativo!=""){
					sql += " ativo = '"+ativo+"'";
				}
			}
			if(cont>0 && sexo!=null && sexo!=""){
				sql += " and sexo = '"+sexo+"'";
			}else {
				if(cont==0 && sexo!=null && sexo!=""){
					sql += " sexo = '"+sexo+"'";
				}
			}
			if(cont>0 && locadopara!=null && locadopara!=""){
				sql += " and locadopara = '"+locadopara+"'";
			}else {
				if(cont==0 && locadopara!=null && locadopara!=""){
					sql += " locadopara = '"+locadopara+"'";
				}
			}
			
			//chamar o metodo para executar
			//metodo(sql);
			ProfissionalJDBC sup = new ProfissionalJDBC();
			celulasP = sup.buscarProfissionalTudo(sql);
			jTableConsultaProf = new JTable(celulasP,titulosP);
		}
		return jTableConsultaProf;
	}
e por fim aki vai o q colokei em celulasP e titulosP tá?
private String [] titulosP = {"Nome","Idade","Sexo","Profissão","RG","CPF","Endereço","Complemento","DDD","Telefone","Ativo","Locado Para","Obs"};
	//celulas das tabelas
	private Object [][] celulasP = new Object[200][13];

me ajudem, please...

1 Resposta

acopiara

Cara, é melhor você usar um TableModel. Vai anexo um exemplo de adicionar um registro a tabela usando
um DefaultTableModel.

Valeu

Criado 15 de dezembro de 2007
Ultima resposta 15 de dez. de 2007
Respostas 1
Participantes 2