Java + mysql em rede, sem ip fixo

5 respostas
T

olá… estou tentando colocar meu programa em rede… consigo acessar passando o ip onde está o banco… até ai td bem… mas queria saber se tem como eu não colocar esse ip fixo, ou seja, queria saber se tem alguma forma d pegar esse ip, mas com um porém, tenho um diretório compartilhado onde está meu executável… como pegar o ip sempre dessa máquina servidor?

esse é meu código…

public static Connection getConnection() throws SQLException { try { Class.forName("com.mysql.jdbc.Driver"); return DriverManager.getConnection("jdbc:mysql://192.168.0.100:3306/pallato","root","root"); } catch (ClassNotFoundException e) { throw new SQLException(e.getMessage()); } }

queria saber se tem como fazer +/- assim:

public static Connection getConnection() throws SQLException { try { Class.forName("com.mysql.jdbc.Driver"); return DriverManager.getConnection("jdbc:mysql://"+ipServidor+":3306/pallato","root","root"); } catch (ClassNotFoundException e) { throw new SQLException(e.getMessage()); } }

onde o ipServidor, é sempre do servidor e não da máquina local… assim eu não precisaria colocar o ip fixo, e se precisar trocar de servidor, não ter q alterar a aplicação…

desde já agradeço a atenção

5 Respostas

G

Usa o hostname da máquina, assim você não depende do ip. É só configurar um nome para ela no DNS da rede.

B

Ou tbm se vc n uqer recompilar o seu fonte toda a vez que troca o nome da máquina vc pode colocar o caminho do banco em um arquivo e quando a aplicação startar, leia esse arquivo e tente conectar.

G

Dica genial. Coloque em um arquivo de properties e pegue com ResourceBundle.

E se possível, arrume um nome para a máquina.

T

Tudo bem pessoal !!

Estou com o mesmo problema, criei um arquivo de configuração onde tenho uma chave que contem o ip do servidor mysql, mas quando abro o sistema em outra máquina, o sistema não encontra o servidor.

Se alguem puder ajudar, obrigado.

T

Ja resolvi, se ajudar, segue meu código:

public class Propriedades {

    private String ip_serv;
    public String getIp_serv() {
        return ip_serv;
    }

    public void setIp_serv(String ip_serv) {
        this.ip_serv = ip_serv;
    }

    public void chamaProps(){
        Propriedades props = new Propriedades();
        try{
            FileInputStream propFile = new FileInputStream("config.properties");
            Properties p = new Properties(System.getProperties());
            p.load(propFile);
            ip_serv = p.getProperty("ip_serv");
            props.setIp_serv(ip_serv);
            System.out.println(ip_serv);
        }
        catch(IOException err){
            System.out.println(err);
        }
        catch(Exception err){
            System.out.println(err);
        }

    }
}
public class Conexao {
    public Conexao(){};
        Connection con;
        Propriedades props = new Propriedades();
        
        
            public Connection Conectar(){
                if (con == null) {
                    try{   
                        props.chamaProps();
                        String ip_serv = props.getIp_serv();
                
                        Class.forName("com.mysql.jdbc.Driver");
                        String database = "jdbc:mysql://"+ip_serv+":3306/SDO";
                        String usuario = "seu usuario";
                        String senha = "sua senha";
                        con = DriverManager.getConnection(database,usuario,senha); 

	            
	            return con;
                    }
		    catch (SQLException err) {
		        System.out.println( "Error: " + err );
                        JOptionPane.showMessageDialog(null, "Impossivel conectar ao banco: "+err);
		        return null;
		    }
                    catch(ClassNotFoundException err){
                        System.out.println(err);
                        JOptionPane.showMessageDialog(null, "Impossivel conectar ao banco: "+err);
                        return null;
                    }
        }
		else{
			return con;
		}    
    }
}
Criado 22 de julho de 2008
Ultima resposta 29 de jul. de 2009
Respostas 5
Participantes 4