JTable o.O

10 respostas
Naruto

Boa Noite.... pedi uma ajuda ontem sobre JTable mas não consegui resolver por muita falta de experiencia o.O

olha so tenhu 4 pacortes... dto, ctr, dao e view....

no dao eu tenhu a classe conexao e a FuncionarioDAO... segue a classe Funcionario DAO

package br.com.siscom.dao;

import br.com.siscom.dto.FuncionarioDTO;
import java.sql.*;

public class FuncionarioDAO {

	ResultSet rs = null;

	public boolean inserirFuncionario(FuncionarioDTO funcionarioDTO) {
		try {
			Conexao.ConnectDB();
			Statement stmt = Conexao.con.createStatement();
			String Sql = "Insert into Funcionario(nome, cpf, rg, ctps, datanascimento, "
					+ "sexo, dataadmissao, datademissao, cargo, endereco, complemento, "
					+ "bairro, cidade, uf, cep, telres, telcel, email, comissao, usuario, "
					+ "senha, situacao, codfunc) values( "
					+ "'"
					+ funcionarioDTO.getNome()
					+ "', "
					+ "'"
					+ funcionarioDTO.getCpf()
					+ "', "
					+ "'"
					+ funcionarioDTO.getRg()
					+ "', "
					+ "'"
					+ funcionarioDTO.getCtps()
					+ "', "
					+ "'"
					+ funcionarioDTO.getDatanascimento()
					+ "', "
					+ "'"
					+ funcionarioDTO.getSexo()
					+ "', "
					+ "'"
					+ funcionarioDTO.getDataadmissao()
					+ "', "
					+ "'"
					+ funcionarioDTO.getDatademissao()
					+ "', "
					+ "'"
					+ funcionarioDTO.getCargo()
					+ "', "
					+ "'"
					+ funcionarioDTO.getEndereco()
					+ "', "
					+ "'"
					+ funcionarioDTO.getComplemento()
					+ "', "
					+ "'"
					+ funcionarioDTO.getBairro()
					+ "', "
					+ "'"
					+ funcionarioDTO.getCidade()
					+ "', "
					+ "'"
					+ funcionarioDTO.getUf()
					+ "', "
					+ "'"
					+ funcionarioDTO.getCep()
					+ "', "
					+ "'"
					+ funcionarioDTO.getTelres()
					+ "', "
					+ "'"
					+ funcionarioDTO.getTelcel()
					+ "', "
					+ "'"
					+ funcionarioDTO.getEmail()
					+ "', "
					+ "'"
					+ funcionarioDTO.getComissao()
					+ "', "
					+ "'"
					+ funcionarioDTO.getUsuario()
					+ "', "
					+ "'"
					+ funcionarioDTO.getSenha()
					+ "', "
					+ "'"
					+ funcionarioDTO.getSituacao()
					+ "', "
					+ "'"
					+ funcionarioDTO.getCodfunc() + "')";

			System.out.println(Sql);
			stmt.execute(Sql);
			
			
			Conexao.con.commit();
			Conexao.CloseDB();
			return true;

		} catch (Exception e) {

			System.out.println(e.getMessage());
			return false;
		}
	}

	public boolean excluirFuncionario(FuncionarioDTO funcionarioDTO) {
		try {
			Conexao.ConnectDB();
			Statement stmt = Conexao.con.createStatement();
			String Sql = "Delete from Funcionario where id_funcionario = "
					+ "'" + funcionarioDTO.getId_funcionario() + "'";
			stmt.execute(Sql);
			Conexao.con.commit();
			Conexao.CloseDB();
			return true;

		} catch (Exception e) {
			System.out.println(e.getMessage());
			return false;

		}

	}

	public boolean alterarFuncionario(FuncionarioDTO funcionarioDTO){
		try {
			Conexao.ConnectDB();
			Statement stmt = Conexao.con.createStatement();
			String Sql = "Update Funcionario set "            +         "nome             = '"
			             +funcionarioDTO.getNome()            + "', " + "cpf              = '"
			             +funcionarioDTO.getCpf()             + "', " + "rg               = '"
			             +funcionarioDTO.getRg()              + "', " + "ctps             = '"
			             +funcionarioDTO.getCtps()            + "', " + "datanascimento   = '"
			             +funcionarioDTO.getDatanascimento()  + "', " + "sexo             = '" 
			             +funcionarioDTO.getSexo()            + "', " + "dataadmissao     = '"
			             +funcionarioDTO.getDataadmissao()    + "', " + "datademissao     = '"
			             +funcionarioDTO.getDatademissao()    + "', " + "cargo            = '"
			             +funcionarioDTO.getCargo()           + "', " + "endereco         = '"
			             +funcionarioDTO.getEndereco()        + "', " + "complemento      = '"
			             +funcionarioDTO.getComplemento()     + "', " + "bairro           = '"
			             +funcionarioDTO.getBairro()          + "'  " + "cidade           = '"
			             +funcionarioDTO.getCidade()          + "', " + "uf               = '"
			             +funcionarioDTO.getUf()              + "', " + "cep              = '"
			             +funcionarioDTO.getCep()             + "', " + "telres           = '"
			             +funcionarioDTO.getTelres()          + "', " + "email            = '"
			             +funcionarioDTO.getEmail()           + "', " + "comissao         = '"
			             +funcionarioDTO.getComissao()        + "', " + "Usuario          = '"
			             +funcionarioDTO.getUsuario()         + "', " + "senha            = '"
			             +funcionarioDTO.getSenha()           + "', " + "situacao         = '"
			             +funcionarioDTO.getSituacao()        + "', " + "codfunc          = '"
			             +funcionarioDTO.getCodfunc()         + "'  " + "where id_funcionario = '"
			             +funcionarioDTO.getId_funcionario()  + "'";
			
			stmt.execute(Sql);
			Conexao.con.commit();
			Conexao.CloseDB();
			return true;
			
		}catch (Exception e) {
			System.out.println(e.getMessage());
			return false;

		}
	}
	
	public void Buscar(){
		try{
		Conexao.ConnectDB();
		Statement stmt = Conexao.con.createStatement();
		String Sql = "Select nome, cpf from funcionario";
		ResultSet rs = stmt.executeQuery(Sql);
		
		}catch (SQLException e){
		
		e.printStackTrace();
		
	}
	}
}

ali eu fiz um SQL....

agora eu precisava jogar essa SQL em uma JTable que esta no JFrame que esta no meu VIEW mais eu naum to conseguindo :/
por favor me desculpem mesmo pela ignorancia o.O
vlwwwww

10 Respostas

ViniGodoy

O seu método buscar deve retornar ou um funcionário, ou uma lista de funcionários. Só executar o SQL sem retornar nada não vai adiantar.
Aí sim, esse dado você joga no seu TableModel.

Outra coisa, porque não continuou postando no seu tópico original? Se a dúvida é a mesma, evite duplicar tópicos. Assim quem participou do tópico original já receberia um e-mail, na hora. :slight_smile:

Aliás, naquele seu tópico eu havia feito uma pergunta, que você não me respondeu.

Naruto

:oops: me desculpaa não farei mais isto…
então a verdade não consegui fazer certo aquele Buscar() e nem como usar o JTable o.O

Naruto

no caso retornar um funcionario ou uma lista vc fala disso???

public void Buscar(FuncionarioDTO funcionarioDTO){
		try{
		Conexao.ConnectDB();
		Statement stmt = Conexao.con.createStatement();
		String Sql = "Select nome, cpf from funcionario";
		ResultSet rs = stmt.executeQuery(Sql);
		
		}catch (SQLException e){
		
		e.printStackTrace();
		
	}
	}

vlw

ViniGodoy
Não, disso:
public List<FuncionarioDTO> buscarTodos() {
   try{  
      Conexao.ConnectDB();  
      Statement stmt = Conexao.con.createStatement();  
      ResultSet rs = stmt.executeQuery("Select * from funcionario");  
      List<Funcionario> funcionarios = new ArrayList<Funcionario>();
      while (rs.next()) {
          Funcionario func = new Funcionario();
          func.setNome(rs.getString("nome"));
          func.setCpf(rs.getString("cpf"));
          //continue preenchendo até ter um funcionário completo
          funcionarios.add(funcionario);
      }
      return funcionarios;
   }catch (SQLException e){             
      throw new RuntimeException(e);
   }  
}

Enquanto isso, lá na sua view:

btnPreencherTabela.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent evt) {
      funcionariosModel.set(funcionarioDao.buscarTodos());
   }
});
Naruto

deixa eu ver aqui c consigo :smiley:

Naruto

bom no caso eu podia so fazer estes???

func.setNome(rs.getString("nome")); func.setCpf(rs.getString("cpf"));

mais ai naum poderia levar todos os dados po JFrame ne???
vlwww

ViniGodoy

Poder até podia… Mas ia ficar menos OO.

Mas daí vai carregar só parte do seu funcionário.
Geralmente trabalhamos no frame só com as classes de negócio.

E um funcionário, para ser instanciado, deveria estar completo.

Naruto

hummm vlww eu ja criei ele todo agora vo ver c conseigo la no view criar um modelo
:d
brigado hem
:smiley:

Naruto

manin eu vi em um outro post vc falano para naum usar o
DefaultTableModel

e para criar o meu proprio model… cmo seria isso
???
vlwwwww

ViniGodoy

Não é difícil.

É só dar uma lida nos artigos que eu te passei:
http://www.informit.com/articles/article.aspx?p=332278
http://www.informit.com/articles/article.aspx?p=333472

Lá tem explicações e exemplos.

Criado 21 de julho de 2008
Ultima resposta 22 de jul. de 2008
Respostas 10
Participantes 2