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