Ajuda com Properties

9 respostas
D

tem como utilizar a Classe Properties para ler de um arquivo o url do banco de dados que a aplicacao vai utilizar?! Dessa maneira fica facil alterar o banco de dados em tempo de execucao (via editando o arquivo de configuracao).

Alguem sabe como fazer isso?! Se eh q da pra fazer?!?

9 Respostas

M

tem sim, eu tb to querendo saber isso, tipo… ai tu pode ter só um .xml, e editar ele… como um descritor de implantação, ou .properties mesmo, alguém sabe? :oops:

A

vc pode fazer assim:

o teu arquivo estaria assim:

db.url=http://localhost

depois vc criaria a classe properties:

public class DB extends Properties {
    
    private static DB instance;
    
    public synchronized static DB getInstance() {
        if( instance == null ) {
            instance = new ConfiguracaoVendas();
        }
        return instance;
    }

    public void carregarConfiguracoes() throws IOException {
        InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("arquivo.properties);
        if( is == null || is.available()<1 ) {
            throw new IOException( "Arquivo não encontrado" );
        }
        super.load( is );
        is.close();
    }
}

ai qdo vc for usar na classe q conecta no banco, vc usaria assim:

DB conf = DB.getInstance();
            String url    = conf.getProperty("db.url");

flw

D

Ae Anderson, vlw pela ajuda, mas esse trecho do código ta certo?

public synchronized static DB getInstance() {
        if( instance == null ) {
            instance = new ConfiguracaoVendas();
        }
        return instance;
    }

É new ConfiguracaoVendas() mesmo?!? De onde vem essa classe?

A

não kra, tá errado, e ficou faltando o construtor tbm
o correto eh o seguinte:

public synchronized static DB getInstance() {
        if( instance == null ) {
            instance = new DB();
        }
        return instance;
} 

private DB() {
	super();
	try{
		carregarConfiguracoes();
	}catch (Exception e){
		e.printStackTrace();
	}
}

foi mal…

M

eu criei um arquivo test.properties no eclipse pra testar o código, e a exceção de arquivo não encontrato é lançada…

InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( "test.properties" );

tanto o código quanto o arquivo de properties estão no mesmo pacote… :roll:

A

o arquivo tem q estar no classpath da aplicação…

F

“matheus”:
eu criei um arquivo test.properties no eclipse pra testar o código, e a exceção de arquivo não encontrato é lançada…

InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( "test.properties" );

tanto o código quanto o arquivo de properties estão no mesmo pacote… :roll:

Nãomsei porque mas as vezes(Acho que isso depende da IDE) quando estou usando JCreator, tenho que colocar o caminho no local
teste.properties

tenho que colocar
C:\pasta\subpasta\teste.properties

Ai funciona…

M

aqui eu tenho um pacote x.y no Eclipse, ai na classe x.y.Z eu chamo o arquivo .properties, q tb esta no pacote x.y … q mancada a minha, foi só adicionar x/y/arquivo.properties na String de consulta do arquivo… :grin: , q lega, agora eu sei usar arquivos .properties hehehehe, po é ô massa isso!

D

Uia… naum é q deu certo aqui em casa tbm!!! Q Maravilha…

Criado 29 de julho de 2004
Ultima resposta 7 de ago. de 2004
Respostas 9
Participantes 4