Рубрики
Без рубрики

Интеграция Struts 2 + Hibernate с “Плагином для полной гибернации”

– Интеграция Struts 2 + Hibernate с “плагином для полной гибернации”

Автор оригинала: mkyong.

В последнем примере Struts 2 + Интеграция с гибернацией он использует servletcontextlistener, чтобы поиграть с сеансом гибернации, и он очень хорошо интегрировал Struts2 с платформой гибернации.

Но всегда есть что-то, что можно улучшить 🙂 В этом уроке мы покажем вам, как интегрировать Struts2 и гибернацию с помощью плагина Struts2 с именем ” Полный гибернационный плагин “, версия 2.2GA, созданный jyoshiriro .

Смотрите краткое описание этапов интеграции:

  1. Поместите ” Плагин полной гибернации ” jar в путь к классам проекта.
  2. Используйте аннотации ” @Sessiontarget ” для ввода сеанса гибернации; В то время как ” @transactiontarget ” для ввода транзакции гибернации.
  3. В struts.xml , сделайте так, чтобы пакет расширялся ” спящий режим-по умолчанию ” вместо стека по умолчанию.

Посмотрите на отношения:

Struts 2 <-- (Full Hibernate Plugin) ---> Hibernate <-----> Database 

1. Структура проекта

Посмотрите эту полную структуру папок проекта.

2. Скрипт таблицы MySQL

Сценарий таблицы клиента.

DROP TABLE IF EXISTS `mkyong`.`customer`;
CREATE TABLE  `mkyong`.`customer` (
  `CUSTOMER_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `NAME` varchar(45) NOT NULL,
  `ADDRESS` varchar(255) NOT NULL,
  `CREATED_DATE` datetime NOT NULL,
  PRIMARY KEY (`CUSTOMER_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;

3. Получите “Полный плагин гибернации” и Зависимости

Собери все стойки 2, Впадай в спячку” Полный плагин гибернации ” и библиотеки зависимостей MySQL. Поскольку ” Плагин полной гибернации ” не поддерживает Maven, вам необходимо загрузить его с официального веб-сайта и включить в свой локальный репозиторий Maven вручную.

  1. Скачать ” Полный плагин гибернации “.
  2. Поместите загруженную банку на диск c: и используйте следующую команду Maven, чтобы включить ее в локальное хранилище Maven.
  3. Свяжите его с координатами follow Maven.

Вот все библиотеки зависимостей в этом руководстве:

Файл: pom.xml

//...
	
	
	        org.apache.struts
		struts2-core
		2.1.8
        

	
	
		mysql
		mysql-connector-java
		5.1.9
	

	
	
		com.google.code
		struts2-fullhibernatecore-plugin
		2.2
	
	
	
	
                log4j
	        log4j
	        1.2.9
        
	
	
	
               org.hibernate
	       hibernate-validator
	       3.1.0.GA
        
	
	
	
               org.slf4j
	       slf4j-api
	       1.6.1
        

	
	
		org.hibernate
		hibernate
		3.2.7.ga
	

	
	
		dom4j
		dom4j
		1.6.1
	

	
		commons-logging
		commons-logging
		1.1.1
	

	
		commons-collections
		commons-collections
		3.2.1
	

	
		cglib
		cglib
		2.2
	
	

	
	
		antlr
		antlr
		2.7.7
	
	
//...

4. Вещи в спящем режиме

Все эти модели гибернации и прочее с конфигурацией.

Customer.java – Создайте класс для таблицы клиентов.

package com.mkyong.customer.model;

import java.util.Date;

public class Customer implements java.io.Serializable {

	private Long customerId;
	private String name;
	private String address;
	private Date createdDate;

	//getter and setter methods
}

Customer.hbm.xml – Файл отображения гибернации для клиента.






    
        
            
            
        
        
            
        
        
            
        
        
            
        
    

Файл: hibernate.cfg.xml , Файл конфигурации базы данных гибернации.





  
    false
    password
    jdbc:mysql://localhost:3306/mkyong
    root
    org.hibernate.dialect.MySQLDialect
    true
    true
    false
    
  

5. ДАО

Реализует шаблон проектирования DAO для выполнения операции с базой данных. В классе CustomerDAOImpl объявлены как сеанс гибернации, так и транзакция в качестве членов класса. Во время инициализации проекта Struts2 ” Плагин полного гибернации ” будет вводить соответствующий сеанс гибернации и транзакцию в члены класса, используя @Sessiontarget и @transactiontarget аннотации соответственно.

и || @transactiontarget || аннотации соответственно.

package com.mkyong.customer.dao;

import java.util.List;

import com.mkyong.customer.model.Customer;
 
public interface CustomerDAO{
	
	void addCustomer(Customer customer);
	
	List listCustomer();
	
}

и || @transactiontarget || аннотации соответственно.

package com.mkyong.customer.dao.impl;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.googlecode.s2hibernate.struts2.plugin.annotations.SessionTarget;
import com.googlecode.s2hibernate.struts2.plugin.annotations.TransactionTarget;
import com.mkyong.customer.dao.CustomerDAO;
import com.mkyong.customer.model.Customer;
 
public class CustomerDAOImpl implements CustomerDAO{
	
	@SessionTarget
	Session session;
	     
	@TransactionTarget
	Transaction transaction;
	
	//add the customer
	public void addCustomer(Customer customer){
		
		session.save(customer);
		
	}
	
	//return all the customers in list
	public List listCustomer(){
		
		return session.createQuery("from Customer").list();
		
	}
	
}

6. Действие

В классе действий вызовите класс DAO для выполнения операции с базой данных.

В классе действий вызовите класс DAO для выполнения операции с базой данных.

package com.mkyong.customer.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.mkyong.customer.dao.CustomerDAO;
import com.mkyong.customer.dao.impl.CustomerDAOImpl;
import com.mkyong.customer.model.Customer;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
 
public class CustomerAction extends ActionSupport 
	implements ModelDriven{

	Customer customer = new Customer();
	List customerList = new ArrayList();
	CustomerDAO customerDAO = new CustomerDAOImpl();
	
	public String execute() throws Exception {
		return SUCCESS;
	}

	public Object getModel() {
		return customer;
	}
	
	public List getCustomerList() {
		return customerList;
	}

	public void setCustomerList(List customerList) {
		this.customerList = customerList;
	}

	//save customer
	public String addCustomer() throws Exception{
		
		//save it
		customer.setCreatedDate(new Date());
		customerDAO.addCustomer(customer);
	 
		//reload the customer list
		customerList = null;
		customerList = customerDAO.listCustomer();
		
		return SUCCESS;
	
	}
	
	//list all customers
	public String listCustomer() throws Exception{
		
		customerList = customerDAO.listCustomer();
		
		return SUCCESS;
	
	}
	
}

7. Страница JSP

Страницы JSP для добавления и перечисления клиентов.

Страницы JSP для добавления и перечисления клиентов.

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



 

Struts 2 Full Hibernate Plugin example

Add Customer

All Customers

Customer Id Name Address Created Date


8. Страницы JSP для добавления и перечисления клиентов.

Свяжите все это ~ пакет make расширяет ” спящий режим-по умолчанию ” вместо ” распорки-по умолчанию “.




 

  
 	
  
		
    
       pages/customer.jsp
    
	
    
        pages/customer.jsp
    
		
	

9. Демонстрация

Получите к нему доступ: http://localhost:8080/Struts2Example/listCustomerAction.action

Скачать Исходный Код

Рекомендации

  1. Struts 2 Полная документация по плагину гибернации
  2. Пример интеграции Struts 2 + гибернация (прослушиватель контекста сервлета)
  3. Установите библиотеку в локальное хранилище Maven

Оригинал: “https://mkyong.com/struts2/struts-2-hibernate-integration-with-full-hibernate-plugin/”