一、编写HibernateBaseDao类
package com.hibernate.dao;
import java.io.Serializable;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class HibernateBaseDao {
//添加数据
protected void add(Object object){
Transaction tran = null;
//获取Session
Session session = HibernateSessionFactory.getSession();
try{
//开始事务
tran = session.beginTransaction();
//持久化操作
session.save(object);
tran.commit();
}catch(Exception e){
if(tran!=null){
tran.rollback();
}
e.printStackTrace();
}finally {
HibernateSessionFactory.clossSession();
}
}
//加载数据
protected Object get(Class class1, Serializable id){
Object object = null;
//获取Session
Session session = HibernateSessionFactory.getSession();
try{
object = session.get(class1, id);
}catch(Exception e){
e.printStackTrace();
}finally {
HibernateSessionFactory.clossSession();
}
return object;
}
//删除数据
protected void delete(Object object){
Transaction tran = null;
//获取Session
Session session = HibernateSessionFactory.getSession();
try{
//开始事务
tran = session.beginTransaction();
//持久化操作
session.delete(object);
tran.commit();
}catch(Exception e){
if(tran!=null){
tran.rollback();
}
e.printStackTrace();
}finally {
HibernateSessionFactory.clossSession();
}
}
//修改数据
protected void update(Object object){
Transaction tran = null;
//获取Session
Session session = HibernateSessionFactory.getSession();
try{
//开始事务
tran = session.beginTransaction();
//持久化操作
session.update(object);
tran.commit();
}catch(Exception e){
if(tran!=null){
tran.rollback();
}
e.printStackTrace();
}finally {
HibernateSessionFactory.clossSession();
}
}
}
二、编写测试Dao接口。
package com.hibernate.dao;
import com.hibernate.entity.BaseEntity;
public interface BaseEntityDao {
public void add(BaseEntity entity);
public void delete(BaseEntity entity);
public BaseEntity getById(int id);
public void update(BaseEntity entity);
}
三、编写测试Dao实现。
package com.hibernate.dao.impl;
import com.hibernate.dao.BaseEntityDao;
import com.hibernate.dao.HibernateBaseDao;
import com.hibernate.entity.BaseEntity;
public class BaseEntityDaoImpl extends HibernateBaseDao implements BaseEntityDao{
@Override
public void add(BaseEntity entity) {
super.add(entity);
}
@Override
public void delete(BaseEntity entity) {
super.delete(entity);
}
@Override
public BaseEntity getById(int id) {
return (BaseEntity)super.get(BaseEntity.class, id);
}
@Override
public void update(BaseEntity entity) {
super.update(entity);
}
}
四、编写测试类。
package com.hibernate.dao;
import java.util.Date;
import com.hibernate.dao.impl.BaseEntityDaoImpl;
import com.hibernate.entity.BaseEntity;
public class HibernateTest {
BaseEntityDao dao = new BaseEntityDaoImpl();
public static void main(String[] args) {
BaseEntity entity = new BaseEntity();
HibernateTest test = new HibernateTest();
test.testAdd(entity);
entity.setCreateTime(new Date());
test.testUpdate(entity);
test.testDelect(entity);
}
public void testAdd(BaseEntity entity){
entity.setCreateTime(new Date());
dao.add(entity);
}
public void testUpdate(BaseEntity entity){
dao.update(entity);
}
public void testDelect(BaseEntity entity){
dao.delete(entity);
}
}