欢迎来到天天文库
浏览记录
ID:25763141
大小:45.50 KB
页数:6页
时间:2018-11-22
《hibernate 开发购物车应用程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、简介在本篇中,我们有两个目的:首先,我们想实现一个Hibernate数据库更新(实际上是一个“插入”操作),它涉及到两个数据库表格(Driver和Car)之间的“一对多”的关系。注意,我们是在一个适当配置的Hibernate事务中实现这种更新的;而且其中,我们将展示事务的提交和回滚这两种情形。其次,我们将通过一个购物车的例子来探讨一下实际开发中的应用程序设计问题。二、执行数据库插入操作的Servlet示例在前面的文章中,我们分析了Context.xml文件,web.xml,HibernateUtil.java,hibernate.cfg.xml,以及映射文件Driver.hb
2、m.xml和Car.hbm.xml及其相应的Java类文件—Driver.java和Car.java。在本篇中,所有这些文件将继续使用而不作任何改变。现在,让我们把注意力立即转向servlet本身—InsertViaHibernate.java。其代码如下:packagetomcatJndi;importjava.io.IOException;importjava.io.PrintWriter;importorg.apache.log4j.Logger;importorg.hibernate.SessionFactory;importorg.hibernate.Session;i
3、mportorg.hibernate.Query;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.hibernate.Session;publicclassInsertViaHibernateextendsHttpServlet{publicInsertViaHibernate(){su
4、per();}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html");PrintWriterout=response.getWriter();out.println("");out.println("");out.println(" ");out.println(" ");Sessionsession=null;try {session=Hibernate
5、Util.getSessionFactory().openSession();session.beginTransaction();CarbigSUV=newCar();bigSUV.setManufacturer("Ford");bigSUV.setModel("Expedition");bigSUV.setYear(2005);Driverjill=getDriverByName("Jill",session);addCarToDriver(jill,bigSUV,session);session.getTransaction().commit(); //自动地关闭会话}
6、catch(Exceptione) {session.getTransaction().rollback();thrownewServletException();}out.println(" ");out.println("");out.flush();out.close();}publicDrivergetDriverByName(Stringname,Sessionsession) {Queryq=session.createQuery("fromDriverdwhered.name=:name");q.setString("name,"name);DrivernewOwn
7、er=(Driver)q.list().get(0);returnnewOwner;}publicvoidaddCarToDriver(DrivertheOwner,CartheCar,Sessionsession) { theOwner.getCarsOwned().add(theCar); session.save(theCar);session.save(theOwner);}}在这个程序中首先要注意的是,就象在第二篇中一样,我们首先通过对SessionFactory.op
此文档下载收益归作者所有