bookserviceimpl.java
来自「一个基本的图书馆管理系统」· Java 代码 · 共 532 行 · 第 1/2 页
JAVA
532 行
modcategory.setRemark(category.getRemark());
categoryDao.update(modcategory);
//提交
session.getTransaction().commit();
}
public List getSortCategorys() throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//组建CategoryDao对象
CategoryDao categoryDao = new CategoryDaoImpl(session);
//查询
List list = categoryDao.getCategorys();
return sortCategorys(list);
}
/**
* 排序分类
* @param list
* @return
*/
private List sortCategorys(List list){
if(list == null){
return null;
}
Category c1 = null, c2 = null;
int count = list.size();
int i = 0, j = 0, k = 0;
boolean bl = false;
if (count > 0) {
for (i = 0; i < count; i++) {
bl = false;
for (j = i + 1; j < count; j++) {
c1 = (Category) list.get(i);
c2 = (Category) list.get(j);
if (c1.getParentNo() == c2.getCategoryNo()) {
list.set(i, c2);
list.set(j, c1);
bl = true;
}
}
if (bl) {
i--;
}
} // for i count
for (i = 0; i < count; i++) {
for (j = i + 1; j < count; j++) {
c1 = (Category) list.get(i);
c2 = (Category) list.get(j);
if (c2.getParentNo() == c1.getCategoryNo()) {
list.remove(j);
list.add(i + 1, c2);
} // if
} // for j count
} // for i count
} // if count > 0
return list;
}
public Book getBook(int bookNo) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//组建BookDao对象
BookDao bookDao = new BookDaoImpl(session);
//查询
return bookDao.get(bookNo);
}
public List getCategorysBooks(int categoryNo) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//组建CategoryDao对象
CategoryDao categoryDao = new CategoryDaoImpl(session);
List list = categoryDao.getCategorys(categoryNo);
//得到分类下的图书数
if(list != null){
//组建BookDao对象
BookDao bookDao = new BookDaoImpl(session);
for(int i=0; i<list.size(); i++){
Category category = (Category)list.get(i);
int count = bookDao.getBookCountByCategory(category.getCategoryNo());
category.setBookCount(count);
list.set(i, category);
}
}
//查询
return categoryDao.getCategorys(categoryNo);
}
public String getCategoryFullName(int categoryNo) throws ActionException {
String fullname = "";
//循环查询分类,直到根分类
Category category = null;
do{
category = getCategory(categoryNo);
if(category != null){
fullname = "/" + category.getName() + fullname;
categoryNo = category.getParentNo();
}
}while(category != null && category.getParentNo() != 0);
return fullname;
}
public PageResult getBooksByCategory(int categoryNo, PageBean pageBean) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//组建BookDao对象
BookDao bookDao = new BookDaoImpl(session);
//查询
return bookDao.getBooksByCategory(categoryNo, pageBean);
}
public void delBook(int bookNo) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
session.beginTransaction();
//组建CategoryDao对象
BookDao bookDao = new BookDaoImpl(session);
//判断是否存在图书
Book book = bookDao.get(bookNo);
if (book == null) { //不存在图书
//回滚
session.getTransaction().rollback();
log.debug("不存在此图书,delBook()失败");
throw new NotFindActionException("不存在此图书");
}
//删除与分类关系
try {
bookDao.delBookCategoryByBook(bookNo);
bookDao.remove(book);
} catch (HibernateException e) { //删除错误,回滚
//回滚
session.getTransaction().rollback();
log.debug("可能存在其它引用,delBook()失败");
throw new ExistReferActionException("此图书可能存在引用,请先删除相关引用");
}
//提交
session.getTransaction().commit();
}
public void modBook(Book book, FormFile imageFile, String appPath, int[] categoryNos) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
session.beginTransaction();
//组建BookDao对象
BookDao bookDao = new BookDaoImpl(session);
//得到修改图书信息
Book modbook = bookDao.get(book.getBookNo());
modbook.setName(book.getName());
modbook.setAuthor(book.getAuthor());
modbook.setBookMan(book.getBookMan());
modbook.setBrief(book.getBrief());
modbook.setIsbn(book.getIsbn());
if(imageFile != null
&& imageFile.getFileName() != null
&& !imageFile.getFileName().trim().equals("")){
modbook.setImageFile(imageFile.getFileName());
}
modbook.setPrice(book.getPrice());
modbook.setPublishDate(book.getPublishDate());
bookDao.update(modbook);
if(imageFile != null
&& imageFile.getFileName() != null
&& !imageFile.getFileName().trim().equals("")){
//保存图片到"/images/book/" + bookNo目录下
//去掉appPath结尾的/或\
if (appPath != null) {
if (appPath.endsWith(File.separator)) {
appPath = appPath.substring(0, appPath.length() - 1);
}
}
String path = appPath + File.separator + "images" + File.separator
+ "book" + File.separator + book.getBookNo();
if (saveFile(imageFile, path) < 0) { //保存失败
log.error("保存图书图片失败");
//回滚
session.getTransaction().rollback();
throw new SaveBookImageFailActionException("保存图书图片失败");
}
}
//处理分类关系
//删除原有分类关系
bookDao.delBookCategoryByBook(book.getBookNo());
//增加分类关系
if(categoryNos != null){
for(int i=0; i<categoryNos.length; i++){
BookCategory bookcategory = new BookCategory();
bookcategory.setBookNo(book.getBookNo());
bookcategory.setCategoryNo(categoryNos[i]);
bookDao.save(bookcategory);
}
}
//提交
session.getTransaction().commit();
}
public String[] getCategoryNosByBook(int bookNo) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//组建BookDao对象
BookDao bookDao = new BookDaoImpl(session);
List list = bookDao.getBookCategoryByBook(bookNo);
String[] result = null;
if(list != null){
result = new String[list.size()];
for(int i=0; i<list.size(); i++){
BookCategory bookcategory = (BookCategory)list.get(i);
result[i] = String.valueOf(bookcategory.getCategoryNo());
}
}else{
result = new String[0];
}
return result;
}
public PageResult findBooksByKey(String findKey, int findType, PageBean pageBean) throws ActionException {
//得到当前Session
Session session = HibernateSessionFactory.getSession();
//组建BookDao对象
BookDao bookDao = new BookDaoImpl(session);
PageResult pageresult = null;
//查询
if(findType == 0){ //图书名称
pageresult = bookDao.findBooksByProperty("name", findKey, pageBean);
}else if(findType == 1){ //图书作者
pageresult = bookDao.findBooksByProperty("author", findKey, pageBean);
}else if(findType == 2){ //出版商
pageresult = bookDao.findBooksByProperty("bookMan", findKey, pageBean);
}else if(findType == 3){ //图书简介
pageresult = bookDao.findBooksByProperty("brief", findKey, pageBean);
}else{//图书名称
pageresult = bookDao.findBooksByProperty("name", findKey, pageBean);
}
return pageresult;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?