📄 newsimpl.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 + -