to usando apache dbutils me ajuda muito e até agora não tive problemas.
trabalho com oracle e mysql.
tem exemplo usando obj.getAtributo() junto com sql ou usando new Object[]
sqlUtil voce cria uma vez lendo os exemplos do dbutils.
Se quizer reaproveitar código usa interface ou alguma outra coisa
esse ai é so um exemplo.
ObjetoBD ou ObjetoDao tanto faz
cria os metodos na interface e faz o polimorfismo pra persistir as coisas.
Tive oportunidade de efetuar teste de performance de select/insert de 1 milhão de registros num servidor antigo pII 350mhz 256mb modelo gatewai 2000 hd scsi sem o raid com slackware e mysql.
Demorou uma meia hora.
imagine o teste num ibm com processador acima de 3ghz 1 gb de memoria placa de rede gigabit etc etc etc... e oracle com sga acima de 600mb (memoria alocada so pro oracle digamos assim).
Uso o seguinte pensamento " se a tecnologia me ajuda eu uso. Não uso só porque os outros usam". A não ser claro se o chefe mandar ou cliente exigir ai é outra coisa.
Code:
public class EnqueteBD {
public static List getAll() {
List lista = null;
try {
//Pode usar select * mas a query fica mais lenta
//trabalho com base de dados grande algumas tables
//com quase 1 milhão de registros não é o caso da
//enquete claro.
lista = SqlUtil.getList("select id, texto from enquete where id <> 0",
Enquete.class, null);
} catch (Exception e) {
}
return lista;
}
public static Enquete getObj(Enquete obj) {
try {
obj = (Enquete) SqlUtil.getObject(
"select id, texto from enquete where id = ?", Enquete.class,
new Object[] { new Integer(obj.getId()) });
} catch (Exception e) {
}
return obj;
}
public static void add(Enquete obj) {
try {
SqlUtil.update(
"insert into enquete (texto) values('" + obj.getTexto() + "')");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public static void del(Enquete obj) {
try {
SqlUtil.update("delete from enquete where id = ?",
new Object[] { obj.getId() });
} catch (Exception e) {
}
}
public static void update(Enquete obj) {
try {
SqlUtil.update("update Enquete set texto = ? where id = ?",
new Object[] { obj.getTexto(), obj.getId() });
} catch (Exception e) {
}
}
}