Boa noite caros,
O programa esta gerando um erro na hora de atualizar os dados:
Codigo classe DaoProduto:
package dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import javax.swing.JOptionPane;
import model.Produto;
import dao.banco.ConFactory;
public class DaoProduto {
// Configura essas variáveis de acordo com o seu banco
private final String URL = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:/meubd/banco.mdb",
NOME = "", SENHA = "";
private Connection con;
private Statement comando;
public void apagar(String codigo) {
conectar();
try {
comando.executeUpdate("DELETE FROM produto WHERE codigo = '" + codigo + "';");
JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso");
} catch (SQLException e) {
imprimeErro("Erro ao apagar Produto", e.getMessage());
} finally {
fechar();
}
}
public Vector<Produto> buscarTodos() {
conectar();
Vector<Produto> resultados = new Vector<Produto>();
ResultSet rs;
try {
rs = comando.executeQuery("SELECT * FROM produto");
while (rs.next()) {
Produto temp = new Produto();
// pega todos os atributos da pessoa
temp.setCodigo(rs.getString("codigo"));
temp.setGrupo(rs.getString("grupo"));
temp.setProduto(rs.getString("nome do produto"));
temp.setDataCompra(rs.getString("data da compra"));
temp.setEstoque(rs.getString("estoque"));
temp.setCusto(rs.getString("custo"));
temp.setVenda(rs.getString("venda"));
temp.setValidade(rs.getString("data de validade"));
resultados.add(temp);
}
return resultados;
} catch (SQLException e) {
imprimeErro("Erro ao buscar Produto", e.getMessage());
return null;
}
}
// String com = "UPDATE pessoa SET nome = '" + pessoa.getNome()
// + "', idade =" + pessoa.getIdade() + ", cidade = '"
// + pessoa.getCidade() + "', estado ='" + pessoa.getEstado()
// + "' WHERE rg = '" + pessoa.getRg() + "';";
public void atualizar(Produto produto) {
conectar();
String com = "UPDATE Produto SET codigo= '" + produto.getCodigo() +
"',grupo= " + produto.getGrupo() +
"',nome do produto='" + produto.getProduto() +
"',estoque='" + produto.getEstoque() +
"',custo='" + produto.getCusto() +
"',venda='" + produto.getVenda() +
"',data da compra='" + produto.getDataCompra() +
"',data de validade='" + produto.getValidade() +
"WHERE codigo = '" + produto.getCodigo() + "';";
try {
comando.executeUpdate(com); // erro que esta sendo apontando aqui nesta linha
JOptionPane.showMessageDialog(null,"Operação realizada com sucesso!");
} catch (SQLException e) {
e.printStackTrace();
} finally {
fechar();
}
}
public Vector<Produto> buscar(String codigo) {
conectar();
Vector<Produto> resultados = new Vector<Produto>();
ResultSet rs;
try {
rs = comando.executeQuery("SELECT * FROM produto WHERE codigo LIKE '"
+ codigo + "%';");
while (rs.next()) {
Produto temp = new Produto();
// pega todos os atributos da pessoa
temp.setCodigo(rs.getString("codigo"));
temp.setGrupo(rs.getString("grupo"));
temp.setProduto(rs.getString("nome do produto"));
temp.setDataCompra(rs.getString("data da compra"));
temp.setEstoque(rs.getString("estoque"));
temp.setCusto(rs.getString("custo"));
temp.setVenda(rs.getString("venda"));
temp.setValidade(rs.getString("data de validade"));
resultados.add(temp);
}
return resultados;
} catch (SQLException e) {
imprimeErro("Erro ao buscar Produto", e.getMessage());
return null;
}
}
public void insere(Produto produto){
conectar();
try {
comando.executeUpdate("INSERT INTO Produto VALUES('"
+ produto.getCodigo() + "','"
+ produto.getGrupo() + "','"
+ produto.getProduto() + "','"
+ produto.getEstoque() + "','"
+ produto.getCusto() + "','"
+ produto.getVenda() + "','"
+ produto.getDataCompra() + "','"
+ produto.getValidade() + "')");
JOptionPane.showMessageDialog(null,"Operação realizada com sucesso!");
} catch (SQLException e) {
imprimeErro("Problemas na operação, verifique se você digitou os campos corretamente!", e.getMessage());
} finally {
fechar();
}
}
private void conectar() {
try {
con = ConFactory.conexao(URL, NOME, SENHA, ConFactory.MYSQL);
comando = con.createStatement();
System.out.println("Conectado!");
} catch (ClassNotFoundException e) {
imprimeErro("Erro ao carregar o driver", e.getMessage());
} catch (SQLException e) {
imprimeErro("Erro ao conectar", e.getMessage());
}
}
private void fechar() {
try {
comando.close();
con.close();
System.out.println("Conexão Fechada");
} catch (SQLException e) {
imprimeErro("Erro ao fechar conexão", e.getMessage());
}
}
private void imprimeErro(String msg, String msgErro) {
JOptionPane.showMessageDialog(null, msg, "Erro crÃtico", 0);
System.err.println(msg);
System.out.println(msgErro);
}
}
Erro que está sendo apresentado:
Conectado!
Conectado!
java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na express?o de consulta 'Alimento',nome do produto='Carne',estoque='13/07/2011',custo='8',venda='R$ 16'.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)
at dao.DaoProduto.atualizar(DaoProduto.java:77)
at TelaProduto.btAlterarActionPerformed(TelaProduto.java:341)
at TelaProduto.access$500(TelaProduto.java:7)
at TelaProduto$6.actionPerformed(TelaProduto.java:104)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6267)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6032)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
Conexão Fechada
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Me ajudem o erro esta aqui nesta classe, ja tentei varias formas mas nao consegui, no metodo UPDATE,
Creio que deve ser erro de sintaxe, mas me ajudem muito obrigado!!!.