📜  Hibernate和Struts集成示例教程

📅  最后修改于: 2021-01-02 15:55:21             🧑  作者: Mango

Hibernate和Struts 2集成

我们可以将任何struts应用程序与hibernate集成。无需额外的努力。

在此示例中,我们将结合使用带有休眠的struts 2框架。您需要具有Struts 2和休眠状态的jar文件。

Hibernate和struts2集成的示例

在此示例中,我们将使用struts2创建注册表单,并使用Hibernate将这些数据存储到数据库中。让我们看看为将struts2应用程序与hibernate集成而应该创建的文件。

  • index.jsp文件以获取用户输入。
  • User.java一个用于处理请求的操作类。它使用dao类存储数据。
  • RegisterDao.java一个Java类,该类使用DAO设计模式来使用休眠模式存储数据。
  • user.hbm.xml一个映射文件,其中包含有关持久类的信息。在这种情况下,动作类用作持久类。
  • hibernate.cfg.xml一个配置文件,其中包含有关数据库和映射文件的信息。
  • struts.xml文件包含有关操作类和要调用的结果页面的信息。
  • welcome.jsp一个jsp文件,显示带有用户名的欢迎信息。
  • web.xml一个web.xml文件,其中包含有关Struts控制器框架的信息。

index.jsp

在此页面中,我们使用struts标记创建了一个表单。该表单的动作名称是register。


<%@ taglib uri="/struts-tags" prefix="S" %>








User.java

这是一个简单的POJO类。在这里,它用作struts的action类和hibernate的持久类。它调用RegisterDao类的register方法,并以字符串返回成功。


package com.javatpoint;

public class User {
private int id;
private String name;
//getters and setters

public String execute(){
    RegisterDao.saveUser(this);
    return "success";
}

}

RegisterDao.java

这是一个Java类,它使用Hibernate框架保存User类的对象。


package com.javatpoint;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class RegisterDao {

public static int saveUser(User u){
        
Session session=new Configuration().
configure("hibernate.cfg.xml").buildSessionFactory().openSession();
        
Transaction t=session.beginTransaction();
int i=(Integer)session.save(u);
t.commit();
session.close();
        
return i;

}

}

user.hbm.xml

该映射文件包含永久类的所有信息。












          


hibernate.cfg.xml

此配置文件包含有关数据库和映射文件的信息。在这里,我们使用hb2ddl.auto属性,因此您无需在数据库中创建表。









update
org.hibernate.dialect.Oracle9Dialect
jdbc:oracle:thin:@localhost:1521:xe
system
oracle
oracle.jdbc.driver.OracleDriver

    




struts.xml

该文件包含有关要调用的动作类的信息。这里的动作类是User。








welcome.jsp


    

welcome.jsp

这是欢迎文件,显示带有用户名的欢迎消息。

web.xml

这是web.xml文件,其中包含有关控制器的信息。对于Struts2,StrutsPrepareAndExecuteFilter类用作控制器。




  
    index.jsp
  
  
      struts2
      
  org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
      
  
  
      struts2
      /*