Conectar com a base de dados mysql

9 respostas
G

ESTOU CRIANDO O SISTEMA QUE EM CADA ABERTURA DE TELA ELE PRECISA SE CONECTAR COM A BASE DE DADOS

GOSTARIA DE RECEBER UM EXEMPLO QUE AO ENTRAR NO SISTEMA SE CONECTE SOMENTE UMA VEZ …

É NORMAL AO SE CONECTAR COM A BASE DE DADOS MYSQL DEMORAR UM POUCO MESMOS SENDO QUE NA MAQUINA A BASE DE DADOS ESTA INSTALADO

SE FOR EM REDE AI QUE DEMORA MESMOS…

ALGUEM JA TEM SISTEMA QUE TRABALHA COM MYSQL EM JAVA E RODE EM REDE E INTERNET … E SE O SISTEMA DEMORA A CONEXAO MESMOS…

A MINHA BASE DE DADOS ESTA COM 52 TABELAS

9 Respostas

M

Cara, seu CapsLock emperrou? É horrível ler mensagens assim.

Creio que se ajustar a capitalização disso, as respostas virão com maior facilidade.

renamed

Recentemente (coisa de 1 mes) fiz uma aplicação desktop que acessava uma base de dados MySql atraves da internet… não tive nenhum problema com relação a velocidade!

G
C A R A M B A _____________________ ATÉ EM DIGITAÇÃO PEGA NO MEU ..... KKKKKKKKKKKKKKKK


    Estou criando o sistema que em cada abertura de tela ele precisa se conectar com a base de dados;

    Gostaria de receber um exemplo que ao entrar no sistema se conecte somente uma vez....;


     É normal ao se conectar com a base de dados Mysql demorar um pouco mesmos;

     Sendo que na maquina a base de dados e o executavel.jar esta junto; 

     Se for em rede ai demorar muito;


ALGUEM JA TEM SISTEMA QUE TRABALHA COM MYSQL EM JAVA E RODE EM REDE E INTERNET … E SE O SISTEMA DEMORA A CONEXAO MESMOS…

A minha base de dados esta com 52 tabelas ok;


    se for só digitação vai sai as respostas............
JonathanSSantos

Porque nao posta seu codigo aqui de acesso a base de dados e o que estiver errado na medida do possivel vamos ajudando-o.

e realmente capslock eh forte pra ler!

E sempre que fiz conexão com mysql foi rapidao!

G
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 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 = "01servidorr"; //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 = "milmil123"; //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; 
       }
[b]

                    // Essa rotina Conecta2()  é que eu chamo para conexão por tela
                    // 
[/b]

       public boolean Conecta2()
       {
            boolean result = true;
            try 
            {
               DriverName = "org.gjt.mm.mysql.Driver";
               String banco = "sistema"; //Nome do Banco criado
               String host = "01servidorr"; //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);
               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 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);
         }

    
    }
 
//          System.out.println(util.preencheCom("532835" , "0" , 14 , 1));

    public String preencheCom(String linha_a_preencher, String letra, int tamanho, int direcao){

        //Checa se Linha a preencher é nula ou branco

        if (linha_a_preencher == null || linha_a_preencher.trim() == "" ) {linha_a_preencher = ""; }

        if (linha_a_preencher.contains("   "))
        {
            
        }
        else  
            //Enquanto Linha a preencher possuir 2 espaços em branco seguidos, substitui por 1 espaço apenas

            while (linha_a_preencher.contains(" ")) {linha_a_preencher = linha_a_preencher.replaceAll("  "," ").trim();}



            //Retira caracteres estranhos

            linha_a_preencher = linha_a_preencher.replaceAll("[./-]","");

            StringBuffer sb = new StringBuffer(linha_a_preencher);

            if (direcao==1){ //a Esquerda

                for (int i=sb.length() ; i<tamanho ; i++){

                    sb.insert(0,letra);

                }

            } else if (direcao==2) {//a Direita

                for (int i=sb.length() ; i<tamanho ; i++){

                    sb.append(letra);

                }

            }
            //JOptionPane.showMessageDialog(null,sb);

        return sb.toString();

    }
 
 public String convertDate(String format, Date dtConsulta) {  
         if (dtConsulta==null)
         {
             return null;
         }    
         try {  
             SimpleDateFormat formatter = new SimpleDateFormat(format,  
                     new Locale("pt", "BR"));  
             return formatter.format(dtConsulta);  
         } catch (Exception e) {  
             return null;  
         }  
     }   



// ultimo colchete
}
dlrodrigues

Amigo poste seu codigo para que possamos dar uma olhada no que pode estar dando errado, pois em todas as minhas aplicações que usam MySQL nunca tive problemas com demora no acesso.

G

Postei o codigo esta acima citado

Tiburcio_Mancha

já deu uma olhada nas apostilas da Caelum???da uma olhada na do curso FJ-21…ela é disponibilizada p/ download de forma gratuita…

vc vai encontar boas informações de JDBC, com exemplos, e o melhor, a base de dados utilizada é o MySQL…

nel

Postar tópico utilizando Caps Lock é horrível mesmo colega, edite seu tópico, não é pegar no seu pé mas sim uma forma correta de se postar ok?
Sobre o seu caso, não sei se existe uma forma de buscar a conexão via JDBC e armazena-la em memória e depois utiliza-la à vontade. Eu sei que pode utilizar de um middleware que fica responsavél pelo gerenciamento do pool de conexões e você ao invés de buscar a conexão com o banco via JDBC você “pega” do middleware, mas sempre precisa dar o .close, que é o correto.

Você também pode abandonar o JDBC e passar a usa JPA, seria interessante também. Se ficou a curiosidade sobre middleware, um que utilizo e é satisfatório é o JBoss.
Abraços.

Criado 14 de dezembro de 2009
Ultima resposta 14 de dez. de 2009
Respostas 9
Participantes 7