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

📄 forumsdaoimpl.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
字号:
package cn.jsprun.dao.impl;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import cn.jsprun.dao.ForumsDao;
import cn.jsprun.domain.Forums;
import cn.jsprun.utils.HibernateUtil;

public class ForumsDaoImpl implements ForumsDao {
	public boolean addForum(Forums forum) {
		boolean flag = false;
		if (forum != null) {
			Session session = null;
			Transaction tran = null;
			try {
				session = HibernateUtil.getSessionFactory().getCurrentSession();
				tran = session.beginTransaction();
				session.save(forum);
				flag = true;
				tran.commit();
			} catch (HibernateException e) {
				flag = false;
				if(tran!=null){
					tran.rollback();
				}
				e.printStackTrace();
			}
		}
		return flag;
	}

	public Forums findById(Short fid) {
		Session session = null;
		Transaction tran = null;
		Forums forum = null;
		try {
			session = HibernateUtil.getSessionFactory().getCurrentSession();
			tran = session.beginTransaction();
			forum = (Forums) session.get(Forums.class, fid);
			tran.commit();
		} catch (HibernateException e) {
			if(tran!=null){
				tran.rollback();
			}
			e.printStackTrace();
		}
		return forum;
	}

	public List<Forums> getForumsList(List<Short> fidList) {
		Session session = null;
		Transaction tran = null;
		Forums forum = null;
		List<Forums> list = new ArrayList<Forums>();
		try {
			session = HibernateUtil.getSessionFactory().getCurrentSession();
			tran = session.beginTransaction();
			for(int i = 0;i<fidList.size();i++){
				forum = (Forums) session.get(Forums.class, fidList.get(i));
				if(forum!=null){
					list.add(forum);
				}else{
					try{
						throw new Exception("没有获得ID所指定的Forums实例");
					}catch(Exception exception){
						exception.printStackTrace();
					}
				}
			}
			tran.commit();
		} catch (HibernateException e) {
			if(tran!=null){
				tran.rollback();
			}
			e.printStackTrace();
		}
		return list;
	}

	public List<Forums> findByType(String type) {
		return this.findByProperty("type", type);
	}

	@SuppressWarnings("unchecked")
	public List<Forums> findByProperty(String propertyName, Object value) {
		Session session = null;
		Transaction tran = null;
		Query query = null;
		List<Forums> forums = null;
		try {
			forums = new ArrayList<Forums>();
			session = HibernateUtil.getSessionFactory().getCurrentSession();
			tran = session.beginTransaction();
			query = session.createQuery("from Forums as f where f."
					+ propertyName + "=? order by displayorder");
			query.setString(0, value.toString());
			forums = query.list();
			tran.commit();
		} catch (HibernateException e) {
			if(tran!=null){
				tran.rollback();
			}
			e.printStackTrace();
		}
		return forums;
	}

	public List<Forums> findByUp(Short fup) {
		return this.findByProperty("fup", fup.toString());
	}

	public boolean removeForum(Forums forum) {
		boolean flag = false;
		if (forum != null) {
			Session session = null;
			Transaction tran = null;
			Query query=null;
			try {
				session = HibernateUtil.getSessionFactory().getCurrentSession();
				tran = session.beginTransaction();
				query = session.createQuery("delete from Forumfields as f where f.fid="+forum.getFid());
				query.executeUpdate();
				session.delete(forum);
				flag = true;
				tran.commit();
			} catch (HibernateException e) {
				flag = false;
				if(tran!=null){
					tran.rollback();
				}
				e.printStackTrace();
			}
		}
		return flag;
	}

	public boolean updateForum(Forums forum) {
		boolean flag = false;
		if (forum != null) {
			Session session = null;
			Transaction tran = null;
			try {
				session = HibernateUtil.getSessionFactory().getCurrentSession();
				tran = session.beginTransaction();
				session.saveOrUpdate(forum);
				flag = true;
				tran.commit();
			} catch (HibernateException e) {
				flag = false;
				if(tran!=null){
					tran.rollback();
				}
				e.printStackTrace();
			}
		}
		return flag;
	}

	public boolean updatePost(Short sourcefid, Short targetfid) {
		boolean flag = false;
		Session session = null;
		Transaction tran = null;
		Query query = null;
		try {
			session = HibernateUtil.getSessionFactory().getCurrentSession();
			tran = session.beginTransaction();
			query = session.createQuery("update Posts as p set p.fid="+targetfid+" where p.fid ="+sourcefid);
			query.executeUpdate();
			flag = true;
			tran.commit();
		} catch (HibernateException e) {
			flag = false;
			if(tran!=null){
				tran.rollback();
			}
			e.printStackTrace();
		}
		return flag;
	}

	public boolean updateThread(Short sourcefid, Short targetfid) {
		boolean flag = false;
		Session session = null;
		Transaction tran = null;
		Query query = null;
		try {
			session = HibernateUtil.getSessionFactory().getCurrentSession();
			tran = session.beginTransaction();
			query = session.createQuery("update Threads as t set t.fid="+targetfid+" where t.fid ="+sourcefid);
			query.executeUpdate();
			flag = true;
			tran.commit();
		} catch (HibernateException e) {
			flag = false;
			if(tran!=null){
				tran.rollback();
			}
			e.printStackTrace();
		}
		return flag;
	}

	@SuppressWarnings("unchecked")
	public List<Forums> findAll() {
		Session session = null;
		Transaction tran = null;
		Query query = null;
		List<Forums> forums = null;
		try {
			forums = new ArrayList<Forums>();
			session = HibernateUtil.getSessionFactory().getCurrentSession();
			tran = session.beginTransaction();
			query = session.createQuery("from Forums order by displayorder");
			forums = query.list();
			tran.commit();
		} catch (HibernateException e) {
			if(tran!=null){
				tran.rollback();
			}
			e.printStackTrace();
		}
		return forums;
	}
	
	public List<Forums> findExceptFupEqualZero() {
		Session session = null;
		Transaction transaction = null;
		List<Forums> forums = null;
		
		String hql = "from Forums where fup <> 0";
		try{
			session = HibernateUtil.getSessionFactory().getCurrentSession();
			transaction = session.beginTransaction();
			Query query = session.createQuery(hql);
			forums = query.list();
			transaction.commit();
		}catch(Exception exception){
			if(transaction!=null){
				transaction.rollback();
			}
			exception.printStackTrace();
		}
		return forums;
	}
	
	@SuppressWarnings("unchecked")
	public List<Forums> findFourmsByHql(String hql,int start,int maxrow) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Transaction tr = null;
		try{
			tr = session.beginTransaction();
			Query query = session.createQuery(hql);
			query.setFirstResult(start);
			query.setMaxResults(maxrow);
			List<Forums> list = query.list();
			tr.commit();
			return list;
		}catch(HibernateException e){
			if(tr!=null){
				tr.rollback();
			}
			e.printStackTrace();
		}
		return null;
	}

	public int findFourmsCount() {
	Session session = HibernateUtil.getSessionFactory().getCurrentSession();
	Transaction tr = null;
	try{
		tr = session.beginTransaction();
		Query query = session.createQuery("select count(*) from Forums as f where f.status=1");
		List list = query.list();
		tr.commit();
		if(list!=null && list.size()>0){
			return Integer.valueOf(list.get(0)+"");
		}
	}catch(HibernateException e){
		if(tr!=null){
			tr.rollback();
		}
		e.printStackTrace();
	}
		return 0;
	}
	public Integer findForumsCountWithoutGroup() {
		Transaction tr = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			tr = session.beginTransaction();
			Query query = session.createQuery("select count(*) from Forums as f where f.status=1 AND f.type<>'group'");
			List list = query.list();
			tr.commit();
			if(list!=null && list.size()>0){
				return Integer.valueOf(list.get(0)+"");
			}
		}catch(HibernateException e){
			if(tr!=null){
				tr.rollback();
			}
			e.printStackTrace();
		}
		return 0;
		
	}
	
	public Forums getHotForumsInfo(){
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		Transaction tr = null;
		try{
			tr = session.beginTransaction();
			String hql = "FROM Forums as fo WHERE fo.status>0 ORDER BY fo.posts DESC";
			Query query = session.createQuery(hql);
			query.setMaxResults(1);
			List<Forums> list = query.list();
			tr.commit();
			if(list.size()>0){
				return list.get(0);
			}
		}catch(HibernateException e){
			if(tr!=null){
				tr.rollback();
			}
			e.printStackTrace();
		}
		return null;
	}
	
	public void updateForumsByHQL(String hql) {
		Transaction transaction = null;
		try{
			SessionFactory factory = HibernateUtil.getSessionFactory();
			Session session = factory.getCurrentSession();
			transaction = session.beginTransaction();
			Query query = session.createQuery(hql);
			query.executeUpdate();
			transaction.commit();
		}catch(Exception exception){
			exception.printStackTrace();
			if(transaction!=null){
				transaction.rollback();
			}
		}
		
	}
}

⌨️ 快捷键说明

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