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

📄 bookdao.java

📁 在线读书交流平台
💻 JAVA
字号:
package com.olr.dao;

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

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.olr.beans.Book;
import com.olr.beans.User;
import com.olr.util.Pager;

/**
 * A data access object (DAO) providing persistence and search support for Book
 * entities. Transaction control of the save(), update() and delete() operations
 * can directly support Spring container-managed transactions or they can be
 * augmented to handle user-managed Spring transactions. Each of these methods
 * provides additional information for how to configure it for the desired type
 * of transaction control.
 * 
 * @see com.olr.beans.Book
 * @author MyEclipse Persistence Tools
 */

public class BookDAO extends HibernateDaoSupport implements IBookDAO{


	

	public void deleteBook(int bookId) {
		Object b=this.getHibernateTemplate().load(Book.class,new Integer(bookId));
		this.getHibernateTemplate().delete(b);
		
	}

	
	public Pager getAllBooks(int pageNo, int pageSize) {
        Session session=this.getHibernateTemplate().getSessionFactory().openSession();
        
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.ne("status", 3));
		int rowCount=((Integer)criteria.setProjection(
				Projections.rowCount()).uniqueResult()).intValue();
		criteria.setProjection(null);
		int startIndex=pageSize*(pageNo-1);
		criteria.addOrder(Order.desc("recomCount"));
		criteria.setFirstResult(startIndex);
		criteria.setMaxResults(pageSize);
		List<Book> result=criteria.list();
		session.close();
		
		return new Pager(pageSize,pageNo,rowCount,result);
	}
	
	public Pager getAllBooks(String category,String sort,int pageNo, int pageSize) {
        Session session=this.getHibernateTemplate().getSessionFactory().openSession();
        
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.ne("status", 3));
		criteria.add(Restrictions.eq("category", category));
		int rowCount=((Integer)criteria.setProjection(
				Projections.rowCount()).uniqueResult()).intValue();
		criteria.setProjection(null);
		int startIndex=pageSize*(pageNo-1);
		criteria.addOrder(Order.desc(sort));
		criteria.setFirstResult(startIndex);
		criteria.setMaxResults(pageSize);
		List<Book> result=criteria.list();
		session.close();
		
		return new Pager(pageSize,pageNo,rowCount,result);
	}
		
	
	public Pager getAllBooks(String sort,int pageNo, int pageSize) {
        Session session=this.getHibernateTemplate().getSessionFactory().openSession();
        
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.ne("status", 3));
		int rowCount=((Integer)criteria.setProjection(
				Projections.rowCount()).uniqueResult()).intValue();
		criteria.setProjection(null);
		int startIndex=pageSize*(pageNo-1);
		criteria.addOrder(Order.desc(sort));
		criteria.setFirstResult(startIndex);
		criteria.setMaxResults(pageSize);
		List<Book> result=criteria.list();
		session.close();
		
		return new Pager(pageSize,pageNo,rowCount,result);
	}
	
	
    public Pager getAllWorks(int userId,int pageNo, int pageSize){
        Session session=this.getHibernateTemplate().getSessionFactory().openSession();	
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.eq("userId", userId));
		int rowCount=((Integer)criteria.setProjection(
				Projections.rowCount()).uniqueResult()).intValue();
		criteria.setProjection(null);
		int startIndex=pageSize*(pageNo-1);
		criteria.addOrder(Order.desc("updateTime"));
		criteria.setFirstResult(startIndex);
		criteria.setMaxResults(pageSize);
		List<Book> result=criteria.list();
		session.close();
		return new Pager(pageSize,pageNo,rowCount,result);
    }
    
    
    
    public List<Book> getTopWorks(int userId,int topNum){
         Session session=this.getHibernateTemplate().getSessionFactory().openSession();	
		 Criteria criteria=session.createCriteria(Book.class);
		 criteria.add(Restrictions.eq("userId", userId));
		 criteria.addOrder(Order.desc("updateTime"));
		 criteria.setMaxResults(topNum);
		 List<Book> result=criteria.list();
		 return result;
    }
	
    
    
	public List<User> getAllSubscribers(int bookId) {
		Book book =this.getBookById(bookId);
		Set<User> subscribers =book.getSubscribers();
		List<User> subscribersList=new ArrayList();
		subscribersList.addAll(subscribers);
	
		return subscribersList;
	}

	
	
	public Book getBookById(int bookId) {
		return (Book) this.getHibernateTemplate().get(Book.class,new Integer(bookId));

	}

	
	public Book getBookByName(String bookName) {
		Session session=this.getHibernateTemplate().getSessionFactory().openSession();
		 Criteria criteria=session.createCriteria(Book.class);
		 criteria.add(Restrictions.eq("bookname", bookName));
		 List<Book> result=criteria.list();
		 session.close();
		 return result.get(0);
	}

	public Pager getBooksPagerByCategory(String category, String order,
			int pageNo, int pageSize) {
        Session session=this.getHibernateTemplate().getSessionFactory().openSession();
		
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.ne("status", 3));
		criteria.add(Restrictions.eq("category", category));
		int rowCount=((Integer)criteria.setProjection(
				Projections.rowCount()).uniqueResult()).intValue();
		criteria.setProjection(null);
		int startIndex=pageSize*(pageNo-1);
		criteria.addOrder(Order.desc("order"));
		criteria.setFirstResult(startIndex);
		criteria.setMaxResults(pageSize);
		List<Book> result=criteria.list();
		session.close();
		return new Pager(pageSize,pageNo,rowCount,result); 

	}
	
    public  List<Book> getTopRecomBooks(int topNum){
        Session session=this.getHibernateTemplate().getSessionFactory().openSession();
        
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.ne("status", 3));
		criteria.addOrder(Order.desc("recomCount"));
		criteria.setMaxResults(topNum);
		List<Book> result=criteria.list();
		return result;
    }
    
    public List<Book> getTopCategoryBooks(String category,int topNum){
    	Session session=this.getHibernateTemplate().getSessionFactory().openSession();		
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.ne("status", 3));
		criteria.add(Restrictions.eq("category",category));
		criteria.addOrder(Order.desc("recomCount"));
		criteria.setMaxResults(topNum);
		List<Book> result=criteria.list();
		return result;
    }
    
    
    
    public List<Book> getTopClickBooks(int topNum){
    	Session session=this.getHibernateTemplate().getSessionFactory().openSession();		
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.ne("status", 3));
		criteria.addOrder(Order.desc("clickCount"));
		criteria.setMaxResults(topNum);
		List<Book> result=criteria.list();
		return result;
    }
    
    public List<Book> getTopNewBooks(int topNum){
    	Session session=this.getHibernateTemplate().getSessionFactory().openSession();		
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.eq("status",0));
		criteria.addOrder(Order.desc("updateTime"));
		criteria.setMaxResults(topNum);
		List<Book> result=criteria.list();
		return result;
    }
    
    public List<Book> getTopUpdateBooks(int topNum){
    	Session session=this.getHibernateTemplate().getSessionFactory().openSession();		
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.eq("status",1));
		criteria.addOrder(Order.desc("updateTime"));
		criteria.setMaxResults(topNum);
		List<Book> result=criteria.list();
		return result;
    }

	public void insertBook(Book book) {
		this.getHibernateTemplate().save(book);
		
	}

	
	public Pager searchByBookName(String booknameLike, int pageNo, int pageSize) {
       Session session=this.getHibernateTemplate().getSessionFactory().openSession();
		
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.ne("status", 3));
		criteria.add(Restrictions.ilike("bookname","%"+booknameLike+"%",MatchMode.ANYWHERE));
		int rowCount=((Integer)criteria.setProjection(
				Projections.rowCount()).uniqueResult()).intValue();
		criteria.setProjection(null);
		int startIndex=pageSize*(pageNo-1);
		criteria.addOrder(Order.desc("recomCount"));
		criteria.setFirstResult(startIndex);
		criteria.setMaxResults(pageSize);
		List<Book> result=criteria.list();
		session.close();
		return new Pager(pageSize,pageNo,rowCount,result); 
	}

	public Pager searchByWriter(String writerLike, int pageNo, int pageSize) {
Session session=this.getHibernateTemplate().getSessionFactory().openSession();
		
		Criteria criteria=session.createCriteria(Book.class);
		criteria.add(Restrictions.ne("status", 3));
		criteria.add(Restrictions.ilike("writer","%"+writerLike+"%",MatchMode.ANYWHERE));
		int rowCount=((Integer)criteria.setProjection(
				Projections.rowCount()).uniqueResult()).intValue();
		criteria.setProjection(null);
		int startIndex=pageSize*(pageNo-1);
		criteria.addOrder(Order.desc("recomCount"));
		criteria.setFirstResult(startIndex);
		criteria.setMaxResults(pageSize);
		List<Book> result=criteria.list();
		session.close();
		return new Pager(pageSize,pageNo,rowCount,result); 
	}

	public Pager search(String keyWord, int pageNo, int pageSize) {
				
		    Session session=null;
		    Transaction tx=null;			
			session=this.getSessionFactory().openSession();
			tx=session.beginTransaction();
			String hql = "from Book as b Where b.bookname like ? or b.writer like ? or b.label like ? or b.discription like ?";
	        Query q = session.createQuery(hql) ;
	        q.setString(0, "%" + keyWord + "%");
	        q.setString(1, "%" + keyWord + "%");
	        q.setString(2, "%" + keyWord + "%");
	        q.setString(3, "%" + keyWord + "%");
	        int rowCount=q.list().size();
	        int startIndex=pageSize*(pageNo-1);
	        q.setFirstResult(startIndex);
	        q.setMaxResults(pageSize);
	        List<Book> result=q.list();
			tx.commit();
			session.close();
			return new Pager(pageSize,pageNo,rowCount,result); 
			}

	public Pager searchByLabel(String labelLike, int pageNo, int pageSize) {
		Session session=this.getHibernateTemplate().getSessionFactory().openSession();
				
				Criteria criteria=session.createCriteria(Book.class);
				criteria.add(Restrictions.ne("status", 3));
				criteria.add(Restrictions.ilike("label","%"+labelLike+"%",MatchMode.ANYWHERE));
				int rowCount=((Integer)criteria.setProjection(
						Projections.rowCount()).uniqueResult()).intValue();
				criteria.setProjection(null);
				int startIndex=pageSize*(pageNo-1);
				criteria.addOrder(Order.desc("recomCount"));
				criteria.setFirstResult(startIndex);
				criteria.setMaxResults(pageSize);
				List<Book> result=criteria.list();
				session.close();
				return new Pager(pageSize,pageNo,rowCount,result); 
			}


	public void updateBook(Book book) {
		this.getHibernateTemplate().update(book);
		
	}

	
	
}

⌨️ 快捷键说明

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