public Estoque buscar(int idEstoque)
{
String query = "select * from estoque where codigo = "+idEstoque;
Estoque estoque = new Estoque();
try {
RS = Stmt.executeQuery(query);
RS.next();
estoque.setIdEstoque(RS.getInt(1));
estoque.setPreco();(RS.getInt(2)); // O que esta linha faz, pois está dando um erro assim >>>>>> not a statement estoque.setPreco();(RS.getInt(2));
estoque.setProduto(RS.getString(3));
}catch(Exception E){ E.printStackTrace(); }
return estoque;
}
O que algumas linhas desse bloco de código fazem?
13 Respostas
estoque.setPreco();(RS.getInt(2));
O que é esse ponto e vírgula aí no meio?
Não era algo assim que você queria fazer?
estoque.setPreco(RS.getInt(2));
[quote=digaoneves]estoque.setPreco();(RS.getInt(2));
O que é esse ponto e vírgula aí no meio?
Não era algo assim que você queria fazer?
estoque.setPreco(RS.getInt(2));
Sim, foi mal.
Mas o que esse código faz em geral?
Ah,
você está buscando um registro na sua tabela estoque e populando o ResultSet, que é objeto que trata o retorno das buscas no JDBC.
após isso você monta um objeto Estoque, com os dados da busca, e retorna.
Entendeu?
Obs: Esse seu título do post não faz sentido nenhum
Ah,você está buscando um registro na sua tabela estoque e populando o ResultSet, que é objeto que trata o retorno das buscas no JDBC.
após isso você monta um objeto Estoque, com os dados da busca, e retorna.Entendeu?
Obs: Esse seu título do post não faz sentido nenhum
Entendi um pouco… É mesmo, é que quando fico afobado para tirar uma dúvida assim, eu me embaraço no momento, vou mudar.
Cara se não me engano na FJ-21 da Caelum tem uns exemplos de persistência com JDBC, e usa o ResultSet, por que não dá uma olhada? As vezes com a explicação e os exemplos você entende melhor.
Tem um artigo de introdução a JDBC aqui do GUJ também, dê uma lida
Cara se não me engano na FJ-21 da Caelum tem uns exemplos de persistência com JDBC, e usa o ResultSet, por que não dá uma olhada? As vezes com a explicação e os exemplos você entende melhor.Tem um artigo de introdução a JDBC aqui do GUJ também, dê uma lida
Acho que esta apostila é tudo que eu estou precisando no memento, pois aqueles livros de um “zumbilhão” de páginas era dispendioso, o que me ficou levando toda hora a postar aqui conceitos que poderiam ser supridos por um estudo específico. Valeu!
Mais uma dúvida, não consigo resolver isso:
com.mysql.jdbc.exceptions.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 '‘Bola de Futebol’ at line 1
Mais uma dúvida, não consigo resolver isso:com.mysql.jdbc.exceptions.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 '‘Bola de Futebol’ at line 1
Você escreveu errado a sua query, existe algum erro de sintaxe nela, poste ela inteira. Provavelmente está nesse “Bola de Futebol” mesmo.
String query = "insert into estoque values ('" + estoque.getProduto() + "','" + estoque.getPreco()+ "')";
Concertei, era esse tanto de vírgula que deixa doido.
Mas tem um erro chato demais, é o seguinte, esse código:
String query = "UPDATE estoque SET produto = '"+estoque.getProduto()+"', preco = '"+estoque.getPreco()+" WHERE codigo = "+estoque.getIdEstoque()+"";
No meu banco eu não tinha esse campo codigo, mas preciso implementa-lo, porem quando adiciono da um erro em outra classe que usa o método alterar que tem esta linha.
Erro
.mysql.jdbc.exceptions.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 '‘34 WHERE codigo = 0’ at line 1
A melhor maneira de evitar esses problemas com as virgulas e outros ainda piores é usar PreparedStamentent.
A melhor maneira de evitar esses problemas com as virgulas e outros ainda piores é usar PreparedStamentent.
Seria este? Ou outro.
public class EstoqueDAO
{
Connection Conn;
Statement Stmt;
ResultSet RS;
EstoqueDAO()
{
try
{
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Conn = DriverManager.getConnection("jdbc:mysql://localhost/estoque","root","");
Stmt = Conn.createStatement();
}
catch(Exception E)
{
E.printStackTrace();
}
}
O teu problema é que tens ’ antes do preco mas não depois. Mais uma vez, com PreparedStatement não terias esse problema já que nem precisarias de '.
Beleza, você reforçou a minha vontade e necessidade de usa-lo, mas vou ter que aprender antes, usarei a apostila que o digaoneves me indicou. Valeu cara!