Bom dia pessoal, tenho um problema em uma classe DAO, que fiz gracas a ajuda do pessoal, o problema é que eu tenho um metodo getConnection, que é static, pois é ele quem vai retornar as conexoes, estou usando jdbc para conectar, ate ai tudo funciona de vento em polpa, o problema é que eu quero usar um arquivo .properties para ficar mais facil definir a localizacao do banco, driver, usuario e senha, porem, quando faco a leitura dos metodos na minha classe, da um erro pelo fato da classe ser static, alguem conheceria uma solucao, existe uma maneira de um metodo se tornar visivel a outras classes se nao for do tipo public static? existe uma forma melhor de adquirir os parametros de conexao ao invez de utilizar o arquivo .properties? obrigado pela ajuda pessoal
da um erro pelo fato da classe ser estatic? isso não ta certo! :shock:
posta o código para a gente ver!
Cara essas configurações ai de banco da tambem pra vc fazer no servidor da aplicação…
procura aqui no guj por DataSource…
Mas põe o código seu ai msm é melhor…
abs!
Segue o codigo da minha classe DAO
/*
* Autor.........: André de Souza Martins
* Componente....: FabricadeConexoes
*
* Funçao.........: Retornar uma Conexao para a Classe que a Chamar
*/
package modelo;
import java.io.IOException;
import java.lang.reflect.Array;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import javax.swing.JOptionPane;
public class FabricadeConexoes {
// Este é o método que irà retornar uma Conexao as Classes
public static Connection getConnection() throws SQLException, IOException{
Properties parametrosConexao = new Properties();
parametrosConexao.load(this.getClass().getResourceAsStream(
"banco.properties"));
String driver = parametrosConexao.getProperty("driver");
String url = parametrosConexao.getProperty("url");
String usuario = parametrosConexao.getProperty("usuario");
String senha = parametrosConexao.getProperty("senha");
try {
Class.forName(driver);
return DriverManager.getConnection(url,usuario,senha);
}catch(ClassNotFoundException E) {
JOptionPane.showMessageDialog(null,"Erro ao carregar o driver da conexao," +
" codigo de erro: "+E);
throw new SQLException(E.getMessage());
}
}
}
o erro esta aqui
// Este é o método que irà retornar uma Conexao as Classes
public static Connection getConnection() throws SQLException, IOException{
Properties parametrosConexao = new Properties();
parametrosConexao.load(this.getClass().getResourceAsStream(
"banco.properties"));
na parte depois que eu declaro parametros conexao, na linha abaixo eu carrego os dados na linha 5, o netbeans 5.5 mostra o seguinte erro:
non static variable this cannot be referenced from a static context
Você não pode criar/usar uma variável não static em um método static… vc ta fazendo isso ai instanciando essa classe Properties…
se eu tiver errado me corrijam! =]
abs !