Ok Paulo!!Estou estudando Java/Hibernate e o Jdeveloper 10g, sou iniciante, estou tentando rodar essa pequena aplicação:
arquivo hibernate.cgf.xml
<?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="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.url">jdbc:postgresql://localhost:5432/facu</property>
<property name="connection.username">paulo</property>
<property name="connection.password">paulo</property>
<property name="connection.pool_size">15</property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="current_session_context_class">thread</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="Titulacao.hbm.xml"/>
<mapping resource="Professor.hbm.xml"/>
<mapping resource="Disciplina.hbm.xml"/>
<mapping resource="Leciona.hbm.xml"/>
</session-factory>
</hibernate-configuration>
arquivo hibernateUtility.java
import org.hibernate.*;
import javax.security.auth.login.*;
import org.hibernate.cfg.Configuration;
public class HibernateUtility
{
public HibernateUtility()
{
}
private static SessionFactory factory;
static {
//Bloco estático que inicializa o Hibernate
try {
factory = new Configuration().configure().buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
factory = null;
}
}
public static Session getSession() {
//Retorna a sessão aberta
return factory.openSession();
}
public SessionFactory getFactory() {
return factory;
}
public void setFactory(SessionFactory val) {
this.factory = val;
}
}
arquivo Professor.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Professor">
<!-- Identificador da classe -->
<id name="id">
<generator class="native"></generator>
</id>
<!-- Propriedades da classe -->
<property name="nome"/>
<property name="sexo"/>
<!-- Relacionamento da classe -->
<many-to-one name="titulacao" column="id_titulacao"
class="Titulacao" cascade="save-update"/>
</class>
<query name="consultaProfessorSexo">
<![CDATA[from Professor p where p.sexo = :sexo]]>
</query>
</hibernate-mapping>
classe ProfessorDao
import java.util.*;
import org.hibernate.*;
public class ProfessorDAO {
public ProfessorDAO() {
}
public void insereProfessor(String nome, String sexo, Integer titulacao)
{
Session s = HibernateUtility.getSession();
Transaction t = s.beginTransaction();
Professor professor = new Professor();
professor.setNome(nome);
professor.setSexo(sexo);
TitulacaoDAO titulacaodao = new TitulacaoDAO();
professor.setTitulacao(titulacaodao.consultaTitulacao(titulacao));
s.save(professor);
t.commit();
s.close();
/* script para testar erro de conexão/informa o erro.
Session s;
Transaction tx = null;
try {
Session s = HibernateUtility.getSession();
Transaction t = s.beginTransaction();
Professor professor = new Professor();
professor.setNome(nome);
s.save(professor);
t.commit();
s.close();
} catch (Exception e) {
tx.rollback();
throw new HibernateException(e);
} */
}
public Professor consultaProfessor(Integer pk) {
Session s = HibernateUtility.getSession();
Transaction t = s.beginTransaction();
Professor professor = (Professor)s.get(Professor.class, pk);
t.commit();
s.close();
return professor;
}
public void excluiProfessor(Integer id) {
Session s = HibernateUtility.getSession();
Transaction t = s.beginTransaction();
Professor professor = new Professor();
professor.setId(id);
s.delete(professor);
t.commit();
s.close();
}
public void alteraProfessor(Integer id, String nome) {
Session s = HibernateUtility.getSession();
Transaction t = s.beginTransaction();
Professor professor = (Professor)s.get(Professor.class, id);
professor.setNome(nome);
s.saveOrUpdate(professor);
t.commit();
s.close();
}
public void listaProfessor() {
Session s = HibernateUtility.getSession();
Transaction t = s.beginTransaction();
Query select = s.createQuery("from Professor where id = :id");
select.setInteger("id", 4);
List list = select.list();
Iterator iterator = list.iterator();
System.out.println("******* VALOR(ES) LOCALIZADO(S) *******");
while (iterator.hasNext()) {
Professor professor = (Professor)iterator.next();
System.out.println("\n");
System.out.println("Codigo: " + professor.getId());
System.out.println("Nome: " + professor.getNome());
System.out.println("Sexo: " + professor.getSexo());
// TitulacaoDAO titulacao = new TitulacaoDAO();
// titulacao.consultaTitulacao(professor.getTitulacao());
System.out.println("Titulacao: " + professor.getTitulacao());
System.out.println("**********************************");
}
t.commit();
s.close();
}
public void consultaProfessor(String nome) {
Session s = HibernateUtility.getSession();
Transaction t = s.beginTransaction();
Query sql =
s.createQuery("from Professor as professor where professor.nome=:nome");
sql.setString("nome", nome);
List list = sql.list();
Iterator iterator = list.iterator();
System.out.println("******* VALOR(ES) LOCALIZADO(S) *******");
while (iterator.hasNext()) {
Professor professor = (Professor)iterator.next();
TitulacaoDAO titulacaodao = new TitulacaoDAO();
System.out.println("\n");
System.out.println("Codigo: " + professor.getId());
System.out.println("Nome: " + professor.getNome());
System.out.println("Sexo: " + professor.getSexo());
System.out.println("**********************************");
}
t.commit();
s.close();
}
public void consultaProfessorSexo(String sexo) {
Session s = HibernateUtility.getSession();
Transaction t = s.beginTransaction();
Query sql = s.getNamedQuery("consultaProfessorSexo");
sql.setString("sexo", sexo);
List list = sql.list();
Iterator iterator = list.iterator();
System.out.println("******* VALOR(ES) LOCALIZADO(S) *******");
while (iterator.hasNext()) {
Professor professor = (Professor)iterator.next();
TitulacaoDAO titulacaodao = new TitulacaoDAO();
System.out.println("\n");
System.out.println("Codigo: " + professor.getId());
System.out.println("Nome: " + professor.getNome());
System.out.println("Sexo: " + professor.getSexo());
System.out.println("**********************************");
}
t.commit();
s.close();
}
}
classe Professor.java
public class Professor {
private int id;
private String nome;
private String Sexo;
private Titulacao titulacao;
public Professor() {
}
public int getId() {
return id;
}
public void setId(int val) {
this.id = val;
}
public String getNome() {
return nome;
}
public void setNome(String val) {
this.nome = val;
}
public String getSexo() {
return Sexo;
}
public void setSexo(String val) {
this.Sexo = val;
}
public Titulacao getTitulacao() {
return titulacao;
}
public void setTitulacao(Titulacao val) {
this.titulacao = val;
}
}
estou inicialmente tentando inserir no Banco de Dados
professordao.insereProfessor("Maria", "F", 110);
mas estou encontrando esses problemas. Ja associei todas as classes que achei necessário e mais um tanto no CALSSPATH porém continuo com esse erro, já faz um tempão.. não estou conseguindo sair do lugar.... TE AGRADEÇO DESDE JÁ POR TENTAR ME AJUDAR...