版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验三Hibernate框架应用一、实验目的1、掌握采用Hibernate构建JavaWeb应用中持久化层的概念和思想2、掌握HibernateAPI的基本使用方法3、利用Hibernate实现用户信息的数据库基本操作(增、删、改、查)二、预备知识1.JDK的安装设置:JDK/JRE/JVM2.服务器Tomcat的使用3.集成开发环境Eclipse的使用4.HibernateAPI的基本使用方法5.数据库(MySQL/JDBC/JDBCAPI)技术基础知识6.XML技术基础知识(web.xml/hibernate.cfg.xml/xxx.hbm.xml)7.简单的错误调试三、实验内容
(1)按照以下步骤检查所使用的计算机系统:1.确认系统的环境变量,是否已安装JDK;2.确认目录C:\ProgramFiles\ApacheSoftwareFoundation,是否已安装Tomcat服务器;3.确认目录D:\eclipse3.3,是否已绿色安装Eclipse集成开发环境;4.确认Eclipse插件:HibernateSynchronizer是否已复制到Eclispe的plugins目录中。(2)创建数据表:1.安装MySQL2.在WindowsXP上启动:·安装MySQL服务:C:\ProgramFiles\MySQL\MySQLServer5.0\bin3.连接MySQLC:\mysql\bin>mysql–uroot-p会提示输入密码!此时输入安装MySQL时设置的密码即可。回车后,就会出现“mysql”提示符,表示连接成功。4.新建数据库mysql>createdatabasemydb;5.查看数据库mysql>showdatabases;6.打开数据库mysql>usemydbDatabasechanged7.创建数据表createtablet_user(idintprimarykey, usernamevarchar(20), passwordvarchar(20), ageint);8.退出实验截图mysql>quit;9.关闭MySQL服务C:\mysql\bin>netstopmysql(3)Eclipse集成开发环境的基本使用方法(详细步骤请参照实验一的实验指导书)1.创建一个新的DynamicWebProject:Hibernate_Proj2.以运行库为目标3.运行库配置4.选择是否想要转换到JavaEEPerspective。5.添加服务器
(4)向已建立的工程添加Hibernate应用1.设置Hibernate配置文件(hibernate.cfg.xml):选中Hibernate_Proj,然后右键选择Properties>new>others>Hibernate>HibernateConfigurationFile,创建hibernate.cfg.xml,具体内容如下(可参照教材第154页):Databasedialect:MySQLDriverclass:com.mysql.jdbc.DriverConnectionURL:jdbc:mysql://localhost:3306/mydbUsername:root2.生成持久化对象(POJO):·新建一个包:选中Hibernate_Proj,然后右键选择Properties>new>package,在包名中输入user,然后单击“完成”按钮;·生成持久化对象(POJO):引入类User.java;User.javapackageuser;publicclassUser{ privateintid; privateStringusername; privateStringpassword; privateintage; publicUser(){ } publicintgetId(){ returnid; } publicStringgetPassword(){ returnpassword; } publicStringgetUsername(){ returnusername; } publicintgetAge(){ returnage; } publicvoidsetId(intid){ this.id=id; } publicvoidsetPassword(Stringpassword){ this.password=password; } publicvoidsetUsername(Stringusername){ this.username=username; } publicvoidsetAge(intage){ this.age=age; }}3.生成映射文件(User.hbm.xml):在新建的包user上右键选择new>others>Hibernate>HibernateMappingFile,创建User.hbm.xml,具体内容请参照教材第156页;User.hbm.xml<?xmlversion="1.0"?><!DOCTYPEhibernate-mappingPUBLIC "-//Hibernate/HibernateMappingDTD//EN" "/hibernate-mapping-3.0.dtd"><hibernate-mappingpackage="user"> <class name="user.User" table="t_user" > <metaattribute="sync-DAO">false</meta> <id name="Id" type="int" column="id" > <generatorclass="increment"/> </id> <property name="username" column="username" type="string" not-null="false" length="20" /> <property name="password" column="password" type="string" not-null="false" length="20" /> <property name="age" column="age" type="integer" not-null="false" length="11" /> </class> </hibernate-mapping>4.修改Hibernate配置文件(hibernate.cfg.xml):把映射文件(User.hbm.xml)添加到配置文件中;5.在包user下面添加类userServlet.java,该类通过HibernateAPI对User对象进行持久化的操作;userServlet.javapackageuser;importjavax.servlet.*;importjavax.servlet.http.*;importjava.io.*;importjava.util.*;importorg.hibernate.*;importorg.hibernate.cfg.Configuration;publicclassuserServletextendsHttpServlet{ privatestaticfinallongserialVersionUID=1L; privatestaticfinalStringCONTENT_TYPE="text/html;charset=GB2312"; privatestaticfinalSessionFactorysessionFactory; static{ try{ //CreatetheSessionFactory Configurationconfig=newConfiguration(); sessionFactory=config.configure().buildSessionFactory(); }catch(RuntimeExceptionex){ ex.printStackTrace(); throwex; } } //Initializeglobalvariables publicvoidinit()throwsServletException{ } //ProcesstheHTTPGetrequest publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Stringusername=request.getParameter("username"); if(username==null){ username=""; } Stringpassword=request.getParameter("password"); if(password==null){ password=""; } Stringage1=request.getParameter("age"); if(age1==null){ age1="0"; } Stringaction=request.getParameter("action"); System.out.println("action="+action); if(action==null){ action=""; } System.out.println(action); intage=Integer.parseInt(age1); response.setContentType(CONTENT_TYPE); PrintWriterout=response.getWriter(); //生成User实例 Useruser=newUser(); user.setUsername(username); user.setPassword(password); user.setAge(age); if(action.equals("save")){ //生成Session实例 Sessionsession=sessionFactory.openSession(); Transactiontx=null; try{ tx=session.beginTransaction(); //保存持久类对象 session.save(user); //提交到数据库 mit(); //跳转到回复页面 response.sendRedirect("reply.jsp"); }catch(RuntimeExceptione){ if(tx!=null){ tx.rollback(); }throwe; }finally{ session.close(); } } if(action.equals("update")){ //生成Session实例 Sessionsession=sessionFactory.openSession(); Transactiontx=null; try{ tx=session.beginTransaction(); Queryquery=session.createQuery("fromUseruwhereu.username=?"); query.setString(0,username); Listlist=query.list(); for(inti=0;i<list.size();i++){ Useru=(User)list.get(i); Useru1=(User)session.get(User.class,newInteger(u.getId())); u1.setPassword(password); u1.setAge(age); session.update(u1); } //提交到数据库 mit(); //跳转到回复页面 response.sendRedirect("reply.jsp"); }catch(RuntimeExceptione){ if(tx!=null){ tx.rollback(); }throwe; }finally{session.close(); } } if(action.equals("delete")){ //生成Session实例 Sessionsession=sessionFactory.openSession(); Transactiontx=null; try{ tx=session.beginTransaction(); Queryquery=session.createQuery("fromUseruwhereu.username=?"); query.setString(0,username); Listlist=query.list(); for(inti=0;i<list.size();i++){ Useru=(User)list.get(i); Useru1=(User)session.get(User.class,newInteger(u.getId())); session.delete(u1); } //提交到数据库 mit(); //跳转到回复页面 response.sendRedirect("reply.jsp"); }catch(RuntimeExceptione){ if(tx!=null){ tx.rollback(); }throwe; }finally{ session.close(); } } } //ProcesstheHTTPPostrequest publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doGet(request,response); } //Cleanupresources publicvoiddestroy(){ }6.构建视图组件:user.jsp和reply.jsp:user.jsp:用户信息输入画面;User.jsp<%@pagelanguage="java"contentType="text/html;charset=GB18030"pageEncoding="GB18030"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=GB18030"><title>user</title></head><bodybgcolor="#ffffff"><formaction="userservlet"method="post">用户名:<inputtype="text"name="username"/><br><br>密码:<inputtype="password"name="password"/><br><br>年龄:<inputtype="text"name="age"/><br><br><inputtype="Submit"name="action"value="save"/><inputtype="Submit"name="action"value="update"/><inputtype="Submit"name="a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《FZT 64028-2021衬纬经编针织粘合衬》
- 《JBT 8475-1996单螺旋锥形混合机》专题研究报告
- 一元一次不等式组课件2025-2026学年北师大版八年级数学下册
- 甘肃省武威市2026年八年级下学期语文期中模拟试卷附答案
- 2026年云南省临沧市城管协管招聘笔试备考题库及答案解析
- 第四节 基因位于染色体上教学设计高中生物苏教版2019必修2 遗传与进化-苏教版2019
- 第十课 历史规律与人生目标教学设计中职基础课-哲学与人生(第3版)-人教版-(政治(道法))-59
- 2026年鹰潭市月湖区社区工作者招聘考试参考题库及答案解析
- 2026年平凉市崆峒区社区工作者招聘考试参考试题及答案解析
- 2026年石家庄市新华区社区工作者招聘考试模拟试题及答案解析
- 劳务纠纷及突发事件应急预案
- 一点一策制作模板
- 事件影响量表修订版(IES-R)
- 2023年广西机场管理集团有限责任公司招聘笔试题库及答案解析
- YY/T 1661-2019穴位阻抗检测设备
- LY/T 2908-2017主要树种龄级与龄组划分
- SCR脱硝催化剂介绍
- 客户个性化课件
- 超星尔雅学习通《艺术美学》章节测试答案
- 《健康睡眠》课件
- 2023年最新的刑法全文2023
评论
0/150
提交评论