bookdaoimpl.java

来自「有简单的网上书店需求及设计流程」· Java 代码 · 共 208 行

JAVA
208
字号
package org.wiely.dao.impl;

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

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.wiely.dao.BookDAO;
import org.wiely.vo.Book;

public class BookDAOImpl extends BaseDAO implements BookDAO {

	@Override
	public void delBook(int bookid) throws Exception {
		Session session = getSession();
		Transaction tx = session.beginTransaction();
		Book book = (Book) session.get(Book.class, bookid);
		session.delete(book);
		tx.commit();
		session.close();
	}

	@SuppressWarnings("unchecked")
	@Override
	public List getNewBooks() throws Exception {
		Session session = getSession();
		Query query;
		List l = new ArrayList();

		String hql = "from Book b where b.isnew = '是'";
		query = session.createQuery(hql);
		List list = query.list();
		session.close();
		for (int i = 0; i < list.size(); i++) {
			Book book = new Book();
			book = (Book) list.get(i);
			l.add(book);
		}

		return l;
	}

	@Override
	public void insertBook(Book book) throws Exception {
		Session session = getSession();
		Transaction tx = session.beginTransaction();
		session.save(book);
		tx.commit();
		session.close();

	}

	@SuppressWarnings("unchecked")
	@Override
	public List queryAllBooks(int currentPage, int pageSize) throws Exception {

		Session session = getSession();
		Query query;
		List l = new ArrayList();

		String hql = "from Book b";
		query = session.createQuery(hql);
		int startRow = (currentPage - 1) * pageSize;
		query.setFirstResult(startRow);
		query.setMaxResults(pageSize);

		List list = query.list();
		session.close();
		for (int i = 0; i < list.size(); i++) {
			Book book = new Book();
			book = (Book) list.get(i);
			l.add(book);
		}

		return l;
	}

	@SuppressWarnings("unchecked")
	@Override
	public Book queryBookByBookisbn(String bookisbn) throws Exception {
		Session session = getSession();
		Query query;

		String hql = "from Book b where b.isbn= ?";
		query = session.createQuery(hql);
		query.setParameter(0, bookisbn);
		List list = query.list();

		if (list.size() == 1) {
			Book book = (Book) list.get(0);
			session.close();
			return book;
		} else {
			session.close();
			return null;
		}

	}

	@SuppressWarnings("unchecked")
	@Override
	public List queryBooksByAdminid(int adminid, int currentPage, int pageSize)
			throws Exception {
		Session session = getSession();
		Query query;
		List l = new ArrayList();

		String hql = "from Book b where b.adminid=" + adminid;
		query = session.createQuery(hql);
		int startRow = (currentPage - 1) * pageSize;
		query.setFirstResult(startRow);
		query.setMaxResults(pageSize);

		List list = query.list();
		session.close();
		for (int i = 0; i < list.size(); i++) {
			Book book = new Book();
			book = (Book) list.get(i);
			l.add(book);
		}

		return l;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List queryBooksByName(String bookname, int currentPage, int pageSize)
			throws Exception {
		Session session = getSession();
		Query query;
		List l = new ArrayList();

		String hql = "from Book b where b.bookname like '" + bookname + "%'";
		query = session.createQuery(hql);
		int startRow = (currentPage - 1) * pageSize;
		query.setFirstResult(startRow);
		query.setMaxResults(pageSize);
		List list = query.list();
        
		session.close();
		for (int i = 0; i < list.size(); i++) {
			Book book = new Book();
			book = (Book) list.get(i);
			l.add(book);
		}

		return l;
	}

	@Override
	public void updateBook(Book book) throws Exception {
		Session session = getSession();
		Transaction tx = session.beginTransaction();
		session.update(book);
		tx.commit();
		session.close();

	}

	@SuppressWarnings("unchecked")
	@Override
	public int getTotalRecords() throws Exception {
		Session session = getSession();
		Query query;

		String hql = "from Book b";
		query = session.createQuery(hql);

		List list = query.list();
		int totalSize = list.size();

		session.close();
		return totalSize;
	}

	@SuppressWarnings("unchecked")
	@Override
	public int getTotalRecordsByadminid(int adminid) throws Exception {
		Session session = getSession();
		Query query;
		String hql = "from Book b where b.adminid=" + adminid;
		query = session.createQuery(hql);

		List list = query.list();

		int totalSize = list.size();
        session.close();
		return totalSize;
	}

	@SuppressWarnings("unchecked")
	@Override
	public int getTotalRecordsBybookname(String bookname) throws Exception {
		Session session = getSession();
		Query query;

		String hql = "from Book b where b.bookname like '" + bookname + "%'";
		query = session.createQuery(hql);

		List list = query.list();
		int totalSize = list.size();
        session.close();
		return totalSize;
	}

}

⌨️ 快捷键说明

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