Criando classe de comandos SQL reutilizavel

Gente estou criando uma classe de comandos basicos SQL para Inserir, Editar e Excluir dados de uma tabela;
Quero saber se já existe?

Estava criando um projeto, e nele eu tenho que criar varias classes de comandos para cada tabela;
Exemplo, um para Cliente, Produtos, Usuarios etc…

Queria que uma classe só com essas três funções funcionassem para qualquer tabela.

De uma olhada na classe, ainda não testei, estou sem banco de dados;

A classe recebe alguns parâmetros;
Class - para classe que guarda os dados;
Tabela - recebe o nome da tabela;
Campo[] - recebe os campos da tabela em formato string;
nCampos - recebe o total de campos existentes na tabela;

observação: essa classe ainda só funciona com dados em String, da pra implementar outros dados;

gente já existe algo assim?
Alguem poderia me ajudar nessa ideia caso nao exista?

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Dominio.SQLs;

import Dominio.DataBase.clsConexao;
import java.sql.SQLException;
import javax.swing.JOptionPane;

/**
 *
 * @author Charleston Anjos
 */
public class clsComandos {

    clsConexao Banco = new clsConexao();

    private void Inserir(Class reg, String Tabela, String Campo[], int nCampos) throws SQLException{
        
        Banco.sSQL = "INSERT INTO " + Tabela + "(" + Campo + ") "
                + "VALUES(" + CalcularNCampos(nCampos) + ")";

        try{

            Banco.psta = Banco.cnn.prepareStatement(Banco.sSQL);

            for(int contador = 1; contador <= nCampos; contador++){
                 Banco.psta.setString(contador, reg.getCampo[]);
            }

            Banco.psta.execute();

            JOptionPane.showMessageDialog(null, "Registro adicionado com sucesso!");

        }catch(SQLException erro){
            JOptionPane.showMessageDialog(null, "Houve um erro inesperado \n\n" + erro);
        }

    }

    private String CalcularNCampos(int i){
        String n = null;

        for(int contador = 1; contador <= i; contador++){

            if (contador < i) n = n + "?,";
            if (contador == i) n = n + "?";
        }

        return n;
    }

}

Amigo
se pretente abstrair tanto assim suas chamadas ao banco recomendaria usar hibernate
ou outro framework
se for fazer tera de implementar mta coisa
abs

Iria pela dica do amigo acima.

Além do que se for realmente escrever algo genérico procure por javabeans no Google.

Pois, seus nomes de variáveis e pacotes não estão muito legais.

Se para estudar você quer desenvolver algo genérico, procure aplicar em suas classes as boas práticas envolvendo JDBC:

a) Copie o retorno para uma estrutura em memória (como um CachedRowSet);
b) Certifique-se de fechar a conexão, o statement e o resultset após cada consulta - é importante fazer isso num bloco finally ou, se você estiver usando Java 7, usar o try with resources.
c) Procure usar um Pool de conexões como o C3P0 ou o DBCP.
d) Use reflexão para determinar o tipo específico de dados, ao invés de usar setString para tudo.

Se quiser trabalhar de forma similar ao JDBC, mas com tudo isso já implementado, use o Spring.