Dúvida Connection Pool (Java Desktop)

8 respostas
J

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

alguém pode me ajudar ?..

Grata…

8 Respostas

O

dá uma olhada

J

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

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());

        }
    }
D

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

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

J
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
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());
        }
    }
}

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

A

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!

V

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

F

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

Para retornar uma Connection.

P

Implementei a minha Connection Pool:

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

Criado 24 de maio de 2011
Ultima resposta 27 de set. de 2011
Respostas 8
Participantes 7