实验十综合实验struts2和hibernate的整合应用Word文档格式.docx

上传人:b****5 文档编号:19709246 上传时间:2023-01-09 格式:DOCX 页数:15 大小:1.13MB
下载 相关 举报
实验十综合实验struts2和hibernate的整合应用Word文档格式.docx_第1页
第1页 / 共15页
实验十综合实验struts2和hibernate的整合应用Word文档格式.docx_第2页
第2页 / 共15页
实验十综合实验struts2和hibernate的整合应用Word文档格式.docx_第3页
第3页 / 共15页
实验十综合实验struts2和hibernate的整合应用Word文档格式.docx_第4页
第4页 / 共15页
实验十综合实验struts2和hibernate的整合应用Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验十综合实验struts2和hibernate的整合应用Word文档格式.docx

《实验十综合实验struts2和hibernate的整合应用Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验十综合实验struts2和hibernate的整合应用Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

实验十综合实验struts2和hibernate的整合应用Word文档格式.docx

1)插入几条新闻到数据库中;

2)查询所有新闻,并在页面中显示新闻的标题、发布时间,要求对标题设置超链接,点击该链接后新开一个页面显示该新闻标题、发布时间、内容和来源;

3)能够修改和删除新闻显示页面中指定的新闻;

4)实现标题的模糊查询以及发布时间的范围查询;

5)要求使用连接池。

6)要求使用Struts2校验框架按以下要求进行有效性校验:

●对新闻标题、新闻内容作非空校验

●对新闻标题、新闻来源作长度校验

2.要求:

1.13周的小课前上传实验报告到FTP,并请保留电子版等候通知随时打印提交

2.在报告中必须附上以下截图:

1)显示项目的文件结构截图,如下图所示

2)显示项目的各个功能的运行结果截图

3)请注意:

不附截图者扣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,输入“usejavaee;

descnews;

”发现表已经建好了,再往里边插入数据,作业的第一步就完成了。

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()方法,每个方法都设置了transaction,保证了事务的原子性、安全性等。

到这里,我们的DAO层设计可以说基本上完成了,接下来就是控制层和表现层的设计。

控制层按老师要求,使用Struts2,定义一个NewsAction类,此类主要完成数据的接受,还要对dao层的调用。

控制类——NewsAction.java

由于篇幅问题,所以setter和getter方法就不罗列出来了。

可以发现,NewsAction类中并没有什么复杂的代码,只是对DAO层的调用,这样的话就可以很好地做到分层了。

因为NewsAction使用了Struts2框架,所以要在Struts.xml和web.xml进行配置。

Struts.xml

web.xml

后台代码完成后,就可以使用JSP进行前台功能的实现了。

查询操作需要直接调用DAO接口的findAll()方法。

show_all.jsp

在show_all.jsp中,首先根据DAO定义的findAll()方法取得全部的查询结果,然后采用迭代的方式输出全部数据。

如果现在又查询关键字,则将查询关键字设置到findAll方法中,以实现模糊查询的功能。

程序的运行结果如下所示。

由于要通过标题来查看新闻的具体内容,所以在标题那里设置了<

a>

标签来进行跳转,而且需要定义一个jsp页面来动态加载数据。

show.jsp

可以发现,修改和删除这2个操作都是通过<

标签来进行相应方法的调用。

程序的运行结果如下图。

最后是update页面和delete_success页面

update.jsp

程序运行结果图:

delete_success.jsp

delete_sucess页面只是做了个简单的客户端跳转

-------------------------------------------------------------------------我是万恶的分割线---------------------------------------------------------------------------------

第一次写这么多东西,累。

很多东西都是模仿兴华哥的,哈哈。

jsp那里我没有用到struts2的标签,因为我懒,还有也不方面以后用css+div去美工,所以就没有用到了,希望对各位同学们有一点帮助吧。

如果有什么错漏之处,请大家指出,谢谢。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1