Configuração Simples do Framework SSH (Struts, Spring, Hibernate)

Bean Comum

package modelo;

public class Usuario
{
    private int identificador;
    private String nome;
    private String informacoes;

    public int getIdentificador()
    {
        return identificador;
    }

    public void setIdentificador(int identificador)
    {
        this.identificador = identificador;
    }

    public String getNome()
    {
        return nome;
    }

    public void setNome(String nome)
    {
        this.nome = nome;
    }
    
    public String getInformacoes()
    {
        return informacoes;
    }

    public void setInformacoes(String informacoes)
    {
        this.informacoes = informacoes;
    }

    @Override
    public String toString()
    {
        return "Usuario [identificador=" + identificador + ", nome=" + nome + ", informacoes="
                + informacoes + "]";
    }
    
}

Script SQL para o bean comum

mysql> desc usuario;
+-------------+-------------+------+-----+---------+----------------+
| Campo       | Tipo        | Nulo | Chave | Padrão | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| id          | int(11)     | NÃO  | PRI  | NULL    | auto_increment |
| nome        | varchar(20) | SIM  |      | NULL    |                |
| informacoes | varchar(50) | SIM  |      | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+

  1. Struts

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>
            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

struts.xml

<?xml version="1.0" encoding="UTF-8"?>

<struts>
    <!-- Configuração do pacote, nomeado como struts -->
    <package name="struts" extends='struts-default'>
        <!-- Configuração da Action -->
        <action name="saudacao" class="com.exemplo.struts.web.action.Saudacao">
            <!-- Configuração dos resultados de retorno -->
            <result name="sucesso">/jsp/comum/sucesso.jsp</result>
            <result name="erro">/jsp/comum/erro.jsp</result>
        </action>
        
        <action name="autenticar" class="com.exemplo.struts.web.action.Autenticacao">
            <result name="sucesso">/jsp/comum/sucesso.jsp</result>
            <result name="erro">/jsp/comum/erro.jsp</result>
        </action>
    </package>
</struts>

Dependências de pacote

  1. Spring

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
    
    <bean id="usuario" class="com.exemplo.spring.web.domain.Usuario">
        <property name="identificador" value="1"></property>
        <property name="nome" value="João Silva"></property>
        <property name="informacoes" value="desenvolvedor java!"></property>
    </bean>

</beans>

Código de teste

package com.exemplo.spring.teste;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Teste
{

    public static void main(String[] args)
    {
        ApplicationContext contexto = new ClassPathXmlApplicationContext("applicationContext.xml");
        Object usuario = contexto.getBean("usuario");
        System.out.println(usuario);
    }
}

Depandências de pacote

  1. Hiberntae

Usuario.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>

<hibernate-mapping>
    <class name="modelo.Usuario">
        <id name="identificador">
            <generator class="native" />
        </id>
        <property name="nome" />
        <property name="informacoes" />
    </class>
</hibernate-mapping>  

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
  
  
<hibernate-configuration>  
    <session-factory>  
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>  
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/bancodados</property>  
        <property name="hibernate.connection.username">admin</property>  
        <property name="hibernate.connection.password">senha123</property>  
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>  
        <property name="hibernate.show_sql">true</property>  

        <mapping resource="modelo/Usuario.hbm.xml"/>  
    </session-factory>  
</hibernate-configuration> 

Código de teste

package teste;

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

import modelo.Usuario;

public class Cliente
{

    public static void main(String[] args)
    {

        Configuration cfg = new Configuration().configure();

        SessionFactory fabrica = cfg.buildSessionFactory();
        // Obter session
        Session sessao = null;
        try
        {
            sessao = fabrica.openSession();
            // Iniciar transação
            sessao.beginTransaction();
            Usuario usuario = new Usuario();
            usuario.setNome("Maria Santos");
            usuario.setInformacoes("analista de sistemas");
            // Salvar objeto Usuario
            sessao.save(usuario);

            // Commit da transação
            sessao.getTransaction().commit();
        }
        catch (Exception e)
        {
            e.printStackTrace();
            // Rollback da transação
            sessao.getTransaction().rollback();
        }
        finally
        {
            if (sessao != null)
            {
                if (sessao.isOpen())
                {
                    // Fechar session
                    sessao.close();
                }
            }
        }
    }
}

Dependências de pacote

Tags: struts Spring hibernate java framework

Publicado em 6-18 18:56