📄 bookdb.java
字号:
package mypack;import java.util.ArrayList;import java.util.Collection;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.logging.Level;import java.util.logging.Logger;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.cfg.Configuration;import org.hibernate.SessionFactory;import org.hibernate.Transaction;/** * Hibernate Utility class with a convenient method to get Session Factory object. * * @author Administrator */public class BookDB { private static final SessionFactory sessionFactory; static { try { // Create the SessionFactory from standard(hibernate.cfg.xml) // config file. sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { // Log the exception. System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public int getNumberOfBooks() { ArrayList books=new ArrayList(); Query q=getOpenSession().createQuery("from BookDetails"); books=(ArrayList)q.list(); return books.size(); } public Collection getBooks() { Query q=getOpenSession().createQuery("from BookDetails"); List list=q.list(); return list; } public BookDetails getBookDetails(String bookId) { BookDetails bd=null; try{ bd=(BookDetails)getOpenSession().load(BookDetails.class, bookId); }catch(Exception e) { return null; } if(bd!=null) return bd; else return null; } public BookDetails getBookByTitle(String title) { BookDetails bd=null; try { Session s=getOpenSession(); Query query=s.createQuery("from BookDetails as bd where bd.title like:title"); query.setString("title", title); bd=(BookDetails)query.uniqueResult(); s.close(); } catch (Exception e) { } if(bd!=null) return bd; else return null; } public BookDetails getBookByName(String name) { BookDetails bd=null; try { Session s=getOpenSession(); Query query=s.createQuery("from BookDetails as bd where bd.name like:name"); query.setString("name", name); bd=(BookDetails)query.uniqueResult(); s.close(); } catch (Exception e) { } if(bd!=null) return bd; else return null; } public Session getOpenSession() { return getSessionFactory().openSession(); } public void buyBooks(ShoppingCart cart) throws Exception { Collection items = cart.getItems(); Iterator i = items.iterator(); try{ while(i.hasNext()) { ShoppingCartItem sci=(ShoppingCartItem) i.next(); BookDetails bd=(BookDetails) sci.getItem(); String id=bd.getBookId(); int quantity=sci.getQuantity(); buyBook(id,quantity); } }catch (Exception ex) { throw ex; } } public void buyBook(String bookId, int quantity) throws Exception { Session s=getOpenSession(); int oldSaleAmount=0; Transaction tx=s.beginTransaction(); try { /*BookDetails book=(BookDetails) s.get(BookDetails.class, bookId); oldSaleAmount=book.getSaleAmount(); book.setSaleAmount(oldSaleAmount+quantity); javax.swing.JOptionPane.showMessageDialog(null, book.getName()); s.update(book); javax.swing.JOptionPane.showMessageDialog(null, book.getName());*/ BookDetails book=(BookDetails) s.get(BookDetails.class, bookId); oldSaleAmount=book.getSaleAmount(); Query query=s.createQuery("update BookDetails as bd set bd.saleAmount=? where bd.bookId=?"); query.setInteger(0, quantity+oldSaleAmount); query.setString(1, bookId); query.executeUpdate(); tx.commit(); }catch(Exception ex){ tx.rollback(); throw ex; }finally{ s.close(); } } public Collection getBookTypeSet() { Session s=getSessionFactory().openSession(); Query q=s.createQuery("from Booktype"); List list=q.list(); return list; } public Booktype getBooktype(String id) { Session session1=getSessionFactory().openSession(); //Query query=session1.createQuery("from Booktype as bt where bt.id=?"); //query.setParameter(0, id); //Booktype bt=(Booktype) query.uniqueResult(); Booktype bt=(Booktype) session1.load(Booktype.class, id); if(bt!=null) return bt; else return null; } public Collection getBooksSort() { Session s=getSessionFactory().openSession(); Query q=s.createQuery("from BookDetails as bd order by bd.saleAmount desc"); List list=q.list(); return list; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -