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

📄 postsdaoimpl.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	public boolean deletePostsIDArray(List deleteList) {
		StringBuffer updateThreadsSQL = new StringBuffer(
				"update Threads as t set t.displayorder=-1,t.moderated=1 where t.tid in (select p.tid from Posts as p where p.pid in (");
		StringBuffer updatePostsSQL = new StringBuffer(
				"update Posts as p set p.invisible=-1 where p.pid in (");
		for (int i = 0; i < deleteList.size(); i++) {
			updateThreadsSQL.append(deleteList.get(i) + ",");
			updatePostsSQL.append(deleteList.get(i) + ",");
		}
		String updateThreadssql = updateThreadsSQL.substring(0,
				updateThreadsSQL.length() - 1);
		updateThreadssql = updateThreadssql + "))";
		String strsql = updatePostsSQL
				.substring(0, updatePostsSQL.length() - 1);
		strsql = strsql + ")";

		try {
			updateSQL(updateThreadssql);
			updateSQL(strsql);
		} catch (Exception e) {
			return false;
		}
		return true;
	}
	public boolean ignorePostsIDArray(List ignoreList) {
		StringBuffer updateThreadsSQL = new StringBuffer(
				"update Threads as t set t.displayorder=-3,t.moderated=0 where t.tid in (select p.tid from Posts as p where p.pid in (");
		StringBuffer updatePostsSQL = new StringBuffer(
				"update Posts as p set p.invisible=-2 where p.pid in (");
		for (int i = 0; i < ignoreList.size(); i++) {
			updateThreadsSQL.append(ignoreList.get(i) + ",");
			updatePostsSQL.append(ignoreList.get(i) + ",");
		}
		String updateThreadssql = updateThreadsSQL.substring(0,
				updateThreadsSQL.length() - 1);
		updateThreadssql = updateThreadssql + "))";
		String strsql = updatePostsSQL
				.substring(0, updatePostsSQL.length() - 1);
		strsql = strsql + ")";

		try {
			updateSQL(updateThreadssql);
			updateSQL(strsql);
		} catch (Exception e) {
			return false;
		}

		return true;
	}
	public Posts findByTid(Integer tid) {
		Posts p = null;
		Transaction tr = null;
		try {
			Session session = HibernateUtil.getSessionFactory().openSession();
			tr = session.beginTransaction();
			Query query = session.createQuery("from Posts as p where p.tid = " + tid
					+ " and p.first =1 ");
			List<Posts> postsList = query.list();
			tr.commit();
			if(postsList.size()>0){
				p = postsList.get(0);
			}
		} catch (HibernateException he) {
			if(tr!=null){
				tr.rollback();
			}
			he.printStackTrace();
		} 
		return p;
	}
	public Posts findPostByThreadId(int tid) {
		Transaction tr = null;
		try {
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			tr = session.beginTransaction();
			Query query = session.createQuery("from Posts as p where p.tid=? and first = 1");
			query.setParameter(0, tid);
			List<Posts> list = query.list();
			tr.commit();
			if(list!=null && list.size()>0){
				return list.get(0);
			}
		} catch (Exception e) {
			e.printStackTrace();
			if(tr!= null){
				tr.rollback();
			}
		}
		return null;
	}

	public int findPostCount() {
		Transaction tr = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			tr = session.beginTransaction();
			Query query = session.createQuery("select count(*) from Posts");
			List list = query.list();
			tr.commit();
			if(list!=null && list.size()>0){
				return Integer.valueOf(list.get(0)+"");
			}
		}catch(Exception e){
			if(tr!=null){
				tr.rollback();
			}
			e.printStackTrace();
		}
		return 0;
	}

	public int findPostCountByHql(String hql) {
		Session session = null;
		Transaction tran = null;
		Query query = null;
		try {
			session = HibernateUtil.getSessionFactory().getCurrentSession();
			tran = session.beginTransaction();
			query = session.createQuery(hql);
			List list = query.list();
			tran.commit();
			if(list!=null && list.size()>0){
				return (Integer)list.get(0);
			}
		} catch (HibernateException e) {
			if(tran!=null){
				tran.rollback();
			}
			e.printStackTrace();
		}
		return 0;
	}
	
	public List<Posts> getPostsListByPidList(List<Integer> pidList) {
		Transaction tr = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			tr = session.beginTransaction();
			List<Posts> list = new ArrayList<Posts>();
			for(int i = 0;i<pidList.size();i++){
				list.add((Posts)session.get(Posts.class, pidList.get(i)));
			}
			tr.commit();
			return list;
		}catch(Exception e){
			if(tr!=null){
				tr.rollback();
			}
			e.printStackTrace();
		}
		return null;
	}
	
	
	public Map<String,String> getBestmemAndBestmemposts(Integer nowTime){
		Transaction tr = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			tr = session.beginTransaction();
			String hql = "SELECT author,COUNT(*) FROM Posts WHERE dateline>=? AND invisible=0 AND authorid>0 GROUP BY author";
			Query query = session.createQuery(hql);
			query.setInteger(0, nowTime);
			List list = query.list();
			tr.commit();
			Iterator iterator = list.iterator();
			Integer count = 0;
			String author = null;
			while(iterator.hasNext()){
				Object[] objects = (Object[])iterator.next();
				String authorTemp = objects[0].toString();
				Integer countTemp = (Integer)objects[1];
				if(countTemp>count){
					count = countTemp;
					author = authorTemp;
				}
			}
			Map<String,String> map = new HashMap<String, String>();
			if(count!=0){
				map.put("bestmem", author);
			}else{
				map.put("bestmem", "None");
			}
			map.put("bestmemposts", count.toString());
			return map;
		}catch(Exception exception){
			if(tr!=null){
				tr.rollback();
			}
			exception.printStackTrace();
			return null;
		}
	}
	public Map<String,String> getPostsAndRuntime(){
		Transaction tr = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			tr = session.beginTransaction();
			String hql = "SELECT COUNT(*), (MAX(dateline)-MIN(dateline))/86400 FROM Posts";
			Query query = session.createQuery(hql);
			List list = query.list();
			tr.commit();
			Iterator iterator = list.iterator();
			while(iterator.hasNext()){
				Object[] objects = (Object[])iterator.next();
				Map<String,String> map = new HashMap<String, String>();
				map.put("posts", objects[0].toString());
				map.put("runtime", (objects[1]==null||(Integer)objects[1]<1)?"1":objects[1].toString());
				return map;
			}
		}catch(Exception exception){
			if(tr!=null){
				tr.rollback();
			}
			exception.printStackTrace();
		}
		return null;
	}
	public Integer getPostsaddtoday(){
		Transaction tr = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			tr = session.beginTransaction();
			String hql = "SELECT COUNT(*) FROM Posts WHERE dateline>=? AND invisible=?";
			Query query = session.createQuery(hql);
			Integer nowTime = Integer.valueOf((Calendar.getInstance().getTimeInMillis()+"").substring(0, 10));
			query.setInteger(0, nowTime-86400);
			query.setByte(1, (byte)0);
			List list = query.list();
			tr.commit();
			return (Integer)list.get(0);
		}catch(Exception exception){
			if(tr!=null){
				tr.rollback();
			}
			exception.printStackTrace();
		}
		return null;
	}
	public List<Posts> findPostByhql(String hql, int start, int max) {
		Session session = null;
		Transaction trs = null;
		try{
			session = HibernateUtil.getSessionFactory().getCurrentSession();
			trs = session.beginTransaction();
			Query query = session.createQuery(hql);
			query.setFirstResult(start);
			query.setMaxResults(max);
			List<Posts> postlist = query.list();
			trs.commit();
			return postlist;
		}catch(HibernateException e){
			if(trs!=null){
				trs.rollback();
			}
			e.printStackTrace();
		}
		return null;
	}
	public boolean updatePosts(Posts post) {
		Transaction tr = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			tr = session.beginTransaction();
			session.update(post);
			tr.commit();
			return true;
		}catch(HibernateException e){
			if(tr!=null){
				tr.rollback();
			}
			e.printStackTrace();
		}
		return false;
	}
	public int saveOrupdatePosts(Posts post) {
		Transaction tr = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			tr = session.beginTransaction();
			session.saveOrUpdate(post);
			tr.commit();
			return post.getPid();
		}catch(HibernateException e){
			if(tr!=null){
				tr.rollback();
			}
			e.printStackTrace();
		}
		return 0;
	}
	
	public List<Posts> getPostsListByTid(Integer tid) {

		Transaction transaction = null;
		try {
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			transaction = session.beginTransaction();
			String hql = "FROM Posts as p WHERE p.tid=?";
			Query query = session.createQuery(hql);
			query.setInteger(0, tid);
			List<Posts> postsList = query.list();
			transaction.commit();
			return postsList;
		} catch (Exception exception) {
			exception.printStackTrace();
			if (transaction != null) {
				transaction.rollback();
			}
		}
		return null;
	}
	
	public void deletePosts(List<Integer> pidList) {
		Transaction transaction = null;
		try {
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			transaction = session.beginTransaction();
			for(int i = 0;i<pidList.size();i++){
				session.delete(session.get(Posts.class, pidList.get(i)));
			}
		} catch (Exception exception) {
			exception.printStackTrace();
			if (transaction != null) {
				transaction.rollback();
			}
		}
		
	}
	public Posts getLastPosts(Integer tid) {
		Transaction transaction = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			transaction = session.beginTransaction();
			String hql = "FROM Posts as p WHERE p.tid=? AND p.invisible=0 ORDER BY p.dateline DESC";
			Query query = session.createQuery(hql);
			query.setInteger(0, tid);
			query.setMaxResults(1);
			List<Posts> postsList = query.list();
			transaction.commit();
			if(postsList.size()>0){
				return postsList.get(0);
			}else{
				return null;
			}
		}catch(Exception exception){
			exception.printStackTrace();
			if(transaction!=null){
				transaction.rollback();
			}
			return null;
		}
	}
	public Posts getLastPosts(Short fid) {
		Transaction transaction = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			transaction = session.beginTransaction();
			String hql = "FROM Posts as p WHERE p.fid=? AND p.invisible=0 ORDER BY p.dateline DESC";
			Query query = session.createQuery(hql);
			query.setShort(0, fid);
			query.setMaxResults(1);
			List<Posts> postsList = query.list();
			transaction.commit();
			if(postsList.size()>0){
				return postsList.get(0);
			}else{
				return null;
			}
		}catch(Exception exception){
			exception.printStackTrace();
			if(transaction!=null){
				transaction.rollback();
			}
			return null;
		}
	}
	public Posts getFirstPosts(Integer tid) {
		Transaction transaction = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			transaction = session.beginTransaction();
			String hql = "FROM Posts as p WHERE p.tid=? AND p.invisible=0 ORDER BY p.dateline ASC LIMIT 1";
			Query query = session.createQuery(hql);
			query.setInteger(0, tid);
			List<Posts> postsList = query.list();
			transaction.commit();
			if(postsList.size()>0){
				return postsList.get(0);
			}else{
				return null;
			}
		}catch(Exception exception){
			exception.printStackTrace();
			if(transaction!=null){
				transaction.rollback();
			}
			return null;
		}
	}
	
	public void updatePosts(List<Posts> postsList) {
		Transaction transaction = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			transaction = session.beginTransaction();
			for(int i = 0;i<postsList.size();i++){
				session.update(postsList.get(i));
			}
			transaction.commit();
		}catch(Exception exception){
			exception.printStackTrace();
			if(transaction!=null){
				transaction.rollback();
			}
		}
	}
	
	public Integer getCountOfReplyForTopic(Integer topicId) {
		Transaction transaction = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			transaction = session.beginTransaction();
			String hql = "SELECT COUNT(*) FROM Posts AS p WHERE p.tid=? AND invisible=0";
			Query query = session.createQuery(hql);
			query.setInteger(0, topicId);
			List<Integer> list = query.list();
			transaction.commit();
			if(list!=null){
				return list.get(0)-1;
			}else{
				throw new Exception("查询结果为 NULL");
			}
		}catch(Exception exception){
			exception.printStackTrace();
			if(transaction!=null){
				transaction.rollback();
			}
			return null;
		}
	}
	public void updatePostsByHQL(String hql) {
		Transaction transaction = null;
		try{
			Session session = HibernateUtil.getSessionFactory().getCurrentSession();
			transaction = session.beginTransaction();
			Query query = session.createQuery(hql);
			query.executeUpdate();
			transaction.commit();
		}catch(Exception exception){
			if(transaction!=null){
				transaction.rollback();
			}
		}
	}
}

⌨️ 快捷键说明

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