Conexão com banco PostGreSQL

Ola cara boa tarde!

Estou começando um projeto e estou com dificuldades para conectar o meu projeto ao banco, procuro na internet algum tutorial de como eu faria e infelizmente não acho nenhum.

Estou pretendendo usar JPA, JSF, Jboss e EJB3.0 para meu projeto e infelizmente não sei como configurar o persistence.

Alguém poderia me ajudar me explicando passo a passo ou passando algum tutorial que tenha isso?

Depois de eu fazer farei questão de fazer um artigo de como iniciar um projeto do zero para ajudar as próximas pessoas que tiverem a mesma dificuldade que eu.

Desde já agradeço a atenção e um bom feriadão.

Abraços

Curiosidade, qual a versão do seu PostGree?

Veja:
package pkg;

import java.sql.*;

class Exemplo1
{

 public static void main(String args[])  
 {  

  
 // A captura de exceções SQLException em Java é obrigatória para usarmos JDBC.  
 // Para termos acesso ao objeto con, ele deve ter um escopo mais amplo que o bloco try  
  
 Connection con = null;  

 try  
 {  
     // Este é um dos meios para registrar um driver  
     Class.forName( "org.postgresql.Driver" ).getInstance();  
    
     // Registrado o driver, vamos estabelecer uma conexão  
     con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres","web","web");  

     // Após estabelecermos a conexão com o banco de dados  
     // Utilizamos o método createStatement de con para criar o Statement  
     Statement stm = con.createStatement();   

     // Vamos executar o seguinte comando SQL :  
     String SQL = "select ct.contato_tipo as contato, c.dado as dado " +  
                     "from pessoas p, contatos c, contatos_tipos ct" +  
                     "where p.id = c.id_pessoa" +  
                     "and c.id_tipo_contato = ct.id";  

     // Definido o Statement, executamos a query no banco de dados  
     ResultSet rs = stm.executeQuery(SQL);  

     // O método next() informa se houve resultados e posiciona o cursor do banco  
     // na próxima linha disponível para recuperação  
     // Como esperamos várias linhas utilizamos um laço para recuperar os dados  
     while(rs.next())  
     {  

        // Os métodos getXXX recuperam os dados de acordo com o tipo SQL do dado:  
        String tit = rs.getString("contato");  
        String aut = rs.getString("dado");  
        //int totalFaixas = rs.getInt("total_faixas");  

        // As variáveis tit, aut e totalFaixas contém os valores retornados  
        // pela query. Vamos imprimí-los  

        //System.out.println(48:"Titulo: "+tit+" Autor: "+aut+"49:                Tot. Faixas: "+totalFaixas);  
        System.out.println(tit + ": " + aut);  
     }  

 }  
 catch(SQLException e)  
 {  
     // se houve algum erro, uma exceção é gerada para informar o erro  
     e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou  
 }  
 finally  
 {  
    try  
    {  
       con.close();  
    }  
    catch(SQLException onConClose)  
    {  
        System.out.println("Houve erro no fechamento da conexão");  
        onConClose.printStackTrace();  
    }  
 } // fim do bloco try-catch-finally  
 } // fim da main  

} // fim de nosso primeiro exemplo !

Fonte: http://javafree.uol.com.br/topic-856991-conexao-entre-java-e-postgre.html

[quote=andredecotia]Curiosidade, qual a versão do seu PostGree?

Veja:
package pkg;

import java.sql.*;

class Exemplo1
{

 public static void main(String args[])  
 {  

  
 // A captura de exceções SQLException em Java é obrigatória para usarmos JDBC.  
 // Para termos acesso ao objeto con, ele deve ter um escopo mais amplo que o bloco try  
  
 Connection con = null;  

 try  
 {  
     // Este é um dos meios para registrar um driver  
     Class.forName( "org.postgresql.Driver" ).getInstance();  
    
     // Registrado o driver, vamos estabelecer uma conexão  
     con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/postgres","web","web");  

     // Após estabelecermos a conexão com o banco de dados  
     // Utilizamos o método createStatement de con para criar o Statement  
     Statement stm = con.createStatement();   

     // Vamos executar o seguinte comando SQL :  
     String SQL = "select ct.contato_tipo as contato, c.dado as dado " +  
                     "from pessoas p, contatos c, contatos_tipos ct" +  
                     "where p.id = c.id_pessoa" +  
                     "and c.id_tipo_contato = ct.id";  

     // Definido o Statement, executamos a query no banco de dados  
     ResultSet rs = stm.executeQuery(SQL);  

     // O método next() informa se houve resultados e posiciona o cursor do banco  
     // na próxima linha disponível para recuperação  
     // Como esperamos várias linhas utilizamos um laço para recuperar os dados  
     while(rs.next())  
     {  

        // Os métodos getXXX recuperam os dados de acordo com o tipo SQL do dado:  
        String tit = rs.getString("contato");  
        String aut = rs.getString("dado");  
        //int totalFaixas = rs.getInt("total_faixas");  

        // As variáveis tit, aut e totalFaixas contém os valores retornados  
        // pela query. Vamos imprimí-los  

        //System.out.println(48:"Titulo: "+tit+" Autor: "+aut+"49:                Tot. Faixas: "+totalFaixas);  
        System.out.println(tit + ": " + aut);  
     }  

 }  
 catch(SQLException e)  
 {  
     // se houve algum erro, uma exceção é gerada para informar o erro  
     e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou  
 }  
 finally  
 {  
    try  
    {  
       con.close();  
    }  
    catch(SQLException onConClose)  
    {  
        System.out.println("Houve erro no fechamento da conexão");  
        onConClose.printStackTrace();  
    }  
 } // fim do bloco try-catch-finally  
 } // fim da main  

} // fim de nosso primeiro exemplo !

Fonte: http://javafree.uol.com.br/topic-856991-conexao-entre-java-e-postgre.html[/quote]

Olá boa tarde.

A versão do meu postgresql é 8.4

Esse exemplo que você deu, é utilizando JDBC, mas eu quero usar o JPA para isso eu acho que é necessário configurar datasource e persistence.

Obrigado pela ajuda.

Abraço

Fazendo uma conexão com Banco de Dados PostgreSQL

http://umcastec.blogspot.com/2010/04/fazendo-uma-conexao-com-banco-de-dados.html

vlw

Eu nao quero fazer Conexão via JDBC eu quero usar JPA nessa aplicação,mais uma vez obrigado o exemplo e espero ajuda

Veja ai:
persistence.xml que deve estar em /src/META-INF:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
    <persistence-unit name="default">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>  
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
            <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/seubanco" />
            <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
            <property name="hibernate.connection.password" value="senha" />
            <property name="hibernate.connection.username" value="postgres" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>           
        </properties>
</persistence-unit>
</persistence>

Abraço!

Opa Guevara era isso mesmo que estava precisando. Uma última dúvida, basta isso para realizar a conexão? não é necessário a configuração de algum datasource não?

Abraços

Precisa do persistence.xml, log4j.xml, hibernate.properties e HibernateUtil, todos configurados.
O persistence fica em /src/META-INF, log4j e hibernate.properties na /src e o HibernateUtil vc coloca no seu pacote DAO do projeto.
Abraço!

Opa guevara muito obrigado.
Uma última dúvida.

Eu preciso alterar a configuração de algum desses arquivos? log4j hibernate.properties e HibernateUtil ou eles já se encontram configurados?

Abraço!

Log4j e hibernate.properties vc pega na pasta descompactada do Hibernate que vc baixou do site, lá têm os modelos, só toma cuidado no caso de vc estar usando VRaptor, precisa colocar mais coisa lá, e o HibernateUtil é este aqui:
Exemplo:

package br.com.imobiliaria.dao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

import br.com.imobiliaria.bean.Imagem;
import br.com.imobiliaria.bean.Imovel;
import br.com.imobiliaria.bean.Usuario;

public class HibernateUtil {

	private static SessionFactory factory;

	static {
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.addAnnotatedClass(Usuario.class);
		cfg.addAnnotatedClass(Imovel.class);
		cfg.addAnnotatedClass(Imagem.class);
		factory = cfg.buildSessionFactory();
	}

	public Session getSession() {
		return factory.openSession();
	}
}

Descomenta estas duas linhas do hibernate.properties:

hibernate.show_sql true
hibernate.format_sql true

O persistence.xml eu já postei ai.

Abraço!