Dúvida Connection Pool (Java Desktop)

Estava lendo sobre Connection Pool… mais não sei como aplicar no meu
sistema…

alguém pode me ajudar ?..

Grata…

dá uma olhada

ok… eu sei q tenho q mudar alguma coisa na forma que estou fazendo a configuração de acesso
mais naum consegui entender exatamente a onde…ou qual a configuração correta…tudo q eu achei é voltado p web…
e o meu sistema é desktop…

essa é assim que esta a configuração de acesso ao banco de dados

[code] public AcessoBD(String nomeBD) {
//Configura o banco de dados
String user = “root”, password = “”;
ConfigBD(nomeBD, user, password);
this.nomeBD = nomeBD;

    //Configura o banco de dados
    ConfigBD(nomeBD, user, password);
}

void Processo(String string) {
    AcessoBD bd;
}

Connection getConnection() {
    return con;
}
//Configuração inicial do banco de dados

private void ConfigBD(String nomeBD, String user, String password) {
    String driver = "com.mysql.jdbc.Driver",
           URL = "jdbc:mysql://localhost:3306/" + nomeBD;
           
    //setar o driver
    try {
        Class.forName(driver).newInstance();
        con = DriverManager.getConnection(URL, user, password);
        System.out.println("Conexão com o banco de dados: " + nomeBD + " realizada com sucesso!");
    } catch (Exception e) {
        System.err.println(e.getMessage());

    }
}[/code]

Tem um exemplo aqui, não está em swing, mas pode te ajudar

http://www.java2s.com/Code/Java/Database-SQL-JDBC/PooledConnectionExample.htm

Desculpe mais não consegui entnder A ONDE eu modifico a minha classe… não consegui entender quais tipos de configuração
tenho que mudar ou incluir… essa e a minha classe de conexão com a base de dados

[code]
public class AcessoBD {

private Connection con = null;
private Statement statement;
private PreparedStatement preparedStatement;
private String nomeBD;

public AcessoBD(String nomeBD) {
    //Configura o banco de dados
    String user = "root", password = "";
    ConfigBD(nomeBD, user, password);
    this.nomeBD = nomeBD;

    //Configura o banco de dados
    ConfigBD(nomeBD, user, password);
}

void Processo(String string) {
    AcessoBD bd;
}

Connection getConnection() {
    return con;
}
//Configuração inicial do banco de dados

private void ConfigBD(String nomeBD, String user, String password) {
    String driver = "com.mysql.jdbc.Driver",
               URL = "jdbc:mysql://localhost:3306/" + nomeBD;
   
//setar o driver

    try {

        Class.forName(driver).newInstance();
        con = DriverManager.getConnection(URL, user, password);
        
        if(con.equals(true)){
                            
            
        }
        System.out.println("Conexão com o banco de dados: " + nomeBD + " realizada com sucesso!");
    } catch (Exception e) {
        System.err.println(e.getMessage());
    }
}
//Consulta a Base de Dados

public ResultSet consultaTable(String ConsultaSQL) throws SQLException {
    ResultSet resultado = null;
    try {
        if (con != null) {
            if (statement != null) {
                statement.close();
            }
            statement = con.createStatement();
            resultado = statement.executeQuery(ConsultaSQL);
        }
    } catch (SQLException e) {
        System.out.println(e.getMessage());
        JOptionPane.showMessageDialog(null, "Nao foi possivel atender a solicitação");
    }
    return resultado;
}

Connection getCon() {
    return con;
}

public int updateBase(String updateSQL) {
    int execucaoOk = 1;
    try {
        if (con != null) {
            if (statement != null) {
                statement.close();  //Fechando a instrução
            }
            statement = con.createStatement();
            execucaoOk = statement.executeUpdate(updateSQL);
            // JOptionPane.showMessageDialog( null," Cadastro realizado com sucesso!!");
        }
    } catch (SQLException e) {
        System.err.println(e.getMessage());
        JOptionPane.showMessageDialog(null, "Cadastro não Realizado!");
    }
    return execucaoOk;
}
//Retorna todos os registros da tabela

public javax.swing.JTable obtemTable(ResultSet resultado) {
    javax.swing.JTable tabela;
    Vector cabecalho = new Vector();
    Vector linhas = new Vector();

    try {
        ResultSetMetaData rsmd = resultado.getMetaData();
        //obtem os nomes das colunas da tabela
        for (int i = 1; i <= rsmd.getColumnCount(); i++) {
            cabecalho.addElement(rsmd.getColumnName(i));
        }

        //obtem as linhas da tebela
        do {
            linhas.addElement(obtemRegistro(resultado, rsmd));
        } while (resultado.next());
    } catch (java.sql.SQLException e) {
        System.err.println("Erro de SQL: " + e.getMessage());
    }
    //monta a tabela com cabeçalho e registros
    tabela = new javax.swing.JTable(linhas, cabecalho);
    return tabela;
}
//obtem os registros da tabela

private Vector obtemRegistro(ResultSet resultado, ResultSetMetaData rsmd) {
    Vector registro = new Vector();
    java.text.SimpleDateFormat dataFormata = new java.text.SimpleDateFormat("dd/MM/yyyy");

    try {
        for (int i = 1; i <= rsmd.getColumnCount(); i++) {
            switch (rsmd.getColumnType(i)) {
                case Types.VARCHAR:
                    registro.addElement(resultado.getString(i));
                    break;
                case Types.INTEGER:
                    registro.addElement(resultado.getInt(i));
                    break;
                case Types.DECIMAL:
                    registro.addElement(resultado.getDouble(i));
                    break;
                case Types.REAL:
                    registro.addElement(resultado.getDouble(i));
                    break;
                case Types.TIMESTAMP:
                    registro.addElement(dataFormata.format(resultado.getDate(i)));
                    break;
            }
        }
    } catch (java.sql.SQLException e) {
        System.err.println("Erro de SQL: " + e.getMessage());
    }
    return registro;
}

//Fecha a  Base de Dados
void finalizaBD() {
    try {
        if (con != null) {
            statement.close();
        }
        con.close();
        System.out.println("Banco de Dados: " + nomeBD + " fechado!");
    } catch (SQLException e) {
        System.err.println(e.getMessage());
    }
}

}[/code]

Desculpa pela minha ignorancia… mais estou começando agora e não entendo algumas coisas… :oops:

alguém pode m instruir sobre as modificações e o q eu posso fazer ? …

grata

Oi,

A melhor forma para entender algo é estudando e não pular etapas, principalmente em programação… :wink:

http://www.snaq.net/java/DBPool/

Boa sorte!

Movido para o fórum de Persistência. Por favor, leia atentamente a descrição dos fóruns antes de postar.

Olha esse exemplo com c3p0.
http://www.mchange.com/projects/c3p0/index.html#using_c3p0
A partir dali, basta usar

Para retornar uma Connection.

Implementei a minha Connection Pool:

http://pedroabs.wordpress.com/2011/09/27/connection-pool-em-java-pool-de-conexoes/