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

📄 newsimpl.java

📁 学校新闻发布系统
💻 JAVA
字号:
package org.news.impl;

import java.util.Iterator;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Order;
import org.news.dao.INews;
import org.news.hsf.HibernateSessionFactory;
import org.news.pojo.News;
import org.news.pojo.NewsType;

public class NewsImpl implements INews {
	private Session session;
	private Transaction tx;

	public List findByAuthor(String name) {
		List list = null;
		session = HibernateSessionFactory.getSession();
		tx = session.beginTransaction();
		Query query = session.createQuery("from News n where n.author = ?");
		query.setString(0, name);
		list = query.list();
		tx.commit();
		return list;
	}

	public List findByNewsType(NewsType newsType) {
		session = HibernateSessionFactory.getSession();
		tx = session.beginTransaction();
		Criteria criteria = session.createCriteria(News.class);
		criteria.add(Expression.eq("newsType", newsType));
		criteria.addOrder(Order.desc("addTime"));
		criteria.setMaxResults(5);
		List newsList = criteria.list();
		tx.commit();
		return newsList;
	}

	public List queryAll() {
		session = HibernateSessionFactory.getSession();
		tx = session.beginTransaction();
		Query query = session.createQuery("from News");
		List newsList = query.list();
		tx.commit();
		return newsList;
	}

	public News findById(Integer id) {
		session = HibernateSessionFactory.getSession();
		tx = session.beginTransaction();
		News news = (News) session.load(News.class, id);
		tx.commit();
		return news;
	}

	public int findCountByNewsType(NewsType newsType) {
		int count = 0;
		session = HibernateSessionFactory.getSession();
		tx = session.beginTransaction();
		Criteria criteria = session.createCriteria(News.class);
		criteria.add(Expression.eq("newsType", newsType));
		criteria.setProjection(Projections.count("id"));
		List countList = criteria.list();
		tx.commit();
		HibernateSessionFactory.closeSession();
		for (Iterator iterator = countList.iterator(); iterator.hasNext();) {
			Integer counts = (Integer) iterator.next();
			count = counts.intValue();
		}
		return count;
	}

	public List findByNewsType(NewsType newsType, int pageSize, int startRow) {
		session = HibernateSessionFactory.getSession();
		tx = session.beginTransaction();
		Criteria criteria = session.createCriteria(News.class);
		criteria.add(Expression.eq("newsType", newsType));
		criteria.addOrder(Order.desc("addTime"));
		criteria.setFirstResult(startRow);
		criteria.setMaxResults(pageSize);
		List newsList = criteria.list();
		tx.commit();
		return newsList;
	}

	public boolean create(News news) {
		boolean flag = false;
		session = HibernateSessionFactory.getSession();
		tx = session.beginTransaction();
		try {
			session.save(news);
			flag = true;
		} catch (Exception ex) {
			ex.printStackTrace();
			flag = false;
		}
		tx.commit();
		return flag;
	}

	public boolean updateNews(News news) {
		boolean flag = false;
		session = HibernateSessionFactory.getSession();
		tx = session.beginTransaction();
		try {
			session.update(news);
			flag = true;
		} catch (Exception ex) {
			ex.printStackTrace();
			flag = false;
		}
		return flag;
	}

	public boolean deleteNews(Integer id) {
		boolean flag = false;
		session = HibernateSessionFactory.getSession();
		tx = session.beginTransaction();
		try {
			session.delete(session.load(News.class, id));
			flag = true;
		} catch (Exception ex) {
			ex.printStackTrace();
			flag = false;
		}
		return flag;
	}
}

⌨️ 快捷键说明

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