Dúvida com arquivo de propriedades

6 respostas
VanHelsing

Bom dia,
Estou tentando retirar todos os códigos SQL do Java e colocar em um arquivo de propriedades, ficando assim mais fácil a manutenção.

Fiz tudo certo (pelo menos eu acho…rs), mas quando executo o Java diz que não pode encontrar o arquivo especificado.

java.io.FileNotFoundException: sql.properties (O sistema não pode encontrar o arquivo especificado)

Quem puder me ajudar… :lol:

Vai aí o código

public class leSQL {

    public leSQL() {
    }

    public void abre(){
        String consulta;

        Properties props = new Properties();
        FileInputStream fis = null;

        try {
            fis = new FileInputStream( new File("sql.properties") );
            props.load(fis);
            fis.close();
        }
        catch (IOException ex) {
            System.out.println(ex.getMessage());
            ex.printStackTrace();
        }

        consulta = props.getProperty("teste");
        System.out.println(consulta);
    }

    public static void main(String args[]) throws FileNotFoundException{
        leSQL sql = new leSQL();
        sql.abre();
    }
}

Lembrando que o arquivo sql.properties criei no proprio Java (Arquivo de Propriedades)
e esta localizado no mesmo pacote aonde tenho a classe.

Vlw

6 Respostas

Rafael_Carneiro

Onde está o seu arquivo?

g4j

Interessante, porém acho que você deve fazer um cache desse arquivo para evitar I/O excessivo, que pode tornar sua aplicação lenta.

VanHelsing

O Arquivo esta na mesma pasta da minha classe…

\testes\src\testes

X

coloca ele na \teste somente, qual IDE vc ta usando?

qdo se passa soh o arquivo (new File(“sql.properties”) ); ) ele busca na pasta do projeto

tenta ai

flws

gigicantador

Hum... Eu usaria resource bundles.

Vê se isso te ajuda:

Classe que usará a query "Exemplo.QUERY_buscaTodos"

package br.com.prettycode.treinamento.model.dao.impl;

public class FuncionarioDAOOracleImpl implements FuncionarioDAO {
(...)

public List<Funcionario> findAllExclusionLogical() {
(...)

 conn = getConnectionPool().getConnection();

			// query a ser executada
			String query = Buscas.getString("Exemplo.QUERY_buscaTodos"); //$NON-NLS-1$

			stmt = conn.prepareStatement(query);
(...)

}

Classe que manipula os bundles
package br.com.prettycode.treinamento.util;

import java.util.MissingResourceException;
import java.util.ResourceBundle;

public class Buscas {
	private static final String BUNDLE_NAME = "br.com.prettycode.treinamento.properties.buscasSQL"; //$NON-NLS-1$

	private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);

	private Buscas() {
	}

	public static String getString(String key) {
		try {
			return RESOURCE_BUNDLE.getString(key);
		} catch (MissingResourceException e) {
			return '!' + key + '!';
		}
	}
}

Arquivo properties (caminho completo: src/br/com/prettycode/treinamento/properties/buscasSQL.properties)

Exemplo.QUERY_buscaTodos=SELECT  FUNC.CODIGO,  FUNC.NOME,  FUNC.CARGO,  FUNC.SALARIO,  FUNC.RESUMO,  FUNC.STATUS,  FUNC.EXCLUIDO,  FUNC.COD_DEPTO,  DEPTO.NOME,  DEPTO.DESCRICAO  FROM  T_FUNCIONARIO FUNC,  T_DEPARTAMENTO DEPTO  WHERE  ((FUNC.EXCLUIDO is null) OR (FUNC.EXCLUIDO = ?))
VanHelsing

Resolvido !!! :thumbup:

Coloquei na pasta do projeto e funcionou…

Obrigado a todos !!!

Criado 21 de janeiro de 2009
Ultima resposta 21 de jan. de 2009
Respostas 6
Participantes 5