prepareStatement generico?

7 respostas
J

Galera estou fazendo um dao generico, como faço para deixar o prepareStatement generico?
por exemplo

ps = conn.prepareStatement(sqlInsert);
  ps.setString(1,"Teste");
  ps.setString(2,"Outro");
  ps.setString(3,"Mais um");
//Aqui nesse codigo acima queria fazer generico, com vo saber se o dado do objeto é String, int, Double e como vo
seta-lo..?

grato.

7 Respostas

E

Cuidado: alguém pode lhe sugerir usar “setObject”, que em tese já lida com isso. Entretanto, a implementação de “setObject” varia um pouco de driver para driver JDBC, podendo causar resultados errôneos.

dev.rafael

Use JPA!!

blackout

A primeira idéia que me veio na cabeça, seria usar o instanceOf

if( objeto instanceOf String ){
  ps.setString(1, "Teste");
}

E por aí vai…

Mas que seria mais simples você usar JPA, como sugeriu nosso amigo dev.rafael, isso seria.

Abraço

E

http://blog.caelum.com.br/2006/08/26/ei-como-e-o-seu-dao-ele-e-tao-abstraido-quanto-o-meu/

ViniGodoy

http://www.hibernate.org/

mario.fts

Se vc realmente quiser usar jdbc, aconselho a dar uma olhada no fonte do JdbcTemplate do Spring. Senão, siga a dica dos outros colegas.

ViniGodoy

Somos 2. Não só ele faz o que você quer com sintaxe muito similar a do JDBC padrão, como dá suporte ao fechamento correto de Statements, Resultsets e Conexões, além de ser facilmente integrável com um pool de conexões.

Criado 18 de outubro de 2010
Ultima resposta 18 de out. de 2010
Respostas 7
Participantes 6