您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Java > 实验4-《Java-Web程序设计》.doc
淮海工学院计算机工程学院实验报告书课程名:《JavaWeb程序设计》题目:使用Hibernate快速实现持久层处理班级:软件学号:20111225姓名:评语:成绩:指导教师:批阅时间:年月日《数据库原理及应用》实验报告-1–一、实验目的掌握Hibernate框架的基本使用方法,能够完成Java对象与数据表的映射定义,实现对象与对象间的一对多关联。二、实验内容基于Hibernate框架完成具有一对多关系的两类对象的数据持久化操作。三、实验方法和步骤1、创建一个动态Web项目,项目名称为:HibernateEx。2、从58.192.23.8下载struts2.1-hibernate3-mysqljdbc-lib.rar,将其中的jar文件解压到WEB-INF/lib文件夹中。3、准备Mysql实验环境。从58.192.23.8下载wamp-server-wamp5-2.0h.zip解压后安装其中的wamp。《数据库原理及应用》实验报告-2–执行以下SQL语句,创建两个表:CREATETABLE`guestbook`(`id`int(11)NOTNULLauto_increment,`userid`int(11)NOTNULL,`title`varchar(500)defaultNULL,`contents`varchar(1000)defaultNULL,PRIMARYKEY(`id`),KEY`userid`(`userid`));CREATETABLE`user`(`id`int(11)NOTNULLauto_increment,`username`varchar(50)defaultNULL,`password`varchar(50)defaultNULL,`firstname`varchar(50)defaultNULL,`lastname`varchar(50)defaultNULL,`age`int(11)defaultNULL,PRIMARYKEY(`id`));《数据库原理及应用》实验报告-3–4、创建Hibernate会话工厂类:packagetest;importorg.hibernate.HibernateException;importorg.hibernate.Session;importorg.hibernate.cfg.Configuration;/***ConfiguresandprovidesaccesstoHibernatesessions,tiedtothe*currentthreadofexecution.FollowstheThreadLocalSession*pattern,see{@link}.*/《数据库原理及应用》实验报告-4–publicclassHibernateSessionFactory{/***Locationofhibernate.cfg.xmlfile.*LocationshouldbeontheclasspathasHibernateuses*#resourceAsStreamstylelookupforitsconfigurationfile.*Thedefaultclasspathlocationofthehibernateconfigfileis*inthedefaultpackage.Use#setConfigFile()toupdate*thelocationoftheconfigurationfileforthecurrentsession.*/privatestaticStringCONFIG_FILE_LOCATION=/hibernate.cfg.xml;privatestaticfinalThreadLocalSessionthreadLocal=newThreadLocalSession();privatestaticConfigurationconfiguration=newConfiguration();privatestaticorg.hibernate.SessionFactorysessionFactory;privatestaticStringconfigFile=CONFIG_FILE_LOCATION;static{try{configuration.configure(configFile);sessionFactory=configuration.buildSessionFactory();}catch(Exceptione){System.err.println(%%%%ErrorCreatingSessionFactory%%%%);e.printStackTrace();}}privateHibernateSessionFactory(){}/***ReturnstheThreadLocalSessioninstance.Lazyinitialize*thecodeSessionFactory/codeifneeded.**@returnSession*@throwsHibernateException*/publicstaticSessiongetSession()throwsHibernateException{Sessionsession=(Session)threadLocal.get();if(session==null||!session.isOpen()){if(sessionFactory==null){rebuildSessionFactory();}session=(sessionFactory!=null)?sessionFactory.openSession():null;threadLocal.set(session);《数据库原理及应用》实验报告-5–}returnsession;}/***Rebuildhibernatesessionfactory**/publicstaticvoidrebuildSessionFactory(){try{configuration.configure(configFile);sessionFactory=configuration.buildSessionFactory();}catch(Exceptione){System.err.println(%%%%ErrorCreatingSessionFactory%%%%);e.printStackTrace();}}/***Closethesinglehibernatesessioninstance.**@throwsHibernateException*/publicstaticvoidcloseSession()throwsHibernateException{Sessionsession=(Session)threadLocal.get();threadLocal.set(null);if(session!=null){session.close();}}/***returnsessionfactory**/publicstaticorg.hibernate.SessionFactorygetSessionFactory(){returnsessionFactory;}/***returnsessionfactory**sessionfactorywillberebuildedinthenextcall《数据库原理及应用》实验报告-6–*/publicstaticvoidsetConfigFile(StringconfigFile){HibernateSessionFactory.configFile=configFile;sessionFactory=null;}/***returnhibernateconfiguration**/publicstaticConfigurationgetConfiguration(){returnconfiguration;}}5、创建User类:packagecom.un;importjava.util.ArrayList;importjava.util.HashSet;importjava.util.List;importjava.util.Set;publicclassUser{//FieldsprivateIntegerid;《数据库原理及应用》实验报告-7–privateStringusername;privateStringpassword;privateSetgbset=newHashSet();privateListgblist=newArrayList();privatestaticfinallongserialVersionUID=-2L;//ConstructorspublicvoidsetGbset(Setgbset){this.gbset=gbset;}publicvoidaddGb(Guestbookgb){gb.setUser(this);gbset.add(gb);gblist.add(gb);}publicSetgetGbset(){returngbset;}publicListgetGblist(){returngblist;}publicvoidsetGblist(Listgblist){this.gblist=gblist;}/**defaultconstructor*/publicUser(){}/**fullconstructor*/publicUser(Stringusername,Stringpassword){this.username=username;this.password=password;}//PropertyaccessorspublicIntegergetId(){returnthis.id;}publicvoidsetId(Integerid){《数据库原理及应用》实验报告-8–this.id=id;}publicStringgetUsername(){returnthis.username;}publicvoidsetUsername(Stringusername){this.username=username;}publicStringgetPassword(){returnthis.password;}publicvoidsetPassword(Stringpassword){this.password=password;}}6、创建Guestbook.javapackagecom.un;importjava.sql.Timestamp;/***Guestbookentity.@authorMyEclipsePersistenceTools《数据库原理及应用》实验报告-9–*/publicclassGuestbookimplementsjava.io.Serializable{//FieldsprivatestaticfinallongserialVersionUID=-1L;privateIntegerid;privateUseruser;publicUsergetUser(){returnuser;}publicvoidsetUser(Useruser){this.user=user;}privateStringtitle;privateStringcontents;privateTimestamppubdate;//Constructors/**defaultconstructor*/publicGuestbook(){}//PropertyaccessorspublicIntegergetId(){returnthis.id;}publicvoidsetId(Integerid){this.id
本文标题:实验4-《Java-Web程序设计》.doc
链接地址:https://www.777doc.com/doc-5698525 .html