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

📄 bookdaohibernateimp.java

📁 此项目是实现,增加,删除,修改,查询图书数据库的功能
💻 JAVA
字号:
/*
 * @(#) User.java 2007/09/01
 * 
 * Copyright 2007 HeiBei Science & Technology University
 * 
 * All rights reserved.
 */
package com.hevttc.book.daohibernate.imp;

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

import net.sf.hibernate.Hibernate;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Query;
import net.sf.hibernate.Session;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.type.Type;

import com.hevttc.book.dao.BookDao;
import com.hevttc.book.domain.Bookinfo;
import com.hevttc.book.template.DaoHibernateTemplate;
import com.hevttc.book.template.ResultSession;

/**
 * 对数据库中书的相关信息进行操作的接口 包括增加,删除,修改,查询,获得最大编号的操作
 * 
 * @author linzhen
 * 
 */
public class BookDaoHibernateImp implements BookDao {

	/**
	 * 通过主键删除一条记录
	 * 
	 * @param pk
	 *            String类型
	 */
	public void delete(final String pk) {

		DaoHibernateTemplate temp = new DaoHibernateTemplate();
		temp.find(new ResultSession() {

			public void resultSessionSet(Session session)
					throws HibernateException {

				Bookinfo book = new Bookinfo();
				session.load(book, new String(pk));

				Transaction ts = session.beginTransaction();
				session.delete(book);
				ts.commit();

			}
		});
	}

	/**
	 * 根据要求查找数据库
	 * 
	 * @param String类型
	 * @return List类型
	 */
	public List find(final String bookname, final String author,
			final String publishcompany) {

		final List list = new ArrayList();
		DaoHibernateTemplate temp = new DaoHibernateTemplate();
		temp.find(new ResultSession() {

			public void resultSessionSet(Session session)
					throws HibernateException {

				List listfind = session
						.find(
								"from Bookinfo as b where b.bkName like ? and b.bkAuthor like ? and b.bkPublish like ?",
								new Object[] { "%" + bookname + "%",
										"%" + author + "%",
										"%" + publishcompany + "%" },
								new Type[] { Hibernate.STRING,
										Hibernate.STRING, Hibernate.STRING });
				list.addAll(listfind);
			}
		});
		return list;
	}

	/**
	 * 查找数据库
	 * 
	 * @return List类型
	 */
	public Bookinfo findByPK(final String pk) {

		final Bookinfo book = new Bookinfo();
		DaoHibernateTemplate temp = new DaoHibernateTemplate();
		temp.find(new ResultSession() {

			public void resultSessionSet(Session session)
					throws HibernateException {
				session.load(book, new String(pk));
			}
		});
		return book;
	}

	public Bookinfo findByPrimaryKey(String pk) {

		return null;

	}

	/**
	 * 查找书籍最大编号
	 * 
	 * @return String类型
	 */
	public String findMaxID() {

		final StringBuffer max = new StringBuffer();
		DaoHibernateTemplate temp = new DaoHibernateTemplate();
		temp.find(new ResultSession() {

			public void resultSessionSet(Session session)
					throws HibernateException {
				String maxid = new String();
				Query q = session
						.createQuery("select max(b.bkId) from Bookinfo as b");
				List list = q.list();
				for (int i = 0; i < list.size(); i++) {
					maxid = (String) list.get(i);
					max.append(maxid);
				}
			}
		});
		return max.toString();
	}

	/**
	 * 将传递的一条记录插入到数据库文件中
	 * 
	 * @param Book类型
	 */
	public void insert(final Bookinfo book) {

		DaoHibernateTemplate temp = new DaoHibernateTemplate();
		temp.find(new ResultSession() {

			public void resultSessionSet(Session session)
					throws HibernateException {
				Transaction ts = session.beginTransaction();
				session.save(book);
				ts.commit();
			}
		});
	}

	/**
	 * 修改一条记录
	 * 
	 * @param book类型
	 */
	public void modify(final Bookinfo book) {

		DaoHibernateTemplate temp = new DaoHibernateTemplate();
		temp.find(new ResultSession() {

			public void resultSessionSet(Session session)
					throws HibernateException {
				Transaction ts = session.beginTransaction();
				Bookinfo modbook = new Bookinfo();
				session.load(modbook, new String(book.getBkId()));
				session.delete(modbook);
				session.save(book);
				ts.commit();
			}
		});
	}

	public List findWithPage(final int pageSize, final int startRow) {

		final List<String> list = new ArrayList<String>();
		DaoHibernateTemplate temp = new DaoHibernateTemplate();

		temp.find(new ResultSession() {

			public void resultSessionSet(Session session)
					throws HibernateException {
				Query q = session.createQuery("from Bookinfo");
				q.setFirstResult(startRow);
				q.setMaxResults(pageSize);
				list.addAll(q.list());
			}
		});
		return list;
	}

	public int getRows() {
		final List list = new ArrayList();

		DaoHibernateTemplate temp = new DaoHibernateTemplate();
		temp.find(new ResultSession() {

			public void resultSessionSet(Session session)
					throws HibernateException {
				list.addAll(session.find("select count(*) from Bookinfo"));
			}
		});
		return (Integer) list.get(0);
	}

	public List findWithPageByTag(final String bookname, final String author,
			final String publishcompany, final int pageSize, final int startRow) {

		final List<String> list = new ArrayList<String>();
		DaoHibernateTemplate temp = new DaoHibernateTemplate();

		temp.find(new ResultSession() {

			public void resultSessionSet(Session session)
					throws HibernateException {
				Query q = session
						.createQuery("from Bookinfo as b where b.bkName like ? and b.bkAuthor like ? and b.bkPublish like ?");
				q.setString(0, "%" + bookname + "%");
				q.setString(1, "%" + author + "%");
				q.setString(2, "%" + publishcompany + "%");
				q.setFirstResult(startRow);
				q.setMaxResults(pageSize);
				list.addAll(q.list());
			}
		});
		return list;
	}

	public int getRowsByTag(final String bookname, final String author,
			final String publishcompany) {
		final List list = new ArrayList();

		DaoHibernateTemplate temp = new DaoHibernateTemplate();
		temp.find(new ResultSession() {

			public void resultSessionSet(Session session)
					throws HibernateException {
				List listfind = session
				.find(
						"select count(*) from Bookinfo as b where b.bkName like ? and b.bkAuthor like ? and b.bkPublish like ?",
						new Object[] { "%" + bookname + "%",
								"%" + author + "%",
								"%" + publishcompany + "%" },
						new Type[] { Hibernate.STRING,
								Hibernate.STRING, Hibernate.STRING });
				list.addAll(listfind);
			}
		});
		return (Integer) list.get(0);
	}

}

⌨️ 快捷键说明

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