1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Serialização de parâmetros de conexão com o MySQL, Projeto JAVA

Ola galera, Faço um curso integrado de informática ao ensino médio, e agora estou passando um trabalho para fazer uma parte de um trabalho que devo fazer kkk. Sendo mais específico, o meu programa deve apresentar um tela onde o usuário deve preencher todos os dados necessários para uma conexão com o MySQL, por exemplo o nome do Schema, o host, a porta, o nome de usuário e a senha. Após a digitalização dessas informações, o botão salvar dessa janela irá mandar esses parâmetros para uma classe serializadora, e logo após esse objeto criado com os parâmetros de configuração é mandado para a classe Conection (responsável pela conexão com o Banco de Dados), e lá esse objeto irá alterar as configurações de conexão como o usuário ditou. O meu problema agora é mudar essas informações novas, depois retornar esse novo objeto criado pela classe Conection para as outras telas que precisam de conexão com o MySQL. Para facilitar o entendimento vou mandar os códigos.

Esse código abaixo refere-se a minha classe serializadora.

package Serial;

import java.io.Serializable;

/**
 *
 * @author Usuario
 */
public class serial implements Serializable {

    public String nome_schema_bd;
    private String host = "3306"; //padrao 3306
    private String porta; 
    private String usuario;
    private String senha_User;
    private boolean isModificado;


    public boolean isIsModificado() {
        return isModificado;
    }

    public void setIsModificado(boolean isModificado) {
        this.isModificado = isModificado;
    }

    public void setNome_schema_bd(String nome_schema_bd) {
        this.nome_schema_bd = nome_schema_bd;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public void setPorta(String porta) {
        this.porta = porta;
    }

    public void setSenha_User(String senha_User) {
        this.senha_User = senha_User;
    }

    public String getNome_schema_bd() {
        return nome_schema_bd;
    }

    public String getHost() {
        return host;
    }

    public String getPorta() {
        return porta;
    }

    public String getUsuario() {
        return usuario;
    }

    public String getSenha_User() {
        return senha_User;
    }

}

O código abaixo refere-se ao meu botão salvar da tela de configurações de parâmetros de conexão.

private void bt_salvarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:

        String nome_banco_de_dados = txt_schema.getText();
        String host = txt_host.getText();
        String porta = txt_porta.getText();
        String user = txt_user.getText();
        String senha = txt_password.getText();
        String nome_arquivo = txt_nome_arquivo_serial.getText();

        Serial.serial settings = new Serial.serial();

        try {

            //Gera o arquivo para armazenar o objeto
            FileOutputStream arquivoGrav
                    = new FileOutputStream("C:/Users/Usuario/Desktop/"+nome_arquivo+".dat");

            //Classe responsavel por inserir os objetos
            ObjectOutputStream objGravar = new ObjectOutputStream(arquivoGrav);
            settings.setNome_schema_bd(nome_banco_de_dados);
            settings.setHost(host);
            settings.setPorta(porta);
            settings.setSenha_User(senha);
            settings.setUsuario(user);
            //Grava o objeto cliente no arquivo
            objGravar.writeObject(settings);

            objGravar.flush();

            objGravar.close();

            arquivoGrav.flush();

            arquivoGrav.close();

            //System.out.println("Configuracoes gravadas com sucesso!");
            JOptionPane.showMessageDialog(rootPane, "Configuracoes gravadas com sucesso!", null, WIDTH);
            settings.setIsModificado(true);

        } catch (Exception e) {

            e.printStackTrace();

        }
    }

E o código abaixo refere-se a minha classe conexão que devera ser alterada diante os desejos do usuário. Percebam que o objeto que criei que possuiu os novos parâmetros de conexão é o "s".

package conexao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexao {

    public static Connection Conecta(Serial.serial s) {

        if (s.isIsModificado()
                == true) {
            Connection con = null;
            try {
                //Selecionar o drive ques deve estar adicionado pasta de bibliotecas
                Class.forName("com.mysql.jdbc.Driver");
                //url de onde estão a base de dados
                String url = "jdbc:mysql://localhost:" + s.getPorta() + "/" + s.getNome_schema_bd();
                //usuário do mysql
                String usuario = s.getUsuario();
                //senha do mysql
                String senha = s.getSenha_User();
                //realiza a conexão com o banco de dados
                con = DriverManager.getConnection(url, usuario, senha);
            } catch (SQLException ex) {
                //mensagem caja haja algum erro na conexão, como usuario ou senha incoirretos, bases de dados inexistente
                System.out.println("Erro na conexao");
            } catch (ClassNotFoundException ex) {
                // Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
                //mensagem caso hoja prolema no driver de conexao
                System.out.println("Classe não encontrada");
            }
            //retorna a conexao que será utilizada para executar as consultas, inserts, etc
            return con;
        }
    }

Bem, o que eu preciso de ajuda é como alocar esses novos parâmetros nessa classe conexão, e o que retornar logo após a alteração dos parâmetros de conexão.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java netbeans connection mysql orientação-a-objetos ou faça a sua própria pergunta.