定义BaseDAO: (增/删/改/查单个/查集合/查集合2)
- public interface BaseDAO{
- <T>void add(T object);
- <T>void delete(Class clazz,Serializable id);
- <T>void update(T clazz);
- <T> T get(Class<T> clazz,Serializable id);
- <T>List<T>search(Class<T> clazz);
- <T>List<T> search(Class<T> clazz,Object condition);
- }
public interface BaseDAO{
<T>void add(T object);
<T>void delete(Class clazz,Serializable id);
<T>void update(T clazz);
<T> T get(Class<T> clazz,Serializable id);
<T>List<T>search(Class<T> clazz);
<T>List<T> search(Class<T> clazz,Object condition);
}
然后再impl包中实现该接口:
- public class BaseDAOSupport implements BaseDAO {
- private Session session;
- protected Session getSession() {
- return HibernateSessionFactory.getSession();
- }
- public void setSession(Session session) {
- this.session = session;
- }
- /**
- * 增加
- */
- public <T> void add(T object) {
- Transaction ts = null;
- try {
- ts = getSession().beginTransaction();
- getSession().save(object);
- ts.commit();
- } catch (HibernateException e) {
- if(null != ts){
- ts.rollback();
- }
- e.printStackTrace();
- }finally{
- HibernateSessionFactory.closeSession();
- }
- }
- /**
- * 删除
- */
- public <T> void delete(Class clazz,Serializable id) {
- Transaction ts = null;
- try {
- ts = getSession().beginTransaction();
- getSession().delete(get(clazz, id));
- ts.commit();
- } catch (HibernateException e) {
- if(null != ts){
- ts.rollback();
- }
- e.printStackTrace();
- }finally{
- HibernateSessionFactory.closeSession();
- }
- }
- /**
- * 更新
- */
- public <T> void update(T clazz) {
- Transaction ts = null;
- try {
- ts = getSession().beginTransaction();
- getSession().update(clazz);
- ts.commit();
- } catch (HibernateException e) {
- if(null != ts){
- ts.rollback();
- }
- e.printStackTrace();
- }finally{
- HibernateSessionFactory.closeSession();
- }
- }
- /**
- * 查询单个
- */
- public <T> T get(Class<T> clazz, Serializable id) {
- return (T) getSession().get(clazz, id);
- }
- /**
- * 无条件查询集合
- */
- public <T> List<T> search(Class<T> clazz) {
- List<T> list = getSession().createCriteria(clazz).list();
- return list ;
- }
- /**
- * 有条件查询集合
- */
- public <T> List<T> search(Class<T> clazz, Object condition) {
- List<T> list = getSession().createCriteria(clazz).add(Example.create(condition)).list();
- return list;
- }
- }