Dúvida com conexão ao Banco de Dados utilizando Singleton

3 respostas
D

Pessoal, estou começando agora com Java, apesar de já desenvolver em .Net com C#, estou querendo novos desafios. Estou tentando desenvolver uma classe de conexão usando singleton, e acho que estou fazendo algo de errado. Estou postando o código abaixo, e se alguem puder me ajudar eu agradeço.

public class Conexao {

//Declara variável estática do tipo da classe conexão.
private static Conexao myInstance = null;
private Connection conn = null;
private String path = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\\cadastro.mdb";

//Define como privado o construtor da classe, e cria a conexão com o banco de dados.
private Conexao () {
    try{
        Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
        conn = DriverManager.getConnection (path);
    }
    catch(ClassNotFoundException ex){
        System.out.println ("Driver JDBC-ODBC não encontrado.");
    }
    catch(SQLException ex){
        System.out.println ("Problemas na conexão com a fonte de dados.");
    }
}

//Define um método público e estático o qual retorna uma instância já existente da classe de conexão.
public static Conexao getConexao (){
    
    if (myInstance == null)
        myInstance = new Conexao ();
    return myInstance;
}

}

Pelo que entendo, quando eu for utilizar deverei ter algo mais ou menos assim:

Conexao cn = Conexao.getConexao();

e depois disso como eu poderia utilizar para fazer um select ou insert na base de dados???

Obrigado.

3 Respostas

_Renatu

hm…

no seu caso, voce teria que ter acesso de alguma forma ao objeto Connection para utilizar um PreparedStatement ou Statement para seus comandos SQL.

Crie um método que retorne este Connection, ou entao um outro método que receba o comando SQL, e trabalhe com ele dentro da sua classe.

D

Renato, primeiramente obrigado pela resposta.

Teria alguma outra forma de se criar essa classe de conexão com singleton???

Essa parte de Statement ele só é utilizado quando estamos trabalhando com Access ou não tem nada haver???

Obrigado.

peczenyj

http://www.codeguru.com/csharp/csharp/cs_data/article.php/c4211/

http://csharpcomputing.com/Tutorials/Lesson17.htm

e por ai vai…

Criado 21 de novembro de 2007
Ultima resposta 21 de nov. de 2007
Respostas 3
Participantes 3