Bu örnekte PrimeFaces Hibernate ile nasıl kullanılabileceğini basitçe göstermeye çalıştım. JSF Hibernate örneğine bakabilirsiniz. PrimeFaces NetBeans 7.0 ile beraber default olarak geliyor. Örnekte ad ve soyad değerlerini hibernate kullanarak veritabanına kaydediyor.
Netbeans ile web projesi oluşturduktan sonra JavaServer Faces frameworkunu sçtikten sonra Components–>Components Suite–>PrimeFaces 2.1 seçiyoruz.

Sonra Hibernate frameworkunu seçip bir tane database seçiniz. Hibernate örneğine bakabilirsiniz.

JSF ve JSP ile ilgili detaylı bilgi için tıklayınız.
Projenizi sağ tıklayıp New–>Other–>JavaServer Faces–>JSF Faces Configuration ile faces-config.xml(JSF Managed Bean ayarları yapılır) dosyasını oluşturun. Sonra JSF Mnaged Bean oluşturun.

Aşağıdaki resimde JSF Managed Bean oluşturulurken IDE faces-config.xml dosyasında otomatik ayarlama kodunu yazıyor genelde.

Eğer kendisi oluşturmuyorsa aşağıdaki resimde görüldüğü gibi kendiniz de yazabilrisiniz.

faces-config.xml
<?xml version='1.0' encoding='UTF-8'?>
<!--Note: <managed-bean-name>uyeKaydet</managed-bean-name> Bean ismi kucuk harfle basliyor -->
<faces-config version="2.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
<managed-bean>
<managed-bean-name>uyeKaydet</managed-bean-name>
<managed-bean-class>ethem.UyeKaydet</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>
Burada
Uygulama resmi

Otomatik eklenilen PrimeFaces ve Hibernate jar dosyaları

index.xhtml
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:p="http://primefaces.prime.com.tr/ui"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<title>Facelet Title</title>
</h:head>
<h:body>
<h:form prependId="false">
<p:panel header="Uye Formu">
<h:panelGrid columns="2">
<h:outputLabel value="Ad:*" for="ad_alani"></h:outputLabel>
<h:inputText id="ad_alani" value="#{uyeKaydet.yeniNesne.ad}" required="true"/>
<h:outputLabel value="Soyad:*" for="soyad_alani"></h:outputLabel>
<h:inputText id="soyad_alani" value="#{uyeKaydet.yeniNesne.soyad}" required="true"/>
<p:commandButton value="Add" actionListener="#{uyeKaydet.kaydet}"/>
</h:panelGrid>
</p:panel>
<h:panelGrid columns="2">
<h:outputText value="#{uyeKaydet.yeniNesne.ad}"/>
<h:outputText value="#{uyeKaydet.yeniNesne.soyad}"/>
</h:panelGrid>
</h:form>
</h:body>
</html>
PrimeFaces: xmlns:p=”http://primefaces.prime.com.tr/ui
Uye.java
package ethemsulan;
// Generated Dec 6, 2010 6:16:25 PM by Hibernate Tools 3.2.1.GA
public class Uye implements java.io.Serializable {
private Integer id;
private String ad;
private String soyad;
public Uye() {
}
public Uye(String ad, String soyad) {
this.ad = ad;
this.soyad = soyad;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
public String getAd() {
return this.ad;
}
public void setAd(String ad) {
this.ad = ad;
}
public String getSoyad() {
return this.soyad;
}
public void setSoyad(String soyad) {
this.soyad = soyad;
}
}
UyeKaydet.java
package ethem;
import ethemsulan.Uye;
/**
*
* @author ubuntu
*/
public class UyeKaydet {
private ImplementsMem impObject=new ImplementsMem();
private Uye yeniNesne;
public Uye getYeniNesne() {
return yeniNesne;
}
public void setYeniNesne(Uye yeniNesne) {
this.yeniNesne = yeniNesne;
}
public UyeKaydet() {
yeniNesne=new Uye();
}
//Hibernate ile kaydetmek için metod çağrılıyor.
public void kaydet()
{
impObject.saveWithHibernate(yeniNesne);
}
}
ImplementsMem.java
package ethem;
import ethemsulan.Uye;
import org.hibernate.Transaction;
import org.hibernate.Session;
import ethemsulan.HibernateUtil;
public class ImplementsMem {
public void saveWithHibernate(Uye yeniNesne) {
Session newSession=HibernateUtil.getSessionFactory().openSession();
Transaction txT=newSession.beginTransaction();
newSession.save(yeniNesne);
System.out.println("Kayit basarili");
txT.commit();
newSession.close();
}
}
Hibernate daha önce uygulamalarda açıklamaya çalışmıştım. Aşağıda bu örnekle ilgili kodlardır.
hibernate.reveng.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd"> <hibernate-reverse-engineering> <schema-selection match-catalog="sozluk"/> <table-filter match-name="uye"/> </hibernate-reverse-engineering>
hibernate.cfg.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="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sozluk</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123</property>
<mapping resource="ethemsulan/Uye.hbm.xml"/>
</session-factory>
</hibernate-configuration>
HibernateUtil.java
package ethemsulan;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
/**
* Hibernate Utility class with a convenient method to get Session Factory object.
*
* @author ubuntu
*/
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from standard (hibernate.cfg.xml)
// config file.
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Log the exception.
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}

[...] ile PrimeFaces kullanrak client tarafında kayıtları sayfalamaya çalıştım. PrimeFaces Hibernate NetBeans örneğine bakabilirsiniz. Sayfalama aslında o kadar da kolay bir işlem değil. Ama PrimeFaces [...]
Örnek için Teşekkür ederim yanlız uye.hbm.xml dosyasını vermemişsiniz.