Boa noite gostaria de saber se a minha classe DAO esta bem feita:
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.getInt("codigo"));
temp.setGrupo(rs.getString("grupo"));
temp.setProduto(rs.getString("produto"));
temp.setEstoque(rs.getInt("estoque"));
temp.setCusto(rs.getFloat("custo"));
temp.setVenda(rs.getFloat("venda"));
temp.setDataCompra(rs.getString("datacompra"));
temp.setValidade(rs.getString("validade"));
resultados.add(temp);
}
return resultados;
} catch (SQLException e) {
imprimeErro("Erro ao buscar Produto", e.getMessage());
return null;
}
}
public void atualizar(Produto produto) {
conectar();
String com = "UPDATE Produto SET " +
"codigo= '" + produto.getCodigo() + "'," +
"grupo= '" + produto.getGrupo() + "'," +
"produto='" + produto.getProduto() + "'," +
"estoque='" + produto.getEstoque() + "'," +
"custo='" + produto.getCusto() + "'," +
"venda='" + produto.getVenda() + "'," +
"datacompra='" + produto.getDataCompra() + "'," +
"validade='" + produto.getValidade() + "' " +
" WHERE codigo = '" + produto.getCodigo() + "'";
try {
comando.executeUpdate(com);
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.getInt("codigo"));
temp.setGrupo(rs.getString("grupo"));
temp.setProduto(rs.getString("produto"));
temp.setEstoque(rs.getInt("estoque"));
temp.setCusto(rs.getFloat("custo"));
temp.setVenda(rs.getFloat("venda"));
temp.setDataCompra(rs.getString("datacompra"));
temp.setValidade(rs.getString("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);
}
}
Classe conexão:
package dao.banco;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConFactory {
public static final int MYSQL = 0;
private static final String MySQLDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
public static Connection conexao(String url, String nome, String senha,
int banco) throws ClassNotFoundException, SQLException {
switch (banco) {
case MYSQL:
Class.forName(MySQLDriver);
break;
}
return DriverManager.getConnection(url, nome, senha);
}
}
Classe Produto:
package model;
public class Produto {
private int codigo;
private String grupo;
private String produto;
private String datacompra;
private int estoque;
private float custo;
private float venda;
private String validade;
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public void setGrupo(String grupo) {
this.grupo = grupo;
}
public void setProduto(String produto) {
this.produto = produto;
}
public void setDataCompra(String datacompra) {
this.datacompra = datacompra;
}
public void setEstoque(int estoque) {
this.estoque = estoque;
}
public void setCusto(float custo) {
this.custo = custo;
}
public void setVenda(float venda) {
this.venda = venda;
}
public void setValidade(String validade) {
this.validade = validade;
}
public int getCodigo() {
return this.codigo;
}
public String getGrupo() {
return this.grupo;
}
public String getProduto() {
return this.produto;
}
public int getEstoque() {
return this.estoque;
}
public double getCusto() {
return this.custo;
}
public double getVenda() {
return this.venda;
}
public String getDataCompra() {
return this.datacompra;
}
public String getValidade() {
return this.validade;
}
}