Javafree
 Forum   Topics   Author   Post 
Banco de Dados - JDBC / SQL Preciso de ajuda para fazer um select que funcione. lopes380 Muito obrigado pela colaboração Yelden, após várias tentativas consegui o que estava pretendendo por tanto pelo menos este problema já está resolvido.
Banco de Dados - JDBC / SQL Preciso de ajuda para fazer um select que funcione. lopes380 Boa noite. Sou aprendiz em java e mysql. Quando faço consulta direta no bd funciona perfeitamente, quando tento usar o select no meu projeto não funciona, se alguém puder me ajudar fico agradecido já faz 3 dias que estou tentando acertar. Segue partes do meu projeto e minhas tabelas mysql [code] package empresa.forms; import empresa.dao.TelaClienteDao; import empresa.logica.TelaCliente; import java.sql.SQLException; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.JTable; import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableModel; /** * * @author claudio */ public class TelaClientes extends javax.swing.JFrame { DefaultTableModel tmTela = new DefaultTableModel(null, new String[]{"Id","IdEnd", "Cep","Cnpj","Nome", "Telefone", "Celular", "Email", "Sexo", "Nascimento", "Cidade", "Bairro", "Tipo", "Rua", "Estado"}); List<TelaCliente> telas; ListSelectionModel lsmTela; /** * Creates new form TelaClientes */ public TelaClientes() { initComponents(); } private void listarCep() throws ClassNotFoundException, SQLException { TelaClienteDao dao = new TelaClienteDao(); telas = dao.getLista(jFPesquisa.getText()); mostraPesquisa(telas); } private void jTTabelaLinhaSelecionada(JTable tabela) { if (jTTabela.getSelectedRow() != -1) { //habilitaCampos(); jTIdEndereco.setText(String.valueOf(telas.get(tabela.getSelectedRow()).getIdEndereco())); jTId.setText(String.valueOf(telas.get(tabela.getSelectedRow()).getIdCliente())); jFCep.setText(telas.get(tabela.getSelectedRow()).getCep()); jTCnpj.setText(telas.get(tabela.getSelectedRow()).getCnpj()); jTNome.setText(telas.get(tabela.getSelectedRow()).getNome()); jFTelefone.setText(telas.get(tabela.getSelectedRow()).getTelefone()); jFCelular.setText(telas.get(tabela.getSelectedRow()).getCelular()); jTEmail.setText(telas.get(tabela.getSelectedRow()).getEmail()); jTSexo.setText(telas.get(tabela.getSelectedRow()).getSexo()); jFNascimento.setText(telas.get(tabela.getSelectedRow()).getNascimento()); jTCidade.setText(telas.get(tabela.getSelectedRow()).getCidade()); jTBairro.setText(telas.get(tabela.getSelectedRow()).getBairro()); jCTipo.setSelectedItem(telas.get(tabela.getSelectedRow()).getTipo()); jTRua.setText(telas.get(tabela.getSelectedRow()).getRua()); jTEstado.setText(telas.get(tabela.getSelectedRow()).getEstado()); } else { jTId.setText(""); jFCep.setText(""); jTCnpj.setText(""); jTNome.setText(""); jFTelefone.setText(""); jFCelular.setText(""); jTEmail.setText(""); jTSexo.setText(""); jFNascimento.setText(""); jTCidade.setText(""); jTBairro.setText(""); jCTipo.setSelectedItem(""); jTRua.setText(""); jTEstado.setText(""); } } private void mostraPesquisa(List<TelaCliente> telas) { while (tmTela.getRowCount() > 0) { tmTela.removeRow(0); } if (telas.size() == 0) { JOptionPane.showMessageDialog(null, "Nenhum cep cadastrado!"); } else { String[] linha = new String[]{null, null, null, null, null, null,null, null,null, null, null, null, null,null,null}; for (int i = 0; i < telas.size(); i++) { tmTela.addRow(linha); tmTela.setValueAt(telas.get(i).getCep(), i, 0); tmTela.setValueAt(telas.get(i).getCnpj(), i, 1); tmTela.setValueAt(telas.get(i).getNome(), i, 2); tmTela.setValueAt(telas.get(i).getTelefone(), i, 3); tmTela.setValueAt(telas.get(i).getCelular(), i, 4); tmTela.setValueAt(telas.get(i).getEmail(), i, 5); tmTela.setValueAt(telas.get(i).getSexo(), i, 6); tmTela.setValueAt(telas.get(i).getNascimento(), i, 7); tmTela.setValueAt(telas.get(i).getCidade(), i, 8); tmTela.setValueAt(telas.get(i).getBairro(), i, 9); tmTela.setValueAt(telas.get(i).getTipo(), i, 10); tmTela.setValueAt(telas.get(i).getRua(), i, 11); tmTela.setValueAt(telas.get(i).getEstado(), i, 12); tmTela.setValueAt(telas.get(i).getIdCliente(), i, 13); tmTela.setValueAt(telas.get(i).getIdEndereco(), i, 14); } } } } public class TelaClienteDao { private Connection conexao; public TelaClienteDao() throws ClassNotFoundException, SQLException{ this.conexao = CriaConexao.getConexao(); } public List<TelaCliente> getLista(String Cep) throws SQLException { String sql = "select * from endereco, cliente" + "endereco.idEndereco = cliente.cep" + "where cliente.cep = ?"; PreparedStatement stmt = this.conexao.prepareStatement(sql); stmt.setString(1, Cep); ResultSet rs = stmt.executeQuery(); List<TelaCliente> minhaLista = new ArrayList<TelaCliente>(); while (rs.next()) { TelaCliente tl1 = new TelaCliente(); tl1.setIdCliente(Long.valueOf(rs.getString("IdCliente"))); tl1.setIdEndereco(Long.valueOf(rs.getString("IdEndereco"))); tl1.setCep(rs.getString("cep")); tl1.setCnpj(rs.getString("cnpj")); tl1.setNome(rs.getString("nome")); tl1.setTelefone(rs.getString("telefone")); tl1.setCelular(rs.getString("celular")); tl1.setEmail(rs.getString("email")); tl1.setSexo(rs.getString("sexo")); tl1.setNascimento(rs.getString("nascimento")); tl1.setCidade(rs.getString("cidade")); tl1.setBairro(rs.getString("bairro")); tl1.setTipo(rs.getString("tipo")); tl1.setRua(rs.getString("rua")); tl1.setEstado(rs.getString("estado")); minhaLista.add(tl1); } rs.close(); stmt.close(); return minhaLista; } } mysql> desc endereco; +------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+----------------+ | idEndereco | int(11) | NO | PRI | NULL | auto_increment | | cep | varchar(9) | NO | | NULL | | | cidade | varchar(30) | NO | | NULL | | | bairro | varchar(30) | NO | | NULL | | | tipo | varchar(20) | NO | | NULL | | | rua | varchar(40) | NO | | NULL | | | estado | varchar(2) | NO | | NULL | | +------------+-------------+------+-----+---------+----------------+ mysql> desc cliente; +------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+----------------+ | idCliente | int(11) | NO | PRI | NULL | auto_increment | | cep | int(11) | NO | MUL | NULL | | | cnpj | varchar(15) | YES | | NULL | | | nome | varchar(40) | YES | | NULL | | | telefone | varchar(15) | YES | | NULL | | | celular | varchar(15) | YES | | NULL | | | email | varchar(40) | YES | | NULL | | | sexo | varchar(1) | YES | | NULL | | | nascimento | varchar(10) | YES | | NULL | | +------------+-------------+------+-----+---------+----------------+ [/code]
Java Básico java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0). lopes380 Infelizmente não resolveu agora retorna o erro - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Not unique table/alias: 'endereco' estou postando minhas tabelas mysql para ver se ajuda [code] mysql> desc cliente; +----------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+-------------+------+-----+---------+----------------+ | cli_id | int(11) | NO | PRI | NULL | auto_increment | | end_cep | varchar(9) | NO | MUL | NULL | | | cli_cnpj | varchar(15) | YES | | NULL | | | cli_nome | varchar(40) | YES | | NULL | | | cli_telefone | varchar(15) | YES | | NULL | | | cli_celular | varchar(15) | YES | | NULL | | | cli_email | varchar(40) | YES | | NULL | | | cli_sexo | varchar(1) | YES | | NULL | | | cli_nascimento | varchar(10) | YES | | NULL [/code] mysql> desc endereco; +------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+-------------+------+-----+---------+-------+ | end_cep | varchar(9) | NO | PRI | NULL | | | end_cidade | varchar(30) | YES | | NULL | | | end_bairro | varchar(30) | YES | | NULL | | | end_tipo | varchar(20) | YES | | NULL | | | end_rua | varchar(40) | YES | | NULL | | | end_estado | varchar(2) | YES | | NULL | [code] [/code]
Java Básico java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0). lopes380 Boa Noite! Sou autodidata e iniciante em java e também sou novo aqui no fórum agradeço desde já a boa vontade de todos, segue abaixo partes do meu código para facilitar a quem possa me orientar onde está o erro. minha classe TelaClientes - jForm [code] private void listarCep() throws ClassNotFoundException, SQLException { TelaClienteDao dao = new TelaClienteDao(); telas = dao.getLista(jFPesquisa.getText()); mostraPesquisa(telas); } private void mostraPesquisa(List<TelaCliente> telas) { while (tmTela.getRowCount() > 0) { tmTela.removeRow(0); } if (telas.size() == 0) { JOptionPane.showMessageDialog(null, "Nenhum cep cadastrado!"); } else { String[] linha = new String[]{null, null, null, null, null, null,null, null,null, null, null, null, null,null}; for (int i = 0; i < telas.size(); i++) { tmTela.addRow(linha); tmTela.setValueAt(telas.get(i).getEnd_Cep(), i, 0); tmTela.setValueAt(telas.get(i).getCli_Cnpj(), i, 1); tmTela.setValueAt(telas.get(i).getCli_Nome(), i, 2); tmTela.setValueAt(telas.get(i).getCli_Telefone(), i, 3); tmTela.setValueAt(telas.get(i).getCli_Celular(), i, 4); tmTela.setValueAt(telas.get(i).getCli_Email(), i, 5); tmTela.setValueAt(telas.get(i).getCli_Sexo(), i, 6); tmTela.setValueAt(telas.get(i).getCli_Nascimento(), i, 7); tmTela.setValueAt(telas.get(i).getEnd_Cidade(), i, 8); tmTela.setValueAt(telas.get(i).getEnd_Bairro(), i, 9); tmTela.setValueAt(telas.get(i).getEnd_Tipo(), i, 10); tmTela.setValueAt(telas.get(i).getEnd_Rua(), i, 11); tmTela.setValueAt(telas.get(i).getEnd_Estado(), i, 12); tmTela.setValueAt(telas.get(i).getCli_Id(), i, 13); } } } [/code] minha classe TelaClientesDao [code] public List<TelaCliente> getLista(String End_Cep) throws SQLException { String sql = "select * from endereco inner join cliente" + "on endereco.end_cep = cliente.end_cep"; PreparedStatement stmt = this.conexao.prepareStatement(sql); stmt.setString(1, End_Cep); ResultSet rs = stmt.executeQuery(); List<TelaCliente> minhaLista = new ArrayList<TelaCliente>(); while (rs.next()) { TelaCliente tl1 = new TelaCliente(); tl1.setCli_Id(Long.valueOf(rs.getString("cli_id"))); tl1.setEnd_Cep(rs.getString("end_cep")); tl1.setCli_Cnpj(rs.getString("cli_cnpj")); tl1.setCli_Nome(rs.getString("cli_nome")); tl1.setCli_Telefone(rs.getString("cli_telefone")); tl1.setCli_Celular(rs.getString("cli_celular")); tl1.setCli_Email(rs.getString("cli_email")); tl1.setCli_Sexo(rs.getString("cli_sexo")); tl1.setCli_Nascimento(rs.getString("cli_nascimento")); tl1.setEnd_Cidade(rs.getString("end_cidade")); tl1.setEnd_Bairro(rs.getString("end_bairro")); tl1.setEnd_Tipo(rs.getString("end_tipo")); tl1.setEnd_Rua(rs.getString("end_rua")); tl1.setEnd_Estado(rs.getString("end_estado")); minhaLista.add(tl1); } rs.close(); stmt.close(); return minhaLista; } [/code]
Goto page 1