Olá a todos estou fazendo um aplicação que necessita de uma pesquisa a um determinado banco mysql como segue o código abaixo:
publicclassPesquisa{privateConnectionconexao;publicPesquisa()throwsSQLException{this.conexao=CriaConexao.getConexao();}publicvoidpesquisar(Contatoc1)throwsSQLException{Statementst=conexao.createStatement();Stringsql="select from contato where id=?";ResultSetrs=st.executeQuery(sql);while(rs.next()){Stringid=rs.getString("id");Stringnome=rs.getString("nome");Stringendereco=rs.getString("endereco");Stringtelefone=rs.getString("telefone");Stringemail=rs.getString("email");Stringsexo=rs.getString("sexo");System.out.println("-------------------------------------------------\n");System.out.println("Codigo: "+id+"\nNome:"+" "+nome+" \nEndereço: "+endereco+""+"\nTelefone: "+telefone+"\nEmail:"+" "+email+"\nSexo: "+sexo);}JOptionPane.showMessageDialog(null,"Pesquisa Realizada com sucesso");conexao.createStatement().close();conexao.close();}}
O problema é que quando executo o main e mando pesquisar ele mostra a seguinte mensagem de erro:
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from contato where id=?' at line 1
O que poderia ser? O método de inserção funciona com o ?. Não estou conseguindo processar esta pesquisa o resto do projeto tá funcionando direito. Agradeço desde já as contribuições.
Olá a todos estou fazendo um aplicação que necessita de uma pesquisa a um determinado banco mysql como segue o código abaixo:
publicclassPesquisa{privateConnectionconexao;publicPesquisa()throwsSQLException{this.conexao=CriaConexao.getConexao();}publicvoidpesquisar(Contatoc1)throwsSQLException{Statementst=conexao.createStatement();Stringsql="select from contato where id=?";ResultSetrs=st.executeQuery(sql);while(rs.next()){Stringid=rs.getString("id");Stringnome=rs.getString("nome");Stringendereco=rs.getString("endereco");Stringtelefone=rs.getString("telefone");Stringemail=rs.getString("email");Stringsexo=rs.getString("sexo");System.out.println("-------------------------------------------------\n");System.out.println("Codigo: "+id+"\nNome:"+" "+nome+" \nEndereço: "+endereco+""+"\nTelefone: "+telefone+"\nEmail:"+" "+email+"\nSexo: "+sexo);}JOptionPane.showMessageDialog(null,"Pesquisa Realizada com sucesso");conexao.createStatement().close();conexao.close();}}
O problema é que quando executo o main e mando pesquisar ele mostra a seguinte mensagem de erro:
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from contato where id=?' at line 1
O que poderia ser? O método de inserção funciona com o ?. Não estou conseguindo processar esta pesquisa o resto do projeto tá funcionando direito. Agradeço desde já as contribuições.
SELECT * FROM
não SELECT FROM
String sql = "select * from contato where id=?";
T
tiago.vt
vc esqueceu do * antes do from de passa o parametro do id da consulta
A
alverne
RenanRosa:
alverne:
Olá a todos estou fazendo um aplicação que necessita de uma pesquisa a um determinado banco mysql como segue o código abaixo:
publicclassPesquisa{privateConnectionconexao;publicPesquisa()throwsSQLException{this.conexao=CriaConexao.getConexao();}publicvoidpesquisar(Contatoc1)throwsSQLException{Statementst=conexao.createStatement();Stringsql="select from contato where id=?";ResultSetrs=st.executeQuery(sql);while(rs.next()){Stringid=rs.getString("id");Stringnome=rs.getString("nome");Stringendereco=rs.getString("endereco");Stringtelefone=rs.getString("telefone");Stringemail=rs.getString("email");Stringsexo=rs.getString("sexo");System.out.println("-------------------------------------------------\n");System.out.println("Codigo: "+id+"\nNome:"+" "+nome+" \nEndereço: "+endereco+""+"\nTelefone: "+telefone+"\nEmail:"+" "+email+"\nSexo: "+sexo);}JOptionPane.showMessageDialog(null,"Pesquisa Realizada com sucesso");conexao.createStatement().close();conexao.close();}}
O problema é que quando executo o main e mando pesquisar ele mostra a seguinte mensagem de erro:
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from contato where id=?' at line 1
O que poderia ser? O método de inserção funciona com o ?. Não estou conseguindo processar esta pesquisa o resto do projeto tá funcionando direito. Agradeço desde já as contribuições.
SELECT * FROM
não SELECT FROM
String sql = "select * from contato where id=?";
Modifiquei conforme sugerido porém o erro continuou praticamente o mesmo
vc esqueceu do * antes do from de passa o parametro do id da consulta
Modifiquei conforme sugerido porém o erro continuou praticamente o mesmo
E agora?
R
RenanRosa
alverne:
tiago.vt:
vc esqueceu do * antes do from de passa o parametro do id da consulta
Modifiquei conforme sugerido porém o erro continuou praticamente o mesmo
E agora?
primeiro de tudo está usando um statement, por isso remova o WHERE id = ? do seu SQL
ou então mude de statement para preparedstatement
caso mude para PS depois adicione um valor para “?” atraves do ps.setString/setInt etc…
A
alverne
RenanRosa:
alverne:
tiago.vt:
vc esqueceu do * antes do from de passa o parametro do id da consulta
Modifiquei conforme sugerido porém o erro continuou praticamente o mesmo
E agora?
primeiro de tudo está usando um statement, por isso remova o WHERE id = ? do seu SQL
ou então mude de statement para preparedstatement
caso mude para PS depois adicione um valor para “?” atraves do ps.setString/setInt etc…
Mas aí continuo usando o ResultSet? E o while continua o mesmo?
R
RenanRosa
Continua usando normalmente:
publicclassPesquisa{privateConnectionconexao;publicPesquisa()throwsSQLException{this.conexao=CriaConexao.getConexao();}publicvoidpesquisar(Contatoc1)throwsSQLException{Statementst=conexao.createStatement();Stringsql="select * from contato";ResultSetrs=st.executeQuery(sql);while(rs.next()){Stringid=rs.getString("id");Stringnome=rs.getString("nome");Stringendereco=rs.getString("endereco");Stringtelefone=rs.getString("telefone");Stringemail=rs.getString("email");Stringsexo=rs.getString("sexo");System.out.println("-------------------------------------------------\n");System.out.println("Codigo: "+id+"\nNome:"+" "+nome+" \nEndereço: "+endereco+""+"\nTelefone: "+telefone+"\nEmail:"+" "+email+"\nSexo: "+sexo);}JOptionPane.showMessageDialog(null,"Pesquisa Realizada com sucesso");conexao.createStatement().close();conexao.close();}}
ou com PreparedStatement:
Continua usando normalmente:
publicclassPesquisa{privateConnectionconexao;publicPesquisa()throwsSQLException{this.conexao=CriaConexao.getConexao();}publicvoidpesquisar(Contatoc1)throwsSQLException{PreparedStatementpst;intidValor=456654;Stringsql="select * from contato WHERE id = ?";pst=conexao.prepareStatement(sql);// posição, valorpst.setInt(1,idValor);ResultSetrs=pst.executeQuery();while(rs.next()){Stringid=rs.getString("id");Stringnome=rs.getString("nome");Stringendereco=rs.getString("endereco");Stringtelefone=rs.getString("telefone");Stringemail=rs.getString("email");Stringsexo=rs.getString("sexo");System.out.println("-------------------------------------------------\n");System.out.println("Codigo: "+id+"\nNome:"+" "+nome+" \nEndereço: "+endereco+""+"\nTelefone: "+telefone+"\nEmail:"+" "+email+"\nSexo: "+sexo);}JOptionPane.showMessageDialog(null,"Pesquisa Realizada com sucesso");conexao.createStatement().close();conexao.close();}}
A
alverne
RenanRosa:
Continua usando normalmente:
publicclassPesquisa{privateConnectionconexao;publicPesquisa()throwsSQLException{this.conexao=CriaConexao.getConexao();}publicvoidpesquisar(Contatoc1)throwsSQLException{Statementst=conexao.createStatement();Stringsql="select * from contato";ResultSetrs=st.executeQuery(sql);while(rs.next()){Stringid=rs.getString("id");Stringnome=rs.getString("nome");Stringendereco=rs.getString("endereco");Stringtelefone=rs.getString("telefone");Stringemail=rs.getString("email");Stringsexo=rs.getString("sexo");System.out.println("-------------------------------------------------\n");System.out.println("Codigo: "+id+"\nNome:"+" "+nome+" \nEndereço: "+endereco+""+"\nTelefone: "+telefone+"\nEmail:"+" "+email+"\nSexo: "+sexo);}JOptionPane.showMessageDialog(null,"Pesquisa Realizada com sucesso");conexao.createStatement().close();conexao.close();}}
ou com PreparedStatement:
Continua usando normalmente:
publicclassPesquisa{privateConnectionconexao;publicPesquisa()throwsSQLException{this.conexao=CriaConexao.getConexao();}publicvoidpesquisar(Contatoc1)throwsSQLException{PreparedStatementpst;intidValor=456654;Stringsql="select * from contato WHERE id = ?";pst=conexao.prepareStatement(sql);// posição, valorpst.setInt(1,idValor);ResultSetrs=pst.executeQuery();while(rs.next()){Stringid=rs.getString("id");Stringnome=rs.getString("nome");Stringendereco=rs.getString("endereco");Stringtelefone=rs.getString("telefone");Stringemail=rs.getString("email");Stringsexo=rs.getString("sexo");System.out.println("-------------------------------------------------\n");System.out.println("Codigo: "+id+"\nNome:"+" "+nome+" \nEndereço: "+endereco+""+"\nTelefone: "+telefone+"\nEmail:"+" "+email+"\nSexo: "+sexo);}JOptionPane.showMessageDialog(null,"Pesquisa Realizada com sucesso");conexao.createStatement().close();conexao.close();}}
Resolvido! Vlw pela dica. Resolvi meu probleminha! :D
R
RenanRosa
beleza, se precisar posta ai.
coloca [RESOLVIDO] no titulo
abraço
A
alverne
RenanRosa:
beleza, se precisar posta ai.
coloca [RESOLVIDO] no titulo
abraço
Caro colega, infelizmente, ao executar a aplicação hoje não dá erro, porém não executa a função que seria mostrar o resultado da pesquisa:
ele deu algum erro??
o id que está informando é valido e tem no banco ??
sabe debugar ?
verifica se o sql que é gerado no PS roda no banco (copia e cola no banco e executa)
o id é número no banco ??
tentou setInt em vez do setLong ???
A
alverne
RenanRosa:
alverne:
RenanRosa:
beleza, se precisar posta ai.
coloca [RESOLVIDO] no titulo
abraço
Caro colega, infelizmente, ao executar a aplicação hoje não dá erro, porém não executa a função que seria mostrar o resultado da pesquisa:
ele deu algum erro??
o id que está informando é valido e tem no banco ??
sabe debugar ?
verifica se o sql que é gerado no PS roda no banco (copia e cola no banco e executa)
o id é número no banco ??
tentou setInt em vez do setLong ???
Nobre colega! Vlw mesmo pela dica agr só foi mudar para setInt que deu certo. vou colocar como RESOLVIDO. Tem explicação para esta mudança: setLong ou setInt?
R
RenanRosa
alverne:
Nobre colega! Vlw mesmo pela dica agr só foi mudar para setInt que deu certo. vou colocar como RESOLVIDO. Tem explicação para esta mudança: setLong ou setInt?
beleza
a questão da diferença, é que o java trata cada um de um jeito diferente (jeito que o java trata internamente), é igual se você colocar setString, ele (java) não coloca aspas, mas funciona do mesmo jeito, agora se for rodar no banco sem aspas não funciona.
A
alverne
RenanRosa:
alverne:
Nobre colega! Vlw mesmo pela dica agr só foi mudar para setInt que deu certo. vou colocar como RESOLVIDO. Tem explicação para esta mudança: setLong ou setInt?
beleza
a questão da diferença, é que o java trata cada um de um jeito diferente (jeito que o java trata internamente), é igual se você colocar setString, ele (java) não coloca aspas, mas funciona do mesmo jeito, agora se for rodar no banco sem aspas não funciona.