?? 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 + -