O código de exemplo abaixo, embora rode se eu tratar um IOException vindo do método listaTabProdutos() eu não tenho a menor idéia do porque ele aparece. Este método não publica nenhum IOException não tratado. Se alguém puder me ajudar será de grande ajuda. Obrigado.
import <a href="http://java.io">java.io</a>.<em>;
import java.sql.</em>;
import java.util.*;
public class QueryManager
{
private static final String NOME_ARQUIVO = “QueryProdutos.txt”;
private static final String DRIVER = “jdbc.driver”;
private static final String URL_BDJAVA = “BDJava.url”;
private static final String LOGIN = “BDJava.login”;
private static final String SENHA = “BDJava.senha”;
protected Properties consultas;
protected static QueryManager queryManager = new QueryManager(NOME_ARQUIVO);
private QueryManager(String arquivo)
{
consultas = new Properties();
try
{
consultas.load(new FileInputStream(arquivo));
}
catch(IOException e)
{
System.out.println("Erro no nome do arquivo de conexão !");
System.exit(0);
}
}
public Connection getConnection() throws SQLException
{
String driver = consultas.getProperty(DRIVER);
String url = consultas.getProperty(URL_BDJAVA);
String login = consultas.getProperty(LOGIN);
String senha = consultas.getProperty(SENHA);
System.setProperty("jdbc.driver",driver);
return DriverManager.getConnection(url,login,senha);
}
public PreparedStatement getPreparedStatement(Connection conn, String nomeConsulta) throws SQLException
{
String sql = consultas.getProperty(nomeConsulta);
return conn.prepareStatement(sql);
}
}
import java.sql.<em>;
import <a href="http://java.io">java.io</a>.</em>;
public class ListaProdutosSingleton
{
public static final String PRODUTOS_SELECT_BY_NAME = “produtos.selectByName”;
public void listaTabProdutos()
{
QueryManager listaConsultas = QueryManager.queryManager;
try
{
Connection conn = listaConsultas.getConnection();
PreparedStatement ps = listaConsultas.getPreparedStatement(conn,PRODUTOS_SELECT_BY_NAME);
ResultSet rs = ps.executeQuery();
while(rs.next())
{
System.out.println("Nome = "+rs.getString("nome"));
}
ps.close();
conn.close();
}
catch (SQLException e)
{
System.out.println ('
’ + “Erro na conexão com o banco.”);
e.printStackTrace();
System.exit(1);
}
}
public static void main(String args[]) //throws IOException -> Com isso funciona !
{
ListaTabProdutos tab = new ListaTabProdutos();
tab.listaTabProdutos();
}
}
