Conexao com Postgree

4 respostas
J

Galera sou novo em programação java, e estou levando uma surra para conectar com o PostGree, imagino eu que na programação esta certim, pois faço o mesmo procedimento com Access e funciona, apesar de ser cabaçada, algum filin di Deus poderia dar uma força.

Meus fonte:

public class Principal extends Conexao {

public static void main(String[] args) {
	Conexao x = new Conexao();
	x.Conectar("Embalagem");
}

}

import java.sql.Connection;
import java.sql.DriverManager;

public class Conexao {
static public Connection cn;
static public String Msg;
public void Conectar (String dsn){
try{
Class.forName(“org.postgresql.Driver”);
String url = “jdbc:odbc:PostgreSQL”;
cn = DriverManager.getConnection(url, “postgres” , “”);
}catch(Exception e){
Msg = "Conexão Falhou: " + e.toString();
System.out.println(Msg);
}
}
public void Desconectar (String dsn){
try{
cn.close();
}catch(Exception e){
Msg = "Nao Desconectou " + e.toString();
System.out.println(Msg);
}
}
}

P.S.: Me ajudem, pois, me comprometo a ter duvidas mais dificeis posteriormente. rsrsrsrs… :grin:

4 Respostas

D

Aí vai um exemplo de conexão com o PostgreSQL;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexao 
{
    private static String hostName = "localhost";
    private static String userName = "Daniel";
    private static String password = "minhasenha";    
    private static String jdbcDriver = "org.postgresql.Driver";
    private static String dataBaseName = "cdi";
    private static String dataBasePrefix = "jdbc:postgresql://";
    private static String dabaBasePort = "5432";
    private static String url = dataBasePrefix + hostName + ":"+dabaBasePort+"/" + dataBaseName + "/";
    public static Connection con = null;
    
    
    public Conexao()
    {
       
    }
    
    public static Connection criaConexao()
    {
        try 
        {
            if (con == null) 
            {
                System.out.println(url);
                Class.forName(jdbcDriver);
                con = DriverManager.getConnection(url, userName, password);
                System.out.println("Conectou");
            }
            else if (con.isClosed()) 
            {
                con = null;
                return DriverManager.getConnection(url, userName, password);
            }
        } 
        catch (ClassNotFoundException e) 
        {
            //TODO: use um sistema de log apropriado.
            e.printStackTrace();
        } catch (SQLException e) 
        {
            //TODO: use um sistema de log apropriado.
            e.printStackTrace();
        }
        return con;
    }

    public static void fechaConexao()
    {
        try
        {
            con.close();
            System.out.println("Desconectou");
        }
        catch(SQLException ex)
        {
            ex.printStackTrace();
        }
    }
    
}
D

Fazendo um pequeno off-topic

Para quem tem interesse em Design Patterns este exemplo acima utiliza a idéia do Singleton.

I

Singleton, dok?
nao percebi…
voce pode explicar aonde?

vlwz

D

O que motiva a existência do Singleton é que muitas aplicações necessitam garantir a ocorrência de uma instância de classes especificas, pois tais objetos podem fazer uso de recursos cuja utilização deve ser exclusiva, ou porque desejamos que os demais elementos do sistema compartilhem um único objeto particular.

Por isso, perceba que o método criaConexao() não vai instanciando vários objetos de conexão e sim apenas o mesmo objeto já instanciado uma vez.

O que eu quero dizer é que na memória só vai haver um objeto contendo a conexão, todos que forem usar a conexão com o banco irão utilizar o mesmo objeto.

Criado 6 de julho de 2005
Ultima resposta 6 de jul. de 2005
Respostas 4
Participantes 3