Como melhorar essa conexao java + msql

5 respostas
N

olá... mais uma vez estou aqui nescessitanto de uma ajudinha da galera... seguinte...
tenho uma classe de conexao... essa:

import java.sql.Connection;   
import java.sql.DriverManager;   
import java.sql.SQLException;   
import javax.swing.JOptionPane;   
  
public class conecta {   
       
public conecta() {    }   
            //r1net.ddns.com.br   
           //localhost   
           //127.0.0.1   
            String driver = "com.mysql.jdbc.Driver"; //Classe do driver JDBC   
            String banco = "bdr"; //Nome do Banco criado   
            String host = "localhost"; //Maquina onde está o banco   
            String str_conn = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão   
            String usuario = "root"; //Usuário do banco   
            String senha = "nalldo36"; //Senha de conexão   
            Connection conn = null;     
public Connection conecta(){                         
   try {   
           Class.forName(driver); //Carrega o driver   
           conn = DriverManager.getConnection(str_conn, usuario, senha);   
        }catch(ClassNotFoundException e){   
           JOptionPane.showMessageDialog(null,"n Driver não encontrado!\n"+ e,"ATENÇÃO",JOptionPane.WARNING_MESSAGE);   
        }catch(SQLException e){   
           JOptionPane.showMessageDialog(null,"Erro na Conexão com Banco\n"+ e,"ATENÇÃO",JOptionPane.WARNING_MESSAGE);               
}       return conn;     
    }

Gostaria de melhorá-la de forma que possa ser mais agil e rápida... se possivel não chamala toda vez q for consultar, gravar, atualizar etc...

está chamando assim:

private void inserir(){ 
        conecta conexao = new conecta();
     try{
        Connection  conn = conexao.conecta();
        String sqlinsert = "insert into tbl_agenda_telefonica(CODIGO, DESCRICAO, OBSERVACAO, FONE_COM1, FONE_COM2, FONE_CELULAR, FONE_RESIDENCIAL) values (?,?,?,?,?,?,?)"; 
        PreparedStatement stmt = conn.prepareStatement(sqlinsert);   
        stmt.setString(1,txtCodigo.getText()); 
        stmt.setString(2,txtDescricao.getText()); 
        stmt.setString(3,txtObs.getText());
        stmt.setString(4,ftxComercial1.getText());
        stmt.setString(5,ftxComercial2.getText());
        stmt.setString(6,ftxCelular.getText());
        stmt.setString(7,ftxResidencial.getText());
        stmt.executeUpdate();      
        stmt.close();
        conn.close();
        txtCodigo.grabFocus();
        } catch (SQLException e) {
        JOptionPane.showMessageDialog(this, "Erro ao inserir condicional... " + e.getMessage());
        }
}

5 Respostas

galileu.gt

Olá,

Cria uma classe singleton (apenas uma instancia permitida).
No construtor crie o objeto de conexao (isso sera realizado apenas uma vez).

sempre que precisar usar o objeto de conexar, recupere o objeto singleton e chame o metodo que desejar.

Eh uma implementacao bastante comum, acredito que voce ache exemplos facilmente no google.

Abraço!

fabiofalci

Use uma connection pool, como essa: http://commons.apache.org/dbcp/

N

vou verificar as duas dicas… agredeço pela atenção… valew :smiley:

N

pessoal procurei aqui no guj e no google e ainda nao encontrei como criar um pool de conexão
pude ver que pool de conexao e uma boa opção
como eu posso iniciar a desenvolver esse pool de conexao… obrigado :roll:

N

pessoal procurei aqui no guj e no google e ainda nao encontrei como criar um pool de conexão
pude ver que pool de conexao e uma boa opção
como eu posso iniciar a desenvolver esse pool de conexao… obrigado

Criado 29 de junho de 2010
Ultima resposta 30 de jun. de 2010
Respostas 5
Participantes 3