eu fiz assim espero q ajude tmb
//cria a variável representativa do comando sql a ser executado
//(sqlInserir), obtem os campos do bean passado por parametro,
//obtem o nome do bean, que deve ser igual ao nome da tabela no
//banco, insere a 1ª parte do conteúdo na variável sqlInserir.
String sqlInserir = "";
Class classe = bean.getClass();
Field campos[] = classe.getDeclaredFields();
String tabela = pegaNome(classe.getName());
sqlInserir = "insert into " + tabela + " (";
//adiciona na string sqlInserir os campos seguidos de uma virgula,
//e no ultimo fecha o parenteses dos campos e abre o parenteses dos
//valores dos campos.
for (int i = 0; i < campos.length; i++) {
if (i != campos.length - 1) {
sqlInserir = sqlInserir + campos[i].getName() + ", ";
} else {
sqlInserir = sqlInserir + campos[i].getName() + ") values (";
}
}
//adiciona os valores dos campos a serem gravados no banco,
//juntamente com as devidas aspas simples (caso seja necessário) e
//virgula para separação dos valores através do método verificaValor()
//e parenteses para fechar a parte do comando referente aos valores.
for (int i = 0; i < campos.length; i++) {
Field atributo = campos[i];
atributo.setAccessible(true);
if (i != campos.length - 1) {
sqlInserir = sqlInserir + verificaValor(atributo, bean) + ",";
} else {
sqlInserir = sqlInserir + verificaValor(atributo, bean) + ")";
}
}
//Cria uma conexao com o banco, prepara a sentença SQL, executa,
//faz o commit dos dados, retorna true ou false(caso algum erro
//tenha ocorrido durante a execução das linhas abaixo).
PreparedStatement comandoSQL = Conexao.getInstance().prepareStatement(sqlInserir);
comandoSQL.execute();
if (!Conexao.getInstance().getAutoCommit()) {
Conexao.getInstance().commit();
}
return true;
} catch (SQLException ex) {
//this.ex = ex;
//new ConexaoException(ex.getClass().getName(), "Entre em contato com suporte", ex.getMessage(), ex.getStackTrace());
//ex.printStackTrace();
this.ex = ex;
} catch (IllegalArgumentException ex) {
//ex.printStackTrace();
//new ConexaoException(ex.getClass().getName(), "Entre em contato com suporte", ex.getMessage(), ex.getStackTrace());
this.ex = ex;
}
return false;
}
private String pegaNome(String pacoteClasse) {
//Recebe uma String contendo o pacote + ponto + nome do classe,
//Exemplo (beans.CLIENTES), procura o ponto na String, coloca o
//conteúdo da String a partir do ponto na variável soClasse, e a
//retorna, contendo somente o nome da classe.
String soClasse = "";
char ponto = '.';
if (pacoteClasse != "") {
for (int i = 0; i < pacoteClasse.length(); i++) {
if(pacoteClasse.charAt(i) != ponto){
soClasse += String.valueOf(pacoteClasse.charAt(i));
}else{
soClasse = "";
}
}
if (soClasse != ""){
return soClasse;
}
}
return pacoteClasse;
}
private String verificaValor(Field atributo, Object bean) {
//Recebe o atributo da vez e um objeto contendo o bean que contém os
//valores a serem gravados no banco, então verifica o tipo do atributo
//para montar a string de maneira correta.
String valor = "";
try {
if (atributo.getType().getName().equals("java.lang.String")) {
valor = "'" + atributo.get(bean) + "'";
if (valor.equals("'null'")) {
valor = "NULL";
}
} else {
if (atributo.getType().getName().equals("java.lang.Float")) {
valor = String.valueOf(atributo.get(bean));
} else {
if (atributo.getType().getName().equals("java.lang.Double")) {
valor = String.valueOf(atributo.get(bean));
} else {
if (atributo.getType().getName().equals("int")) {
valor = String.valueOf(atributo.get(bean));
} else {
if (atributo.getType().getName().equals("java.math.BigDecimal")) {
valor = String.valueOf(atributo.get(bean));
} else {
if (atributo.getType().getName().equals("java.sql.Timestamp")) {
valor = "'" + String.valueOf(atributo.get(bean)) + "'";
if (valor.equals("'null'")) {
valor = "NULL";
}
} else {
if (atributo.getType().getName().equals("boolean")) {
valor = String.valueOf(atributo.get(bean));
}
}
}
}
}
}
}
return valor;
} catch (IllegalArgumentException ex) {
//ex.printStackTrace();
//new ConexaoException(ex.getClass().getName(), "Entre em contato com suporte", ex.getMessage(), ex.getStackTrace());
} catch (IllegalAccessException ex) {
//ex.printStackTrace();
//new ConexaoException(ex.getClass().getName(), "Entre em contato com suporte", ex.getMessage(), ex.getStackTrace());
}
return null;
}
public Exception getException() {
return this.ex;
}
}
T+