Struts 和 Hibernate 集成
-
简述
Hibernate 是一种高性能的对象/关系持久化和查询服务,它在开源 GNU 宽松通用公共许可证 (LGPL) 下获得许可,可以免费下载。在这一章当中。我们将学习如何实现 Struts 2 与 Hibernate 的集成。如果您不熟悉 Hibernate,那么您可以查看我们的 Hibernate 教程。 -
数据库设置
在本教程中,我将使用“struts2_tutorial”MySQL 数据库。我使用用户名“root”并且没有密码连接到我机器上的这个数据库。首先,您需要运行以下脚本。此脚本创建一个名为的新表student 并在此表中创建少量记录 - -
休眠配置
接下来让我们创建 hibernate.cfg.xml,它是 hibernate 的配置文件。让我们来看看休眠配置文件。首先,我们声明我们正在使用 MySQL 驱动程序。然后我们声明了连接数据库的jdbc url。然后我们声明了连接的用户名、密码和池大小。我们还表示我们希望通过将“show_sql”设置为 true 来查看日志文件中的 SQL。请阅读休眠教程以了解这些属性的含义。最后,我们将映射类设置为我们将在本章中创建的 com.jc2182.hibernate.Student。 -
环境设置
接下来你需要为这个项目准备很多 jars。附件是所需 JAR 文件的完整列表的屏幕截图 -大多数 JAR 文件都可以作为 struts 发行版的一部分获得。如果您安装了应用程序服务器,例如 glassfish、websphere 或 jboss,那么您可以从应用程序服务器的 lib 文件夹中获取大部分剩余的 jar 文件。如果没有,您可以单独下载文件 --
Hibernate jar 文件 - Hibernate.org
-
Struts 休眠插件 - Struts 休眠插件
-
JTA 文件 - JTA 文件
-
Dom4j 文件 - Dom4j
-
log4j 文件 - log4j
其余的文件,您应该能够从您的 Struts2 发行版中获得。 -
-
休眠类
现在让我们为休眠集成创建所需的 Java 类。以下是内容Student.java −这是一个 POJO 类,表示 student表按照 Hibernate 规范。它具有与学生表的列名对应的属性 id、firstName 和 lastName。接下来让我们创建StudentDAO.java 文件如下 -StudentDAO 类是 Student 类的数据访问层。它具有列出所有学生然后保存新学生记录的方法。 -
动作类
以下文件 AddStudentAction.java定义我们的动作类。我们这里有两个动作方法——execute() 和 listStudents()。execute() 方法用于添加新的学生记录。我们使用 dao 的 save() 方法来实现这一点。另一种方法 listStudents() 用于列出学生。我们使用 dao 的 list 方法来获取所有学生的列表。您会注意到我们正在实现 ModelDriven 接口。当您的操作类处理具体模型类(例如 Student)而不是单个属性(例如 firstName、lastName)时,会使用此方法。ModelAware 接口要求您实现一个方法来返回模型。在我们的例子中,我们返回的是“student”对象。 -
创建视图文件
现在让我们创建 student.jsp 查看具有以下内容的文件 -student.jsp 非常简单。在顶部,我们有一个提交给“addStudent.action”的表单。它接受 firstName、lastName 和标记。由于 addStudent 操作与 ModelAware“AddSudentAction”相关联,因此将自动创建一个包含 firstName、lastName 和标记自动填充值的学生 bean。在底部,我们查看学生列表(请参阅 AddStudentAction.java)。我们遍历列表并在表中显示名字、姓氏和标记的值。 -
支柱配置
让我们把它放在一起使用 struts.xml −这里要注意的重要一点是,我们的包“myhibernate”扩展了名为“hibernate-default”的 struts2 默认包。然后我们声明两个动作 - addStudent 和 listStudents。addStudent 调用 AddStudentAction 类上的 execute(),然后在成功时调用 listStudents 操作方法。listStudent 操作方法调用 AddStudentAction 类上的 listStudents() 并使用 student.jsp 作为视图。现在,右键单击项目名称并单击 Export > WAR File创建一个战争文件。然后将此 WAR 部署到 Tomcat 的 webapps 目录中。最后,启动Tomcat服务器并尝试访问URLhttp://localhost:8080/HelloWorldStruts2/student.jsp. 这将产生以下屏幕 -在顶部,我们得到一个表单,用于输入新学生记录的值,底部列出了数据库中的学生。继续添加一个新的学生记录,然后按提交。每次单击提交时,屏幕都会刷新并显示更新的列表。