package com.dao; public interface DAOIntf<T> { public void update(T obj); public void save(T obj); public void delete(T obj); }
package com.dao; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.Transaction; import com.util.HibernateUtil; public class AbstractDAOImpl<T> implements DAOIntf<T>{ @Override public void update(T obj) { save(obj); } @Override public void save(T obj) { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction transaction = null; try { transaction = session.beginTransaction(); session.save(obj); transaction.commit(); } catch (HibernateException e) { transaction.rollback(); e.printStackTrace(); } finally { session.close(); } } @Override public void delete(T obj) { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction transaction = null; try { transaction = session.beginTransaction(); session.delete(obj); transaction.commit(); } catch (HibernateException e) { transaction.rollback(); e.printStackTrace(); } finally { session.close(); } } }
ProductDAOIntf.java
package com.dao; import java.util.List; public interface ProductDAOIntf<T> extends DAOIntf<T> { public T getProductByID(int id); public List<T> getAllProducts(); }
ProductDAOImpl.java
package com.dao; import java.util.List; import org.hibernate.HibernateException; import org.hibernate.Session; import com.hbm.Product; import com.util.HibernateUtil; public class ProductDAOImpl<T> extends AbstractDAOImpl<T> implements ProductDAOIntf<T> { @Override public T getProductByID(int id) { Session session = HibernateUtil.getSessionFactory().openSession(); T product=null; try { product =(T) session.get(Product.class,id); } catch (HibernateException e) { e.printStackTrace(); } finally { session.close(); } return product; } @Override public List<T> getAllProducts(){ Session session = HibernateUtil.getSessionFactory().openSession(); List<T> list = null; try { list = session.createQuery("from Product").list(); } catch (HibernateException e) { e.printStackTrace(); } finally { session.close(); } return list; } }
Product.java
package com.hbm; import java.io.Serializable; public class Product implements Serializable { public Integer getProduct_Id() { return Product_Id; } public void setProduct_Id(Integer product_Id) { Product_Id = product_Id; } public String getProduct_Name() { return Product_Name; } public void setProduct_Name(String product_Name) { Product_Name = product_Name; } public Double getProduct_Price() { return Product_Price; } public void setProduct_Price(Double product_Price) { Product_Price = product_Price; } public Integer getProduct_QOH() { return Product_QOH; } public void setProduct_QOH(Integer product_QOH) { Product_QOH = product_QOH; } Integer Product_Id; String Product_Name; Double Product_Price; Integer Product_QOH; @Override public String toString() { return "Id : " + Product_Id + "\t Name " + Product_Name + "\tQOH " + Product_QOH; } }
Product.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.hbm.Product" table="product" > <id name="Product_Id" type="int"> <generator class="identity"></generator></id> <property name="Product_Name" type="string" length="50" /> <property name="Product_Price" type="double" lazy="true" /> <property name="Product_QOH" type="int"/> </class> </hibernate-mapping>