Tecnología

Inicio

Paso a Paso Hibernate Tomcat MySQL Tutorial

Paso a Paso Hibernate Tomcat MySQL Tutorial


Hibernate es un marco de código abierto que soporta la persistencia de objetos de datos de nivel medio escrito en Java. Un objeto de nivel medio es una unidad de código de programa que reside en la capa de la arquitectura de software entre la interfaz de usuario y el almacén de datos. A menudo, el almacén de datos es una base de datos relacional como MySQL, pero también puede ser un archivo de texto con formato. Los objetos de datos de nivel intermedio proporcionan una manera conveniente escribir la lógica de nivel superior para manipular y utilizar la información de la aplicación. También permiten que el mecanismo de almacenamiento subyacente a cambios sin necesidad de modificaciones al código en las capas superiores de arquitectura. Configuración del marco de aplicaciones Tomcat de Apache para incorporar Hibernate es un proceso sencillo una vez que haya instalado previamente los componentes necesarios.

Instrucciones

Conectar a MySQL que Apache

1 Descargar Connector / J, el conector de Java Database Connectivity (JDBC) para la base de datos MySQL.

2 Extraer el archivo .jar Connector / J en el directorio "WEB-INF / lib" donde su Tomcat y de hibernación bibliotecas residen.

3 Crear un directorio "clases" y un directorio "clases / src" para mantener sus archivos de código fuente de Java de texto en el directorio WEB-INF. Su hormiga script de construcción creará un directorio "clases / bin" para sostener los objetos binarios producidos a partir de su fuente en este mismo directorio.

4 Crear un archivo build.xml para Apache Ant para realizar las operaciones básicas necesarias para compilar y ejecutar un programa Java. Cada comando llamado especificado se puede llamar de forma independiente, sino que también forma una jerarquía de dependencias que lograr un objetivo de nivel superior. El último objetivo final es "ejecutar" el programa, que depende de la compilación después de archivos necesarios se copian y se eliminan los objetos compilados mayores.

<Nombre del proyecto = "hibernar-to-sql" default = "compilar">

&lt;property name="sourcedir" value="WEB-INF/classes/src"/>

& Lt; nombre de propiedad = "targetdir" value = "WEB-INF / classes / bin" />

& Lt; nombre de propiedad = "librarydir" value = "WEB-INF / lib" />

& lt; path ID = "bibliotecas">

& Lt; conjunto de archivos dir = "$ {} librarydir">

& Lt; incluye name = ". * Jar" />

& Lt; / conjunto de archivos>

& Lt; / path>

& Lt; nombre de destino = "limpia">

& Lt; borrar dir = "$ {} targetdir" />

& Lt; mkdir dir = "$ {} targetdir" />

& Lt; / target>

& Lt; nombre de destino = "compile" = "depende, copia-recursos limpios">

& Lt; javac SRCDIR = "$ {} sourcedir"

destdir = "$ {} targetdir"

classpathref = "bibliotecas">

& Lt; valor compilerarg = "- Xlint" />

& Lt; / javac>

& Lt; / target>

& lt; meta name = "copy-recursos">

& Lt; copia TODIR = "$ {} targetdir">

& Lt; conjunto de archivos dir = "$ {} SourceDir">

& Lt; excluye name = ". ** / * Java" />

& Lt; / conjunto de archivos>

& Lt; / copia>

& Lt; / target>

& Lt; meta name = "ejecución" depende = "compilar">

& Lt; java tenedor = "true" nombre de clase = "" events.EventManager classpathref = "bibliotecas">

& Lt; ruta de clase path = "$ {} targetdir" />

& Lt; valor arg = "$ {acción}" />

& Lt; / java>

& Lt; / target>

</ Project>

Configurar Hibernate

5 Crear una base de datos MySQL con un nombre de usuario y la contraseña que tiene acceso a la raíz. En este ejemplo se supone que el nombre de base de datos es "hibernación" con el nombre de usuario "uname" y la contraseña "mypwd."

6 Crear un archivo de texto denominado hibernate.cfg.xml en el directorio src. Comience por crear la estructura básica de XML en el que se va a escribir sus configuraciones específicas:

<! DOCTYPE PÚBLICO-configuración de hibernación

-//Hibernate/Hibernate Configuration DTD//EN

http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd>

<Hibernate-configuration>

&lt;session-factory>

& Lt; / session-factory>

</ Hibernate-configuración>

7 Añadir las siguientes líneas al elemento session-factory para configurar la base de datos MySQL, proporcionando el nombre de base de datos adecuada, identificador de usuario y contraseña:

<Session-factory>

&lt;!-- Configure MySQL -->

& Lt; nombre de propiedad = "connection.URL"> jdbc: mysql: // localhost / hibernación & lt; / property>

& Lt; propiedad name = "connection.username"> uname & lt; / property>

& Lt; nombre de propiedad = "connection.password"> mypwd & lt; / property>

& Lt; propiedad name = "connection.driver_class"> com.mysql.jdbc.Driver & lt; / property>

& Lt; nombre de propiedad = "dialecto"> org.hibernate.dialect.MySQLDialect & lt; / property>

</ Session-factory>

8 Añadir configuración para el paquete de agrupación de conexiones C3P0 que se distribuye con Hibernate añadiendo las siguientes líneas al elemento session-factory:

<! - C3P0 Connection Pool ->

<Property name = "c3p0.min_size"> 3 </ property>

<Property name = "c3p0.max_size"> 5 </ property>

<Property name = "c3p0.timeout"> 1800 </ property>

<Property name = "current_session_context_class"> hilo </ property>

9 Desactivar la caché de segundo nivel de Hibernate para evitar posibles problemas de sincronización cuando se utiliza con Tomcat:

<! - Desactivar la caché de segundo nivel. ->

<Property name = "cache.provider_class"> org.hibernate.cache.NoCacheProvider </ property>

<Property name = "cache.use_query_cache"> false </ property>

<Propiedad nombre = ""> cache.use_minimal_puts false </ property>

<Property name = "max_fetch_depth"> 3 </ property>

10 Establezca las siguientes propiedades para que pueda probar la configuración:

<! - Imprimir SQL en la salida estándar y volver a crear en la construcción ->

<Property name = "show_sql"> true </ property>

<Property name = "format_sql"> true </ property>

<Property name = "hbm2ddl.auto"> crear </ property>

Crear una clase Java para Pruebas

11 Escribir una clase Java simple y guardar en su directorio directorio del paquete. Para este ejemplo, el nombre de archivo clase será MyClass.java en el directorio src / com / eHow / sunombre:

com.ehow.yourname paquete; /

Sustituir con su nombre de dominio y /

java.util.Date importación;

Public class MiClase {

private Long id; /* a unique identifier for your object */

myProperty cadena privada;

pública a largo getId () {

Identificación del retorno;

}

setId public void (Long id) {

this.id = id;

}

Cadena getMyProperty pública () {

volver this.myProperty;

}

pública setMyProperty vacío (prop String) {

this.myProperty = puntal;

}

}

12 Crear un archivo MyClass.hbm.xml en el directorio del paquete en la que guardó el archivo MyClass.java asociado. Crear un elemento de propiedad para todos los miembros de su MiClase de datos que se guardan en una tabla de base de datos denominada miclase:

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

<! DOCTYPE PÚBLICA hibernación de mapeo

"-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"Http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<Hibernate-mapping>

&lt;class name="com.ehow.yourname.MyClass" table="myclass">

& Lt; ID = nombre de la columna = tipo "ID" "id" = "java.lang.Long">

& Lt; clase generador = "incremento" />

& Lt; / id>

& Lt; nombre de propiedad = "myProperty" />

& Lt; / class>

</ Mapeo de Hibernate->

13 Añadir una entrada en el elemento session-factory de su archivo .xml para asociar el archivo de configuración de asignación de MiClase con Hibernate:

<! - Asignación de Archivos ->

<Mapeo de recursos = "com.ehow.yourname.MyClass.hbm.xml" />

14 Ejecute el archivo de generación Ant. Si no hay errores, usted debe ver que un nuevo registro ha sido añadido a su base de datos MySQL:

$ Ant run

Buildfile: build.xml

Inicio Hibernate

15 Construir una clase de ayuda para implementar una fábrica de sesiones y guardarlo como HibernateUtil.java en su directorio "WEB-INF / classes". Importar su paquete y crear una función principal para probar la configuración:

org.hibernate.SessionFactory importación;

org.hibernate.Session importación;

org.hibernate.Transaction importación;

org.hibernate.cfg.Configuration importación;

com.ehow.yourname.MyPackage importación; /

Requerido para la función de prueba solo /

public class {HibernateUtil

private static final SessionFactory sessionFactory;

estática {

tratar {

// Inicializar fábrica con contenido de hibernate.cfg.xml

sessionFactory = nueva configuración () configurar () buildSessionFactory ()..;

} Catch (Throwable ex) {

System.err.println ( "Error en la creación SessionFactory inicial." + Ex);

arrojar nueva ExceptionInInitializerError (ex);

}

}

public static SessionFactory getSessionFactory () {

volver sessionFactory;

}

principales argumentos (String []) {public static void

MyClass mycls = new MyClass();

/ * El campo id voluntad incremento automático en un valor único que caracterizará a los registros * /

mycls.setMyProperty ( "mi propiedad");

Session session = getSession ();

transacción por transacción = session.beginTransaction ();

session.save (blog);

transaction.Commit (); / * Si esta prueba tiene éxito, encontrará un nuevo registro en la base de datos MySQL * /

}

}

dieciséis Construir una clase de escucha que comenzará a Hibernate y gestionar la persistencia de sus clases de datos asignados. Guarde la clase como HibernateListener.java en su directorio "WEB-INF / classes":

HibernateListener clase pública implementa ServletContextListener {

public void contextInitialized(ServletContextEvent event) {

HibernateUtil.getSessionFactory (); // Crear una fábrica

}

public void contextDestroyed (evento ServletContextEvent) {

HibernateUtil.getSessionFactory () close ().; // recursos libres

}

}

17 Agregue la siguiente línea al archivo web.xml en el directorio WEB-INF. Este asociar su clase de escucha con su solicitud:

<Oyente>

&lt;listener-class>com.ehow.yourname.HibernateListener&lt;/listener-class>

</ Oyente>

18 En una consola tipo de ventana "ant run" para ejecutar la secuencia de comandos de hormigas.