@JeffersonSousaa escreveu:
Eu não estou conseguindo gera minha Jtable com os dados do Banco(estou utilizando my Sql) se alguém poder me ajuda. Os códigos compilam normalmente mas na hora em que vou tentar rodar ele cai, os erros estão após os códigos e com asterisco (***) Espero que alguém possa me ajudar obrigado!!
classe de conexão:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConexaoBDcasa { static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } } public Connection conectarr() throws SQLException { String servidor = "localhost"; String porta = "3306"; String database = "tutorial"; String usuario = "root"; String senha = "157157"; return DriverManager .getConnection("jdbc:mysql://"+servidor+":"+porta+ "/"+database+"?user="+usuario+"&password="+senha); } public static void desconectar(Connection conn) throws SQLException { conn.close(); } }
Classe do meu objeto :
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; //import java.util.Date; public class TabelaRankingDeParticipacao{ private int id,posicao,sugestoesE; private String nome; public TabelaRankingDeParticipacao() { } public TabelaRankingDeParticipacao(int id) { this.id = id; } public TabelaRankingDeParticipacao(int id, int Posicao, String nome, int sugestoesE) { this.id = id; this.posicao = posicao; this.nome = nome; this.sugestoesE = sugestoesE; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getPosicao() { return posicao; } public void setPosicao(int posicao) { this.posicao = posicao; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public int getSugestoesE() { return sugestoesE; } public void setSugestoesE(int sugestoesE) { this.sugestoesE = sugestoesE; } public ArrayList<TabelaRankingDeParticipacao> select(Connection conn) { String sqlSelect = "select * from RankingDeParticipacao order by sugestoesenviadas desc"; ArrayList<TabelaRankingDeParticipacao> lista = new ArrayList<>(); try (PreparedStatement stm = conn.prepareStatement(sqlSelect); ResultSet rs = stm.executeQuery();) { while(rs.next()){ TabelaRankingDeParticipacao trp = new TabelaRankingDeParticipacao(); trp.setId(rs.getInt(1)); trp.setPosicao(rs.getInt(2)); trp.setNome(rs.getString(3)); trp.setSugestoesE(rs.getInt(4)); lista.add(trp); } } catch (Exception e) { e.printStackTrace(); } return lista; } @Override public String toString() { return "Pedido [id=" + id + ", nome=" + nome + ", sugestõesEnviadas=" + sugestoesE + "]"; } }
Classe da tabela:
import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import java.awt.Container; import java.awt.FlowLayout; import java.awt.BorderLayout; import java.sql.Connection; import java.util.ArrayList; import java.sql.*; public class TelaTb extends JFrame{ private Connection conn; private String[] colunas = {"Id", "Posição", "Nome do Colaborador","Sugestoes Enviadas"}; private Object[][] pedidos; private JTable tabela; private JPanel pnlCentro; private Container caixa; private JScrollPane rolagem; public TelaTb(Connection conn){ super("Sistema de Sugestões"); //VETOR DE OBJETOS RECEBENDO O METODO pedidos = carregaDados(conn); //JTABLE RECEBENDO PARAMETROS tabela = new JTable(pedidos, colunas); //CRIANDO CONTAINER //caixa = getContentPane(); //caixa.setLayout(new BorderLayout()); //CRIANDO UM PAINEL //pnlCentro = new JPanel(new FlowLayout()); //CRIANDO UM JSCROLLPANE E ADD NA TABELA rolagem = new JScrollPane(tabela); pnlCentro.add(rolagem); //DEFININDO CONTAINER setSize(600,300); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } //CRIANDO METODO PARA PRENCHER A TABELA public Object[][] carregaDados(Connection conn){ TabelaRankingDeParticipacao trp = new TabelaRankingDeParticipacao(); ArrayList<TabelaRankingDeParticipacao> lista = trp.select(conn); Object[][] saida = new String[lista.size()][colunas.length]; for(int i = 0; i < lista.size(); i++){ trp = lista.get(i); saida[i][0] = trp.getId(); saida[i][1] = trp.getPosicao(); saida[i][2] = trp.getNome(); saida[i][3] = trp.getSugestoesE(); } return saida; } }
Método main:
import java.sql.*; public class TesteTabela{ public static void main(String[] args){ // obtem conexao com o banco ConexaoBDcasa bd = new ConexaoBDcasa(); try{ Connection conn = bd.conectarr(); new TelaTb(conn); } catch (SQLException e){ e.printStackTrace(); } } }
Erro:
----jGRASP exec: java TesteTabela ****com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'tutorial.rankingdeparticipacao' doesn't exist 'at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)**** at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:404) at com.mysql.jdbc.Util.getInstance(Util.java:387) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:941) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3870) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3806) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2470) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2617) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2550) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1861) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1962) at TabelaRankingDeParticipacao.select(TabelaRankingDeParticipacao.java:63) at TelaTb.carregaDados(TelaTb.java:57) at TelaTb.<init>(TelaTb.java:27) at TesteTabela.main(TesteTabela.java:9) ****Exception in thread "main" java.lang.NullPointerException**** at TelaTb.<init>(TelaTb.java:42) at TesteTabela.main(TesteTabela.java:9) ----jGRASP: process ended by user.
Mensagens: 1
Participantes: 1