DAO Generico com PreparedStatement

2 respostas
Carlos_Alves

Fala aí galera alguem sabe informar como criar esse metodo generico?

public void insert(Aluno a){

String sql = “insert into aluno (mat_alu, nome_alu) values(?,?)”;

PreparedStatement pstmt = con.prepareStatement(sql);

pstmt.setInt(1, a.getMat());

pstmt.setString(2, a.getNome());
psmt.execute();

psmt.close();

}

Tentar algo assim:

public T insert(Class t){

String sql = “insert into aluno (mat_alu, nome_alu) values(?,?)”;

PreparedStatement pstmt = con.prepareStatement(sql);

##Como criar algo desse tipo?

pstmt.setInt(1, t.getMat());

pstmt.setString(2, t.getNome());
psmt.execute();

psmt.close();

}

Ajudem me por favor!!!

2 Respostas

LPJava

para criar um generico vc cria uma interface e manda sua classe implementa-la.
veja se isso ajuda:

//so uma parte do codigo
import br.com.integrator.Autor;
import br.com.integrator.util.ConnectionFactory;
import java.sql.Connection;
import java.sql.PreparedStatement;  
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 * @author Camilo
 */
public class AutorDAOImp implements DAO {
    private Connection conn;

    public AutorDAOImp() throws Exception {
        try{
            this.conn = ConnectionFactory.getConnection();
            
        }catch(Exception e){
            throw new Exception("Erro:" + "\n" + e.getMessage());
        }        
    } // fim do construtor
    
    public void salvar(Autor autor) throws Exception{
        PreparedStatement ps= null;
        Connection conn = null;
        if(autor==null)
            throw  new Exception("o valor passado nao pode ser nulo");
        try{
            String SQL = "INSERT INTO autores(nome,email,nascimento)" + "values(?,?,?)";
            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            ps.setString(1, autor.getNome());
            ps.setString(2, autor.getEmail());
            ps.setDate(3, new java.sql.Date(autor.getNascimento().getTime()));
            ps.executeUpdate();
        }catch(SQLException sqle){
            throw new Exception("erro ao inserir dados" + sqle);
        }finally{
            ConnectionFactory.closeConnection(conn, ps);
        }
    }//fim do metodo
....
public interface DAO {

    void atualizar(Autor autor) throws Exception;

    void excluir(Autor autor) throws Exception;

    Autor procurarAutor(Integer id) throws Exception;

    void salvar(Autor autor) throws Exception;

    List todosAutores() throws Exception;

}
Carlos_Alves

muito obrigado fera!!!

Criado 23 de março de 2009
Ultima resposta 23 de mar. de 2009
Respostas 2
Participantes 2