当前位置: 代码迷 >> Java Web开发 >> ssh框架 求BaseDao代码
  详细解决方案

ssh框架 求BaseDao代码

热度:137   发布时间:2011-04-07 13:12:02.0
ssh框架 求BaseDao代码
刚刚开始搭建架构.以前代码没有带.求BaseDao代码以做参考!

今天下午没人回.我自己来回复
搜索更多相关主题的帖子: 搭建  架构  

----------------解决方案--------------------------------------------------------
可以考虑自己写哈,那个什么BaseDao也是别人写的,只是封装了一些常用的方法而已。
如果实在需要可以考虑用Hibernate自带的HibernateTemplate类或者HibernateSupportDao类,不知道类名有没有拼错!有段时间没用Hibernate了。

----------------解决方案--------------------------------------------------------
哎。。弄出来了
==============================================
package com.cls.dao;

public interface BaseDao<T,S> {
    public void save(T entity);

    public void deleteById(S PK);

    public void delete(T entity);
   
    public void update(T entity);
   
    public T findById(S PK);
}
===============================================
package com.cls.daoimpl;

import java.io.Serializable;

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.classic.Session;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import sun.security.action.GetBooleanAction;

import com.cls.dao.BaseDao;

public class BaseDaoImpl<T, S extends Serializable> implements BaseDao<T, S> {

    protected Class entityClass;
    private SessionFactory sessionFactory;
    ApplicationContext apc = new FileSystemXmlApplicationContext(
            "/WEB-INF/classes/applicationContext.xml");

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = (SessionFactory) apc.getBean("sessionFactory");
    }

    public void delete(T entity) {
        Session session = sessionFactory.openSession();
        Transaction tx = session.beginTransaction();
        session.delete(entity);
        session.close();
        tx.commit();
    }

    public void deleteById(S PK) {
        Session session = sessionFactory.openSession();
        Transaction tx = session.beginTransaction();
        T t = (T) session.get(this.entityClass, PK);
        session.delete(t);
        tx.commit();
    }

    public T findById(S PK) {
        Session session = sessionFactory.openSession();
        Transaction tx = session.beginTransaction();
        T t = (T) session.get(this.entityClass, PK);
        return t;
    }

    public void save(T entity) {
        Session session = sessionFactory.openSession();
        Transaction tx = session.beginTransaction();
        session.save(entity);
        tx.commit();
    }

    public void update(T entity) {
        Session session = sessionFactory.openSession();
        Transaction tx = session.beginTransaction();
        session.update(entity);
        tx.commit();
    }

}
====================================================
----------------解决方案--------------------------------------------------------
你这个BaseDao功能挺少的。。。
----------------解决方案--------------------------------------------------------