Домой java Пример интеграции с Struts + Hibernate

Пример интеграции с Struts + Hibernate

260

Учебное пособие, показывающее, как интегрировать Hibernate в веб-приложение, разработанное с использованием Apache Struts 1.x.

Загрузить это — Struts-Hibernate-Example.zip

Этапы интеграции:

  1. Создайте новый файл плагина Hibernate Struts, чтобы установить фабрику сеансов Hibernate в контексте сервлета, и включите этот файл в файл struts-config.xml .
  2. В Struts получите фабрику сеансов Hibernate из контекста сервлета и выполните любую задачу Hibernate, какую захотите.

1. Плагин Hibernate Struts

Создайте подключаемый модуль Hibernate Struts, получите фабрику сеансов Hibernate, сохраните ее в контексте сервлета для последующего пользователя — servlet.getServletContext (). SetAttribute (KEY_NAME, factory); ,


package com.csharpcoderr.common.plugin;

import java.net.URL;
import javax.servlet.ServletException;

import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
import org.hibernate.HibernateException;
import org.hibernate.MappingException;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernatePlugin implements PlugIn {
private Configuration config;
private SessionFactory factory;
private String path = "/hibernate.cfg.xml";
private static Class clazz = HibernatePlugin.class;

public static final String KEY_NAME = clazz.getName();

public void setPath(String path) {
this.path = path;
}

public void init(ActionServlet servlet, ModuleConfig modConfig)
throws ServletException {

try {

// сохраняем фабрику сессий Hibernate в контексте serlvet
URL url = HibernatePlugin.class.getResource(path);
config = new Configuration().configure(url);
factory = config.buildSessionFactory();
servlet.getServletContext().setAttribute(KEY_NAME, factory);

} catch (MappingException e) {
throw new ServletException();
} catch (HibernateException e) {
throw new ServletException();
}

}

public void destroy() {
try {
factory.close();
} catch (HibernateException e) {
e.printStackTrace();
}
}
}

2. struts-config.xml

Включите подключаемый модуль Hibernate Struts в файл конфигурации Struts ( struts-config.xml ).



...



...

3. Получить фабрику сессий Hibernate

В классе действий Struts вы можете получить фабрику сеансов Hibernate из контекста сервлета .


servlet.getServletContext().getAttribute(HibernatePlugin.KEY_NAME);

и делай любую задачу Hibernate как обычно.


package com.csharpcoderr.customer.action;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import com.csharpcoderr.common.plugin.HibernatePlugin;
import com.csharpcoderr.customer.form.CustomerForm;
import com.csharpcoderr.customer.model.Customer;

public class AddCustomerAction extends Action{

public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)
throws Exception {

SessionFactory sessionFactory =
(SessionFactory) servlet.getServletContext()
.getAttribute(HibernatePlugin.KEY_NAME);

Session session = sessionFactory.openSession();

CustomerForm customerForm = (CustomerForm)form;
Customer customer = new Customer();

// копировать форму клиента в модель
BeanUtils.copyProperties(customer, customerForm);

//сохрани это
customer.setCreatedDate(new Date());

session.beginTransaction();
session.save(customer);
session.getTransaction().commit();

return mapping.findForward("success");

}
}

Готово.

Зимуют интеграции распорки

Пример интеграции с Struts + Hibernate

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Пример вставки хранимой процедуры Oracle