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 + -
显示快捷键?