Postgres x Mysql?

26 respostas
juniorsatanas

Alguem sabe como fazer a conecção com postgresql ? com mysql funciona com postgres não.

private Connection getConexao() throws SQLException, ClassNotFoundException{
           Connection con = null;
           try{
               Class.forName("org.postgresql.Driver");
               String url = "jdbc:postgresql://localhost:5432/nutec";
               String usuario = "root";
               String senha = "debian23";
               con = (Connection) DriverManager.getConnection(url,usuario,senha);
           }catch(SQLException sql){
               System.out.println("erro ao conectar");
               //sql.printStackTrace();
           }
           return con;
       }
private Connection getConexao() throws SQLException, ClassNotFoundException{
           Connection con = null;
           try{
               Class.forName("com.mysql.jdbc.Driver");
               String url = "jdbc:mysql://localhost:3306/nutec";
               String usuario = "root";
               String senha = "";
               con = (Connection) DriverManager.getConnection(url,usuario,senha);
           }catch(SQLException sql){
               System.out.println("erro ao conectar");
               // sql.printStackTrace();
           }
           return con;
       }

26 Respostas

V

qual erro que dá???

vc tem o driver dos dois???

G

A forma de conectar em qualquer banco de dados Java é a mesma. O que muda é o URL de conexão.

Você está omitindo a exception quanto faz isso:

catch(SQLException e) { System.out.println("erro ao conectar"); }

O correto, pelo menos para fazer testes, é fazer um printStackTrace para saber o erro.

catch(SQLException e) { e.printStackTrace(); }

Com base na mensagem de erro você pode saber o que aconteceu.

pablomaiden

Caro pelos códigos que você passou está correto, verifique o driver do banco.

baixe a libray de driver “org.postgresql.Driver”.

juniorsatanas
select
        this_.idUsuario as idUsuario13_0_,
        this_.login as login13_0_,
        this_.nome as nome13_0_,
        this_.senha as senha13_0_ 
    from
        Usuario this_ 
    where
        this_.login=? 
        and this_.senha=?
INFO: Iniciou o ComponentFactory - SessionfACTORY
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Hibernate: 
    select
        this_.idestadocivil as idestado1_12_0_,
        this_.nome as nome12_0_ 
    from
        estadocivil this_
INFO: Hibernate: 
    select
        this_.idgrauInstrucao as idgrauIn1_8_0_,
        this_.nome as nome8_0_ 
    from
        grauinstrucao this_
INFO: Hibernate: 
    select
        this_.id as id9_0_,
        this_.nome as nome9_0_ 
    from
        Paroquia this_ 
    order by
        this_.nome asc
INFO: Hibernate: 
    select
        this_.idDecanato as idDecanato7_0_,
        this_.nome as nome7_0_ 
    from
        Decanato this_
INFO: Hibernate: 
    select
        max(this_.idAluno) as y0_ 
    from
        aluno this_
INFO: Hibernate: 
    select
        this_.idTurma as idTurma1_0_,
        this_.ano as ano1_0_,
        this_.descricao as descricao1_0_ 
    from
        Turma this_ 
    order by
        this_.descricao asc
INFO: Iniciou o ComponentFactory - SessionfACTORY
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Hibernate: 
    select
        this_.idAluno as idAluno0_5_,
        this_.bairro as bairro0_5_,
        this_.cep as cep0_5_,
        this_.cidade as cidade0_5_,
        this_.codigo as codigo0_5_,
        this_.complemento as compleme6_0_5_,
        this_.decanato as decanato0_5_,
        this_.dtNascimento as dtNascim7_0_5_,
        this_.email as email0_5_,
        this_.endereco as endereco0_5_,
        this_.estadoCivil as estadoC18_0_5_,
        this_.foneCelular as foneCel10_0_5_,
        this_.foneComercial as foneCom11_0_5_,
        this_.foneResidencial as foneRes12_0_5_,
        this_.grauInstrucao as grauIns19_0_5_,
        this_.nome as nome0_5_,
        this_.paroquia as paroquia0_5_,
        this_.pergunta1 as pergunta14_0_5_,
        this_.pergunta2 as pergunta15_0_5_,
        this_.pergunta3 as pergunta16_0_5_,
        this_.idTurma as idTurma0_5_,
        decanato2_.idDecanato as idDecanato7_0_,
        decanato2_.nome as nome7_0_,
        estadocivi3_.idestadocivil as idestado1_12_1_,
        estadocivi3_.nome as nome12_1_,
        grauinstru4_.idgrauInstrucao as idgrauIn1_8_2_,
        grauinstru4_.nome as nome8_2_,
        paroquia5_.id as id9_3_,
        paroquia5_.nome as nome9_3_,
        turma6_.idTurma as idTurma1_4_,
        turma6_.ano as ano1_4_,
        turma6_.descricao as descricao1_4_ 
    from
        aluno this_ 
    left outer join
        Decanato decanato2_ 
            on this_.decanato=decanato2_.idDecanato 
    left outer join
        estadocivil estadocivi3_ 
            on this_.estadoCivil=estadocivi3_.idestadocivil 
    left outer join
        grauinstrucao grauinstru4_ 
            on this_.grauInstrucao=grauinstru4_.idgrauInstrucao 
    left outer join
        Paroquia paroquia5_ 
            on this_.paroquia=paroquia5_.id 
    left outer join
        Turma turma6_ 
            on this_.idTurma=turma6_.idTurma 
    order by
        this_.nome asc
INFO: Iniciou o ComponentFactory - SessionfACTORY
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Hibernate: 
    select
        this_.idTurma as idTurma1_0_,
        this_.ano as ano1_0_,
        this_.descricao as descricao1_0_ 
    from
        Turma this_ 
    order by
        this_.descricao asc
INFO: Iniciou o ComponentFactory - SessionfACTORY
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciado servidor desligado
INFO: 18:47:58,905  INFO SessionFactoryImpl:853 - closing

INFO: 18:47:58,912  INFO DriverManagerConnectionProvider:170 - cleaning up connection pool: jdbc:postgresql://localhost:5432/nutec

SEVERE: log4j:ERROR Error occured while converting date.
SEVERE: java.lang.NullPointerException
        at java.lang.System.arraycopy(Native Method)
        at java.lang.AbstractStringBuilder.getChars(AbstractStringBuilder.java:328)
        at java.lang.StringBuffer.getChars(StringBuffer.java:201)
        at org.apache.log4j.helpers.AbsoluteTimeDateFormat.format(AbsoluteTimeDateFormat.java:117)
        at java.text.DateFormat.format(DateFormat.java:316)
        at org.apache.log4j.helpers.PatternParser$DatePatternConverter.convert(PatternParser.java:444)
        at org.apache.log4j.helpers.PatternConverter.format(PatternConverter.java:64)
        at org.apache.log4j.PatternLayout.format(PatternLayout.java:503)
        at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:301)
        at org.apache.log4j.WriterAppender.append(WriterAppender.java:159)
        at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:230)
        at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:65)
        at org.apache.log4j.Category.callAppenders(Category.java:203)
        at org.apache.log4j.Category.forcedLog(Category.java:388)
        at org.apache.log4j.Category.log(Category.java:853)
        at org.slf4j.impl.Log4jLoggerAdapter.info(Log4jLoggerAdapter.java:300)
        at org.hibernate.connection.DriverManagerConnectionProvider.close(DriverManagerConnectionProvider.java:170)
        at org.hibernate.connection.DriverManagerConnectionProvider.finalize(DriverManagerConnectionProvider.java:165)
        at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
        at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
        at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)

INFO: JMXStartupService: Stopped JMXConnectorServer: service:jmx:rmi://junior-desktop:8686/jndi/rmi://junior-desktop:8686/jmxrmi
INFO: JMXStartupService and JMXConnectors have been shut down.
INFO: Shutdown procedure finished
juniorsatanas

E tem outro porém, na hora do import não tem a opção de drive para Postgresql, tem so para Mysql :

import com.mysql.jdbc.Connection;

LPJava

esse é o problema de usar a IDE. so uma dica, se está aprendendo nao seria melhor fazer na mao? eu recomendaria o notepad++.

mas, se nao estou equivocado o netbeans ja vem com o driver para postgre

G

Junior, o que o Netbeans quer importar não é o driver, mas sim o java.sql.Connection, que você deve importar do pacote java.sql, e não do PostgreSQL.

juniorsatanas

GArcia boa noite Mano..

Tem como eu usar a conn do hibernate.cfg.xml para isso ? eu acho meio tosco :
private Connection getConexao() throws SQLException, ClassNotFoundException{
           Connection con = null;
           try{
               Class.forName("org.postgresql.Driver");
               String url = "jdbc:postgresql://localhost:5432/nutec";
               String usuario = "root";
               String senha = "";
               con = (Connection) DriverManager.getConnection(url,usuario,senha);
           }catch(SQLException sql){
               System.out.println("erro ao conectar");
                sql.printStackTrace();
           }
           return con;
       }

trocaria por :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>

    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/catequese</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">debian23</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.hbm2ddl.auto">update</property>

    <property name="hibernate.show_sql">true</property>
    <property name="hibernate.format_sql">true</property>

    <mapping class="br.com.catequese.to.Aluno"/>
    <mapping class="br.com.catequese.to.Turma"/>
    <mapping class="br.com.catequese.to.Professor"/>
    <mapping class="br.com.catequese.to.Trabalho"/>
    <mapping class="br.com.catequese.to.TrabalhoEntrega"/>
    <mapping class="br.com.catequese.to.Etapa"/>
    <mapping class="br.com.catequese.to.Disciplina"/>
    <mapping class="br.com.catequese.to.Decanato"/>
    <mapping class="br.com.catequese.to.GrauInstrucao"/>
    <mapping class="br.com.catequese.to.Paroquia"/>
    <mapping class="br.com.catequese.to.ChamadaItem"/>
    <mapping class="br.com.catequese.to.Chamada"/>
    <mapping class="br.com.catequese.to.EstadoCivil"/>
    <mapping class="br.com.catequese.to.Usuario"/>
  </session-factory>
</hibernate-configuration>
G

Ter tem, mas achei que teu propósito era testar a conexão com o pgsql. E que aliás até agora tu não fez o que te falei e nem mandou a mensagem de erro, para que possamos saber o que está acontecendo.

juniorsatanas

Garcia , to doido para tomar uma gelada ! mais vou trabalhar no sabádo ! la vai o bug:

erro do navegado:

net.sf.jasperreports.engine.JRRuntimeException: Unknown hyperlink target 0

erro no netbeas:

INFO: Iniciou o ComponentFactory - SessionfACTORY
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: Iniciou o ComponentFactory - Session
INFO: erro ao conectar
SEVERE: java.sql.SQLException: Access denied for user 'root2'@'localhost' (using password: YES)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:910)
        at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3923)
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1273)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at br.com.catequese.dao.AlunoDao.getConexao(AlunoDao.java:103)
        at br.com.catequese.dao.AlunoDao.relAlunos(AlunoDao.java:131)
        at br.com.catequese.controller.AlunoController.relatorioAlunos(AlunoController.java:115)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:57)
        at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
        at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
        at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
        at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
        at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:86)
        at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
        at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
        at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
        at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
        at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
        at br.com.catequese.util.HibernateIntercept.intercept(HibernateIntercept.java:27)
        at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
        at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
        at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
        at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
        at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
        at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
        at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
        at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
        at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
        at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
        at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
        at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
        at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
        at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
        at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
        at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
        at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
        at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
        at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Thread.java:619)
G

A mensagem é:

java.sql.SQLException: Access denied for user 'root2'@'localhost' (using password: YES)

Ou seja, senha/usuário errados. Vocẽ precisa ler as mensagens de erro. :slight_smile:

juniorsatanas

Eu imaginei isso tbm, tenho 3 usuarios no sistema tentei com os 3 e da mesmo problema !

rogelgarcia

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)

Num era pra conectar no postgresql???

juniorsatanas

Eu tenho um sistema, que funciona em mysql, ele ta quase todo pronto só falta da o print nos relatorios, ai preciso conecctar no banco para isso, logo o cliente mudou para Postgresql, eu vou ter qeu refazer os relatorios, mas gostaria antes disso testar os relatorios em MYSQL…

Resumindo, quero testar com Mysql se funcionar migra para /Postgresql .

obrigado.

juniorsatanas

Assim conecta no postgres numa boa mais nao imprimi o relatorio ! EITA PORRA !

package br.com.catequese.util;

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


public class Conn
{

    public static void main(String[] args)
    {
        String driver   = "org.postgresql.Driver";
        String user     = "postgres";
        String senha    = "debian23";
        String url      = "jdbc:postgresql://localhost:5432/nutec";

        try
        {
            Class.forName(driver);
            Connection con = null;

            con = (Connection) DriverManager.getConnection(url, user, senha);

            System.out.println("Conexão realizada com sucesso.");

        }
        catch (ClassNotFoundException ex)
        {
            System.err.print(ex.getMessage());
        }
        catch (SQLException e)
        {
            System.err.print(e.getMessage());
        }
    }
}
G

Nesse caso do pgsql, qual a mensagem de erro quando não conecta?

juniorsatanas
# SEVERE: java.sql.SQLException: Access denied for  user 'root2'@'localhost' (using password: YES)  
#         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)  
#         at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)  
#         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)  
#         at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)

GARCIA da uma ajuda ! como eu faço para usar o hibernate !? tanto para o CRUD que já estou usando, quanto para Relatório !

1- já estou usando o hibernate para transações normais.

2- para o relatório eu estou tentando na mão mesmo, mais eu quueria usar hibernate para tudo.

lá vai a classe toda :

package br.com.teste.dao;

import br.com.caelum.vraptor.interceptor.download.InputStreamDownload;
import br.com.caelum.vraptor.ioc.Component;
import br.com.teste.to.Aluno;
import com.mysql.jdbc.Connection;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperRunManager;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;

@Component
public class AlunoDao {
    private final Session session;

    public AlunoDao(Session session) {
        this.session = session;        
    }

    public void salva(Aluno aluno){
        Transaction tx = session.beginTransaction();
        session.save(aluno);
        tx.commit();
    }

    public void excluir(Aluno aluno) throws Exception{
        try{
            Transaction tx = session.beginTransaction();
            session.delete(aluno);
            tx.commit();
        }catch(Exception ex){
            throw new Exception("Erro ao excluir Aluno. <br />O mesmo tem referência a outros dados.");
        }
    }

    public List&lt;Aluno&gt; listaTudo(){
        return this.session.createCriteria(Aluno.class).addOrder(Order.asc("nome")).list();
    }
    
    public Aluno carrega(Integer id) {
        return (Aluno) this.session.load(Aluno.class, id);
    }
     
    public void atualiza(Aluno aluno) {
        Transaction tx = session.beginTransaction();
        this.session.update(aluno);
        tx.commit();
    }

    public List&lt;Aluno&gt; busca(String nome) {
        return session.createCriteria(Aluno.class)
        .add(Restrictions.ilike("nome", nome, MatchMode.ANYWHERE))
        .list();
    }
    
    public Aluno carregaCodigo(long  d) throws Exception {
         Transaction tx = session.beginTransaction();
        String sql = "FROM Aluno WHERE codigo = " + d;
        Aluno aluno = null;
         Object object;
        try{
            object = (Aluno) session.createQuery(sql).uniqueResult();
       }catch(Exception e){
            throw new Exception("erro");
           
        }
        if(object == null)
            throw new Exception("erro");
         return (Aluno) object;
    }

    

    public long ultimaPosicao() throws Exception {
        Criteria  c = this.session.createCriteria(Aluno.class);
        c.setProjection(Projections.max("idAluno"));
        int num =  (Integer) c.uniqueResult();        
        long codigo = (12301 * num);
            return codigo;        
    }

    private Connection getConexao() throws SQLException, ClassNotFoundException{
           Connection con = null;
           try{
               Class.forName("com.mysql.jdbc.Driver");
               String url = "jdbc:mysql://localhost:3306/teste";
               String usuario = "root";
               String senha = "";
               con = (Connection) DriverManager.getConnection(url,usuario,senha);
           }catch(SQLException sql){
               System.out.println("erro ao conectar");
                sql.printStackTrace();
           }
           return con;
       }

    public InputStreamDownload relAlunos(String turma) throws JRException, SQLException, ClassNotFoundException {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/teste/relatorio/relAlunos.jasper");
        Map parametros = new HashMap();
        parametros.put("turma", turma);
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioAlunos.pdf", true, os.toByteArray().length);
    }

    public InputStreamDownload relAlunosCarteirinhas(String turma) throws JRException, SQLException, ClassNotFoundException {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/teste/relatorio/carteirinha.jasper");
        Map parametros = new HashMap();
        parametros.put("turma", turma);
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioCarterinhas.pdf", true, os.toByteArray().length);
    }

    public InputStreamDownload relChamada(String turma, String dtInicio, String dtFim) throws JRException, SQLException, ClassNotFoundException, Exception {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/teste/relatorio/relChamada.jasper");
        Map parametros = new HashMap();
        parametros.put("turma", turma);
        parametros.put("dtInicio", formataData(dtInicio));
        parametros.put("dtFim", formataData(dtFim));
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioChamadaGeral.pdf", true, os.toByteArray().length);
    }

    public InputStreamDownload relChamadaDecGeral(String nome, String turma, String dtInicio, String dtFim) throws JRException, SQLException, ClassNotFoundException, Exception {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/teste/relatorio/relChamadaDecGeral.jasper");
        Map parametros = new HashMap();
        parametros.put("decanato", nome);
        parametros.put("turma", turma);
        parametros.put("dtInicio", formataData(dtInicio));
        parametros.put("dtFim", formataData(dtFim));
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioDecanatoGeral.pdf", true, os.toByteArray().length);
    }

    public InputStreamDownload relChamadaDecanatoV(String nome, String turma, String dtInicio, String dtFim) throws JRException, SQLException, ClassNotFoundException, Exception {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/teste/relatorio/relChamadaDecanatoV.jasper");
        Map parametros = new HashMap();
        parametros.put("decanato", nome);
         parametros.put("turma", turma);
        parametros.put("dtInicio", formataData(dtInicio));
        parametros.put("dtFim", formataData(dtFim));
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioPresencaDecanato.pdf", true, os.toByteArray().length);
    }

    public InputStreamDownload relChamadaDecanatoF(String nome, String turma, String dtInicio, String dtFim) throws JRException, SQLException, ClassNotFoundException, Exception {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/teste/relatorio/relChamadaDecanatoF.jasper");
        Map parametros = new HashMap();
        parametros.put("decanato", nome);
        parametros.put("turma", turma);
        parametros.put("dtInicio", formataData(dtInicio));
        parametros.put("dtFim", formataData(dtFim));
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioFaltaDecanato.pdf", true, os.toByteArray().length);
    }
    

    public InputStreamDownload relChamadaParGeral(String nome, String turma, String dtInicio, String dtFim) throws JRException, SQLException, ClassNotFoundException, Exception {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/teste/relatorio/relChamadaParGeral.jasper");
        Map parametros = new HashMap();
        parametros.put("paroquia", nome);
        parametros.put("turma", turma);
        parametros.put("dtInicio", formataData(dtInicio));
        parametros.put("dtFim", formataData(dtFim));
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioParoquiaGeral.pdf", true, os.toByteArray().length);
    }

    public InputStreamDownload relChamadaParoquiaV(String nome, String turma, String dtInicio, String dtFim) throws JRException, SQLException, ClassNotFoundException, Exception {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/teste/relatorio/relChamadaParoquiaV.jasper");
        Map parametros = new HashMap();
        parametros.put("paroquia", nome);
        parametros.put("turma", turma);
        parametros.put("dtInicio", formataData(dtInicio));
        parametros.put("dtFim", formataData(dtFim));
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioPresencaParoquia.pdf", true, os.toByteArray().length);
    }

    public InputStreamDownload relChamadaParoquiaF(String nome, String turma, String dtInicio, String dtFim) throws JRException, SQLException, ClassNotFoundException, Exception {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/teste/relatorio/relChamadaParoquiaF.jasper");
        Map parametros = new HashMap();
        parametros.put("paroquia", nome);
        parametros.put("turma", turma);
        parametros.put("dtInicio", formataData(dtInicio));
        parametros.put("dtFim", formataData(dtFim));
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioFaltaParoquia.pdf", true, os.toByteArray().length);
    }

    public String formataData(String data)throws Exception{
        String retorno = "";
        try{
            retorno = data.substring(6,10)+"-" + data.substring(3,5) + "-" +data.substring(0,2);
        }
        catch(Exception e) {
                throw new Exception("Erro na conversão da data" +
            "\nMensagem original:  " + e.getMessage());
        }
        return retorno;
    }

    public InputStreamDownload relChamadaSoma(String turma, String dtInicio, String dtFim) throws JRException, SQLException, ClassNotFoundException, Exception {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/teste/relatorio/relChamadaDetalhe.jasper");
        Map parametros = new HashMap();
        parametros.put("turma", turma);
        parametros.put("dtInicio", formataData(dtInicio));
        parametros.put("dtFim", formataData(dtFim));
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioChamadaDetalhe.pdf", true, os.toByteArray().length);
    }

    public InputStreamDownload relChamadaPeF(String turma, String dtInicio, String dtFim) throws JRException, SQLException, ClassNotFoundException, Exception {
        InputStream file = getClass().getClassLoader().getResourceAsStream("/br/com/teste/relatorio/relChamadaVF.jasper");
        Map parametros = new HashMap();
        parametros.put("turma", turma);
        parametros.put("dtInicio", formataData(dtInicio));
        parametros.put("dtFim", formataData(dtFim));
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        JasperRunManager.runReportToPdfStream(file, os, parametros, getConexao());
        InputStream document = new ByteArrayInputStream(os.toByteArray());
    return new InputStreamDownload(document, "application/pdf", "relatorioChamadaPresencaeFalta.pdf", true, os.toByteArray().length);
    }

}
G

Junior, teu erro afinal é do pgsql ou do MySQL? Tu posta passando um código do pgsql, mas a mensagem de erro é do MySQL. Qual é o erro afinal? O que tu realmente quer fazer? Fica dificil entender o que está acontecendo se seu post não tem lógica alguma.

Quanto ao erro do MySQL ele é claro: usuáro ou senha inválidos. Não tem nada mais do que eu te ajudar senão dizer para tu usar usuário e senha certos :smiley:

juniorsatanas

Garcia !

Bom eu quero fazer funcionar com Mysql depois Migrar para PostgreSQL, mais usando Hibernate, voce pode ver nessa classe ai em cima, que to usando uma conecção direta com o Banco, quero fazer usando o hibernate.cfg.xml !

Valeu !

juniorsatanas

quero trocar isso :

private Connection getConexao() throws SQLException, ClassNotFoundException{  
           Connection con = null;  
           try{  
               Class.forName("com.mysql.jdbc.Driver");  
               String url = "jdbc:mysql://localhost:3306/teste";  
               String usuario = "root";  
               String senha = "";  
               con = (Connection) DriverManager.getConnection(url,usuario,senha);  
           }catch(SQLException sql){  
               System.out.println("erro ao conectar");  
                sql.printStackTrace();  
           }  
           return con;  
       }

pelo arquivo do hibernate.cfg.xml !

G
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://MEU_HOST/MINHA_BASE</property>
		<property name="connection.username">MEU_USUARIO</property>
		<property name="connection.password">MINHA_SENHA</property>
	</session-factory>
</hibernate-configuration>
juniorsatanas

Bom isso já tenho no projeto, hinernate.cfg.xml, a dúvida é como usar para os relatórios !

G

Isso eu já não tenho a mínima idéia, felizmente não conheço nada sobre relatórios :). Acho melhor você abrir um tópico sobre sua dúvida no subfórum específico.

juniorsatanas

É mesmo, obrigado Garcia ! Vai dormir porra todo dia tu madruga isso faz mau para o Sangue e para o relógio Biológico !

Corta 1 dente de alho e joga em meio copo dágua…

Vou dormir boa semana meu velho

jr.

maior_abandonado

junior, estou com a impressão de que você não consegue conectar direito no postgree por que esta usando a connection do com.mysql e não a do java.sql…

se usando essa classe você consegue a conexão mas da problema em outro lugar, verifique o que está acontecendo no outro lugar que esta dando erro…

quando for postar que está dando algum erro, sempre cole aqui o stack trace (de preferência inteiro).

Outra coisa, respeite os outros usuarios do forum que estão inclusive te ajudando, evite palavrões.

juniorsatanas

maior_abandonado Bom Dia

Obrigado e foi anotado sua dica !

Junior

Criado 16 de julho de 2010
Ultima resposta 19 de jul. de 2010
Respostas 26
Participantes 7