⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 topicdao.java

📁 基于struts+hibernate的电子商务网站。可运行。数据库mysql
💻 JAVA
字号:
package tarena.dao;

import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Hibernate;
import org.hibernate.LockMode;
import org.hibernate.Query;
import org.hibernate.criterion.Example;

import tarena.data.AbractTopic;
import tarena.entity.Section;
import tarena.entity.Topic;

/**
 * Data access object (DAO) for domain model class Topic.
 * 
 * @see tarena.entity.Topic
 * @author MyEclipse Persistence Tools
 */
@SuppressWarnings("unchecked")
public class TopicDAO extends BaseHibernateDAO {
	private static final Log log = LogFactory.getLog(TopicDAO.class);

	// property constants
	public static final String ISLOCK = "islock";

	public static final String LOCKUSER = "lockuser";

	public static final String TOPICTYPE = "topictype";

	public static final String DIGEST = "digest";

	public static final String DEGESTUSER = "degestuser";

	public static final String HIGHLIGHT = "highlight";

	public static final String LIGHTCOLOR = "lightcolor";

	public static final String LIGHTUSER = "lightuser";

	public static final String LETTOP = "lettop";

	public static final String LETTOPAREA = "lettoparea";

	public static final String LETTOPUSER = "lettopuser";

	public static final String VOTE = "vote";

	public static final String VOTEUSER = "voteuser";

	public static final String VIEWNUM = "viewnum";

	public void save(Topic transientInstance) {		
		try {
			getSession().beginTransaction();
			getSession().save(transientInstance);
			getSession().getTransaction().commit();
		} catch (RuntimeException re) {		
			throw re;
		}finally{
			closeSession();
		}
	}

	public void delete(Topic persistentInstance) {		
		try {
			getSession().beginTransaction();
			getSession().delete(persistentInstance);
			getSession().getTransaction().commit();
		} catch (RuntimeException re) {			
			throw re;
		}finally{
			closeSession();
		}
	}

	public Topic findById(java.lang.Integer id) {		
		try {
			Topic instance = (Topic) getSession()
					.get("tarena.entity.Topic", id);
			return instance;
		} catch (RuntimeException re) {			
			throw re;
		}finally{
			closeSession();
		}
	}
	
	/**
	 * 查找指定板块下的非置顶主题,并分页显示。
	 * @param section
	 * @param first
	 * @param max
	 * @return
	 */
	public List<Topic> findUnTopTopicBySection(Section section,int first,int max){
		StringBuffer hql = new StringBuffer();
		hql.append("from Topic topic where topic.section=? and topic.lettop=?");
		return getSession().createQuery(hql.toString())
				.setParameter(0, section)
				.setParameter(1, false)
				.setFirstResult(first)
				.setMaxResults(max)
				.list();
	}
	
	/**
	 * 查找指定板块下的所有置顶主题。
	 * 该函数只考虑主题只在该板块下被置顶的情况。
	 * @param section
	 * @param first
	 * @param max
	 * @return
	 */
	public List<Topic> findLetTopTopicBySection(Section section){
		StringBuffer hql = new StringBuffer();
		hql.append("from Topic topic where topic.section=? and topic.lettop=?");
		return getSession().createQuery(hql.toString())
				.setParameter(0, section)
				.setParameter(1, true)				
				.list();
	}
	

	/**
	 * 按主题id查找该主题的名字。
	 * @param topicid
	 * @return
	 */
	public String findTopicNameById(Integer topicid){
		StringBuffer sql = new StringBuffer();
		sql.append("select p.title from post p where p.floor=0 and p.tid="+topicid);
		String re = (String)getSession()
					.createSQLQuery(sql.toString())
					.uniqueResult();
		return re;
	}
	
	/**
	 * 计算该主题的回复次数。
	 * @param topicid
	 * @return
	 */
	public Integer countFloors(Integer topicid){
		StringBuffer sql = new StringBuffer();
		sql.append("select max(floor) from post where tid="+topicid);
		Integer re = (Integer)getSession()
					.createSQLQuery(sql.toString())
					.uniqueResult();
		return re;
	}
	
	/**
	 * 
	 * @param topamt
	 * @return
	 */
	public List<AbractTopic> listHotTopic(int topamt){
		StringBuffer hql = new StringBuffer();
		hql.append("select new tarena.data.AbractTopic(t.id,p.title,t.viewnum) ");
		hql.append("from Topic t,Post p ");
		hql.append("where p.topic.id=t.id and p.floor=0 order by t.viewnum desc ");
		return   getSession()
				.createQuery(hql.toString())
				.setFirstResult(0)
				.setMaxResults(topamt)
				.list();
	}
	
	
	
	public List findByExample(Topic instance) {
		log.debug("finding Topic instance by example");
		try {
			List results = getSession().createCriteria("tarena.entity.Topic")
					.add(Example.create(instance)).list();
			log.debug("find by example successful, result size: "
					+ results.size());
			return results;
		} catch (RuntimeException re) {
			log.error("find by example failed", re);
			throw re;
		}
	}

	public List findByProperty(String propertyName, Object value) {
		log.debug("finding Topic instance with property: " + propertyName
				+ ", value: " + value);
		try {
			String queryString = "from Topic as model where model."
					+ propertyName + "= ?";
			Query queryObject = getSession().createQuery(queryString);
			queryObject.setParameter(0, value);
			return queryObject.list();
		} catch (RuntimeException re) {
			log.error("find by property name failed", re);
			throw re;
		}
	}

	public List findByIslock(Object islock) {
		return findByProperty(ISLOCK, islock);
	}

	public List findByLockuser(Object lockuser) {
		return findByProperty(LOCKUSER, lockuser);
	}

	public List findByTopictype(Object topictype) {
		return findByProperty(TOPICTYPE, topictype);
	}

	public List findByDigest(Object digest) {
		return findByProperty(DIGEST, digest);
	}

	public List findByDegestuser(Object degestuser) {
		return findByProperty(DEGESTUSER, degestuser);
	}

	public List findByHighlight(Object highlight) {
		return findByProperty(HIGHLIGHT, highlight);
	}

	public List findByLightcolor(Object lightcolor) {
		return findByProperty(LIGHTCOLOR, lightcolor);
	}

	public List findByLightuser(Object lightuser) {
		return findByProperty(LIGHTUSER, lightuser);
	}

	public List findByLettop(Object lettop) {
		return findByProperty(LETTOP, lettop);
	}

	public List findByLettoparea(Object lettoparea) {
		return findByProperty(LETTOPAREA, lettoparea);
	}

	public List findByLettopuser(Object lettopuser) {
		return findByProperty(LETTOPUSER, lettopuser);
	}

	public List findByVote(Object vote) {
		return findByProperty(VOTE, vote);
	}

	public List findByVoteuser(Object voteuser) {
		return findByProperty(VOTEUSER, voteuser);
	}

	public List findByViewnum(Object viewnum) {
		return findByProperty(VIEWNUM, viewnum);
	}

	public List findAll() {
		log.debug("finding all Topic instances");
		try {
			String queryString = "from Topic";
			Query queryObject = getSession().createQuery(queryString);
			return queryObject.list();
		} catch (RuntimeException re) {
			log.error("find all failed", re);
			throw re;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -