bookdaoimpl.java

来自「实现图书的借阅和管理信息化」· Java 代码 · 共 347 行

JAVA
347
字号
package com.moonman.libraryManager.model.daoImpl;

import java.sql.SQLException;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.springframework.dao.DataAccessResourceFailureException;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.moonman.libraryManager.model.dao.BookDAO;
import com.moonman.libraryManager.model.vo.Books;
import com.moonman.libraryManager.model.vo.Store;

public class BookDAOImpl extends HibernateDaoSupport implements BookDAO {

	// 对没一页的数据进行查询
	public List<Books> getBookByPageIndexAndContition(String type,
			String content, int pageSize, int startRow) {
		Session session = this.getSession();
		try {
			String hql = "from Books where title like ?";
			if (type.equals("作者")) {
				hql = "from Books where author like ?";
			} else if (type.equals("类型")) {
				hql = "from Books where tslx like ?";
			}
			Query query = session.createQuery(hql).setString(0,
					"%" + content + "%");
			query.setMaxResults(pageSize);
			query.setFirstResult(startRow);
			List<Books> lst = query.list();
			return lst;
		} catch (HibernateException e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
		return null;
	}

	public List<Books> getBookByContition(String type, String content) {
		Session session = this.getSession();
		try {
			String hql = "from Books where title like ?";
			if (type.equals("作者")) {
				hql = "from Books where author like ?";
			} else if (type.equals("类型")) {
				hql = "from Books where tslx like ?";
			}
			Query query = session.createQuery(hql).setString(0,
					"%" + content + "%");
			return query.list();
		} catch (HibernateException e) {
			e.printStackTrace();
		} finally {
			session.close();
		}
		return null;
	}

	// 根据图书isbn查询图书馆藏地信息
	public Books getStoreByIsbn(final String classId) {
		Session session = this.getSession();
		try {
			Query query = session.createQuery("from Books where classId=?");
			query.setString(0, classId);
			return (Books) query.uniqueResult();
		} catch (DataAccessResourceFailureException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalStateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 添加一本新图书
	 * 
	 * @param book
	 * @return
	 */
	public boolean addBook(Books book) {
		Session session = this.getSession();
		Transaction tx = session.beginTransaction();
		try {
			session.save(book);
			tx.commit();
			return true;
		} catch (HibernateException e) {
			if (tx != null) {
				tx.rollback();
			}
			e.printStackTrace();
		} finally {
			session.close();
		}
		return false;
	}

	/**
	 * 获得官舱表中最大的索取号
	 * 
	 * @return
	 */
	public Store getSQH() {
		Session session = this.getSession();
		try {
			Query query = session
					.createQuery("from Store where sqh = (select max(sqh) from Store)");
			return (Store) query.uniqueResult();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			session.close();
		}
		return null;
	}

	/**
	 * 根据类型编号删除图书类型
	 * 
	 * @param classId
	 * @return
	 */
	public boolean deleteBookByClassId(String classId) {
		Session session = this.getSession();
		Transaction tx = session.beginTransaction();
		try {
			Books book = this.getBookByClassId(classId);
			session.delete(book);
			tx.commit();
			return true;
		} catch (HibernateException e) {
			if (tx != null) {
				tx.rollback();
			}
			e.printStackTrace();
		} finally {
			session.close();
		}
		return false;
	}

	/**
	 * 根据图书编号查询图书官舱信息
	 * 
	 * @param classId
	 * @return
	 */
	public Books getBookByClassId(final String classId) {
		Books book = (Books) this.getHibernateTemplate().execute(
				new HibernateCallback() {
					public Object doInHibernate(Session session)
							throws HibernateException, SQLException {
						return session.get(Books.class, new Integer(classId));
					}
				});
		return book;
	}

	/**
	 * 修改图书信息
	 * 
	 * @param book
	 * @return
	 */
	public boolean modifyBookByBook(Books book) {
		Session session = this.getSession();
		Transaction tx = session.beginTransaction();
		try {
			session.update(book);
			tx.commit();
			return true;
		} catch (HibernateException e) {
			if (tx != null) {
				tx.rollback();
			}
			e.printStackTrace();
		} finally {
			session.close();
		}
		return false;
	}

	/**
	 * 修改图书上架信息根据图书种类编号
	 * 
	 * @param classId
	 * @return
	 */
	public boolean modifyBookStatus(Books book, String status) {
		Session session = this.getSession();
		Transaction tx = session.beginTransaction();
		try {
			Query query = session
					.createQuery("update Store set skzt=? where books=?");
			query.setString(0, status).setEntity(1, book);
			int flag = query.executeUpdate();
			tx.commit();
			return flag > 0;
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			if (tx != null) {
				tx.rollback();
			}
			e.printStackTrace();
		} finally {
			session.close();
		}
		return false;
	}

	/**
	 * 根据管藏编号更新管藏信息
	 * 
	 * @param storeId
	 * @param status
	 * @return
	 */
	public boolean modifyStoreByStatus(Integer storeId, String status) {
		Session session = this.getSession();
		Transaction tx = session.beginTransaction();
		try {
			Query query = session
					.createQuery("update Store set skzt=? where bookId=?");
			query.setString(0, status);
			query.setInteger(1, new Integer(storeId));
			int flag = query.executeUpdate();
			tx.commit();
			return flag > 0;
		} catch (HibernateException e) {
			if (tx != null) {
				tx.rollback();
			}
			e.printStackTrace();
		} finally {
			session.close();
		}
		return false;
	}

	/**
	 * 根据索取号更新管藏图书信息
	 * 
	 * @param storeId
	 * @param status
	 * @return
	 */
	public boolean modifyStoreBySqh(Integer sqh, String status) {
		Session session = this.getSession();
		Transaction tx = session.beginTransaction();
		try {
			Query query = session
					.createQuery("update Store set skzt=? where sqh=?");
			query.setString(0, status);
			query.setInteger(1, new Integer(sqh));
			int flag = query.executeUpdate();
			tx.commit();
			return flag > 0;
		} catch (HibernateException e) {
			if (tx != null) {
				tx.rollback();
			}
			e.printStackTrace();
		} finally {
			session.close();
		}
		return false;
	}

	/**
	 * 根据索取号和图书状态查询图书信息
	 * 
	 * @param sqh
	 * @param status
	 * @return
	 */
	public Store getStoreByStore(Integer sqh, String status) {
		Session session = this.getSession();
		String[] str = status.split(",");
		try {
			Query query = null;
			if (str.length > 1) {
				query = session.createQuery(
						"from Store where sqh=? and (skzt=? or skzt=?)")
						.setInteger(0, sqh).setString(1, str[0]).setString(2,
								str[1]);
			} else {
				query = session
						.createQuery("from Store where sqh=? and skzt=?")
						.setInteger(0, sqh).setString(1, status);
			}
			return (Store) query.uniqueResult();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

	/**
	 * 根据管藏表对象更新书馆藏信息
	 * 
	 * @param store
	 *            馆藏对象
	 * @return 是否更新成功
	 */
	public boolean modifyStoreByStore(Store store) {
		Session session = this.getSession();
		Transaction tx = session.beginTransaction();
		try {
			session.update(store);
			tx.commit();
			return true;
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			session.close();
		}
		return false;
	}

	/**
	 * 根据图书名字进行模糊查询
	 * 
	 * @param name
	 * @return
	 */
	public List<Books> getBooksLikeName(String name) {
		Session session = this.getSession();
		Query query = session.createQuery("from Books where title like :name")
				.setParameter("name", "%" + name + "%");
		return query.list();
	}
}

⌨️ 快捷键说明

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