Me ajudem com o pool de conexão

2 respostas
G
alguem poderia me ajudar com exemplos que me esclareça um pool de conexão pq li que é a forma de deixa mais rapido a conexão com a base mysql...


      mais realmente não sei por onde começar

2 Respostas

S

O primeiro passo é escolher uma biblioteca para fazer o gerenciamento para você.

Recomendo C3P0, porque em minhas aplicações foi a que melhor “trabalhou” com o pool de conexões.

Após a escolha, basta substituir seu método que criar as conexões para usar as classes da biblioteca.

Posta seu método atual.

G

Classe conexão

package utilitarios;

import java.text.SimpleDateFormat;
import java.util.Locale;
import java.sql.*;
import javax.swing.*;

public class conexao
{
        private String DriverName;
        private Connection con;
        public Statement stm;
        public PreparedStatement pstm;
        public ResultSet rst;
        public ResultSet rst2;
 
       public boolean Conecta()
       {
            boolean result = true;
            try 
            {

               //String driver = "com.mysql.jdbc.Driver"; //Classe do driver JDBC
               DriverName = "org.gjt.mm.mysql.Driver";
               String banco = "sistema"; //Nome do Banco criado sistema
               String host = "netocp80"; //Maquina onde está o banco 01servidor
               String url = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão
               String usuario = "root"; //Usuário do banco
               String senha = "123"; //Senha de conexão
               Class.forName(DriverName);
               
               con = DriverManager.getConnection(url, usuario, senha);
               //stm = (Statement) con.createStatement();  
               JOptionPane.showMessageDialog(null,"Conectado a Mysql!");
            }
            catch(ClassNotFoundException e) 
            {
               JOptionPane.showMessageDialog(null,"Driver não localizado: "+e);
               result = false;
            }
            catch(SQLException Fonte) 
            {
                JOptionPane.showMessageDialog(null,"Deu erro na conexão "+
                        "com a fonte de dados: "+Fonte);
                result = false;
            }
            return result; 
       }

       public boolean Conecta2()
       {
            boolean result = true;
            try 
            {
               DriverName = "org.gjt.mm.mysql.Driver";
               String banco = "sistema"; //Nome do Banco criado
               String host = "netocp80"; //Maquina onde está o banco
               String url = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão
               String usuario = "root"; //Usuário do banco
               String senha = "123"; //Senha de conexão

                Class.forName(DriverName);
                con = DriverManager.getConnection(url, usuario, senha);
             }
            catch(ClassNotFoundException e) 
            {
               JOptionPane.showMessageDialog(null,"Driver não localizado: "+e);
               result = false;
            }
            catch(SQLException Fonte) 
            {
                JOptionPane.showMessageDialog(null,"Deu erro na conexão "+
                        "com a fonte de dados: "+Fonte);
                result = false;
            }
            return result; 
       }
       
        
       public void Desconecta()
       {
             try 
            {
                con.close();
                JOptionPane.showMessageDialog(null,"Base de dados desconectado.");
            }
            catch(SQLException fecha) 
            {
                JOptionPane.showMessageDialog(null,"Não foi possivel "+
                        "desconectar: "+fecha+" Ou não foi conectado no inicio. ");
             }

       }
       
       public void ExecuteSQL(String sql)
       {
            
            try 
            {
 
                
                stm = con.createStatement(
                        rst.TYPE_SCROLL_SENSITIVE,rst.CONCUR_READ_ONLY);
                 rst = stm.executeQuery(sql);

                 
            }
            catch(SQLException sqlex) 
            {
               JOptionPane.showMessageDialog(null,"Não foi possível "+
                       "executar o comando sql,"+sqlex+", o sql passado foi "+sql);
            }

       }
       
       public void ExecuteSQL2(String sql)
       {

            try
            {


                stm = con.createStatement(
                        rst2.TYPE_SCROLL_SENSITIVE,rst2.CONCUR_READ_ONLY);
                 rst2 = stm.executeQuery(sql);


            }
            catch(SQLException sqlex)
            {
               JOptionPane.showMessageDialog(null,"Não foi possível "+
                       "executar o comando sql,"+sqlex+", o sql passado foi "+sql);
            }

       }
       
       public void inserirgrava(String csql)  {
 
           try {
                

               //Abrindo a conexão com o banco
         //      conecta3();

               // Instanciando o objeto statement (stm)
               stm = con.createStatement();

               //Executando uma instrução Sql
               stm.executeUpdate(csql);
               
               // Fechando a conexão com o banco
          //     desconecta3();
           }
           catch (SQLException e)   {
               
               // Fechando a conexão com o banco
            //   desconecta3();
                JOptionPane.showMessageDialog(null,"Não foi possível "+
                       "executar o comando mysql,"+csql+" .");
              e.printStackTrace();
            }
       }
       
 
    public void conecta3() {
         try 
            {
               DriverName = "org.gjt.mm.mysql.Driver";
               String banco = "sistema"; //Nome do Banco criado
               String host = "01servidor"; //Maquina onde está o banco
               String url = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão
               String usuario = "root"; //Usuário do banco
               String senha = "milmil123"; //Senha de conexão

                Class.forName(DriverName);
                con = DriverManager.getConnection(url, usuario, senha);
             }
            catch(ClassNotFoundException e) 
            {
               JOptionPane.showMessageDialog(null,"Driver não localizado: "+e);
        
            }
            catch(SQLException Fonte) 
            {
                JOptionPane.showMessageDialog(null,"Deu erro na conexão "+
                        "com a fonte de dados: "+Fonte);
       
            }
     }

    public void desconecta3() {
   
         try 
        {
            con.close();
         //   JOptionPane.showMessageDialog(null,"banco fechado");
        }
        catch(SQLException fecha) 
        {
          //  JOptionPane.showMessageDialog(null,"Não foi possivel "+
          //          "fechar o banco de dados: "+fecha);
         }

    
    }

metodo de conectar pelos forms e alterar e gravar

public class cad_Cor extends javax.swing.JFrame {
MaskFormatter formatocco;
conexao con_Movpe;
FieldListener fl = new FieldListener();
String csql = "", cvar1 = " ";
int inc_alt_exc = 0;
String nl = "001";

    /** Creates new form cad_Cor */
    public cad_Cor() {
        initComponents();

          con_Movpe = new conexao();
          con_Movpe.Conecta2();

gravando os dados

csql = "insert into "+cvar1+" (codcor,nomcor,sql_deleted) values ("+
                    sqlstr(cco)+","+sqlstr(nco)+",'F')";
            con_Movpe.inserirgrava(csql);
Criado 3 de março de 2010
Ultima resposta 3 de mar. de 2010
Respostas 2
Participantes 2