O que algumas linhas desse bloco de código fazem?

13 respostas
Galego_Henrique
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;
		}

13 Respostas

Rodrigo_Sasaki
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));
Galego_Henrique

[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?

Rodrigo_Sasaki

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

Galego_Henrique

digaoneves:
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.

Rodrigo_Sasaki

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

GUJ - Introdução ao JDBC

Galego_Henrique

digaoneves:
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

GUJ - Introdução ao JDBC

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!

Galego_Henrique

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

Rodrigo_Sasaki

Galego Henrique:
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.

Galego_Henrique
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

pmlm

A melhor maneira de evitar esses problemas com as virgulas e outros ainda piores é usar PreparedStamentent.

Galego_Henrique
pmlm:
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();
    	}
    }
pmlm

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 '.

Galego_Henrique

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!

Criado 22 de junho de 2012
Ultima resposta 22 de jun. de 2012
Respostas 13
Participantes 3