- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 1
PAGE 17
实验十 Struts2和hibernate的整合应用
实验目的
掌握Struts2和hibernate的整合
实验环境
1.Tomcat
2. MyEclipse
实验描述
1. 实验内容及要求:使用Struts2和Hibernate实现以下功能:
1)插入几条新闻到数据库中;
2)查询所有新闻,并在页面中显示新闻的标题、发布时间,要求对标题设置超链接,点击该链接后新开一个页面显示该新闻标题、发布时间、内容和来源;
3)能够修改和删除新闻显示页面中指定的新闻;
4)实现标题的模糊查询以及发布时间的范围查询;
5)要求使用连接池。
6)要求使用Struts2校验框架按以下要求进行有效性校验:
对新闻标题、新闻内容作非空校验
对新闻标题、新闻来源作长度校验
2.要求:
13周的小课前上传实验报告到FTP,并请保留电子版等候通知随时打印提交
在报告中必须附上以下截图:
显示项目的文件结构截图,如下图所示
显示项目的各个功能的运行结果截图
请注意:不附截图者扣2分!
四.实验步骤:
①新建一个Struts2项目
②为项目添加hibernate支持
③创建持久化类及其映射文件
④创建DAO接口及其实现类
⑤创建工具类,获取Session对象
⑥修改hibernate.cfg.xml
⑦创建动作类,在其中调用DAO中的业务方法
⑧使用Struts2校验框架校验用户输入数据的有效性:用户和密码都必须输入,确认密码必须等于密码
⑨编写struts.xml文件
⑩编写客户端JSP文件
具体步骤请参考Struts2和hibernate的整合.ppt。
下面将按照DAO的方式完成代码的开发,首先定义VO类,VO类的名称与表的名称一致。
定义对应的vo类——News.java
本程序只是一个简单的vo类,包含了属性、getter、setter方法。其中插入日期时使用的是java.util.Date类。
提示:
由于篇幅问题,所以不列举所有setter和getter方法。
定义完vo类后,下面来定义一个HibernateUtils.java类,此类主要完成Hibernate的session打开及关闭操作。
HibernateUtils.java类
为了使之前定义的News.java类具备持久化操作的能力,接下来定义它对应的映射文件。
News.hbm.xml
? 注意:
这里的延迟加载设置为禁用。
接下来就要在hibernate.cfg.xml里引入News的映射文件
hibernate.cfg.xml
? OK,到了这步的话数据库的创建就基本上搞定了,用一个测试类Export.java看下之前的步骤有没有出错
Exprot.java
运行一下,发现没问题,打开Mysql,输入“use javaee;desc news;”发现表已经建好了,再往里边插入数据,作业的第一步就完成了。
? 提示:
mysql的语句结束一定要用;,不然不会执行的。
在DAO设计模式中,最重要的就是定义DAO接口,在定义DAO接口之前必须对业务进行详细的分析,要清楚地知道一张表在整个系统中应该具备何种功能。本程序中只完成数据的查询全部、更新、删除的功能。
定义DAO操作标准——NewsDAO.java
在DAO的操作标准定义了findAll()、findById()、update()、delete()4个功能。findAll()方法主要完成数据的查询操作,由于返回的是多条查询结果,所以使用list返回;findById()方法根据新闻的编号返回一个News对象。update()方法由于要保存session,所以要返回Boolean来判断,delete方法因为我懒,所以就设成void。
DAO接口定义完成后需要具体的实现类,由于实现类的代码较多,所以用分段列出的形式,在运行时,直接按照分类的顺序输入就可以了。
真实实现类——NewsDAOImpl.java
在执行查询全部数据时,首先实例化了List接口的对象;在定义Hql语句时,将新闻标题定义成了模糊查询的字段,把查询出来的结果加载到List集合中。
? 按编号查询时,如果此编号的新闻存在,则映射到News对象,如果没有查询到,则返回null。
在执行更新操作时,因为在更新前已经取得了News对象,所以不用通过session.load()来取得对象,直接对引用对象进行update()就可以了。
? 在执行删除操作时,通过调用findById()方法来取得news对象,在进行delete操作。
? 以上程序分别实现了findAll()、findById()、update()、delete()方法,每个方法都设置了tran
您可能关注的文档
最近下载
- 雅马哈s03使用说明书.pdf VIP
- 一种从荧光粉废料中回收高纯度钇铕的制备方法.doc.doc
- 部编版语文二年级上册第六单元教材解读大单元集体备课.pptx VIP
- 压实度(灌砂法)试验检测报告.docx
- 2022年地理高考真题深度剖析之自然灾害1老教材公开课.docx VIP
- 生物法还原高浓度高氯酸盐动力学及反应条件的优化.pdf
- 妇产科常见危急重症早期识别、初步处置原则和转诊时期专家讲座.pptx
- 一种多应力加速寿命试验耦合效应分析及寿命预测方法.pdf VIP
- 医疗器械软件产品相关文档模板汇总(软件描述文档模板、软件网络安全描述模板、软件开发文档等).pdf VIP
- 火电厂工艺办法流程.ppt
文档评论(0)