Step-by-Step Hibernate Tomcat MySQL Tutorial

April 22

Step-by-Step Hibernate Tomcat MySQL Tutorial


Hibernate è un framework open-source che supporta la persistenza di oggetti dati di livello intermedio scritto in Java. Un oggetto di livello intermedio è una unità di codice di programma che risiede nello strato di architettura software tra l'interfaccia utente e l'archivio dati. Spesso l'archivio dati è un database relazionale come MySQL, ma può anche essere un file di testo formattato. Gli oggetti dati di livello intermedio forniscono un modo conveniente per scrivere la logica di livello superiore per manipolare e utilizzare le informazioni dell'applicazione. Essi consentono anche il meccanismo di stoccaggio sottostante per cambiare senza richiedere modifiche al codice a livelli più alti di architettura. Configurazione framework applicativo Tomcat di Apache per incorporare Hibernate è un processo semplice una volta che avete preinstallato i componenti necessari.

istruzione

Collegare MySQL per Apache

1 Scarica Connector / J, il connettore Java Database Connectivity (JDBC) per il database MySQL.

2 Estrarre il file .jar Connector / J in al "/ WEB-INF lib" directory in cui il Tomcat e Hibernate librerie risiedono.

3 Creare una directory "classi" e un "/ classi src" directory per contenere i file di codice sorgente Java di testo nella directory WEB-INF. Lo script di build Ant creerà una directory "classi / bin" per contenere gli oggetti binari prodotte dalla sorgente in questa stessa directory.

4 Creare un file build.xml per Apache Ant per eseguire le operazioni di base necessarie per compilare ed eseguire un programma Java. Ogni comando di nome specificato può essere chiamato in modo indipendente, ma anche formano una gerarchia di dipendenze che consentano di raggiungere un obiettivo di più alto livello. L'obiettivo finale finale è quello di "eseguire" il programma, che dipende da compilare dopo che i file necessari vengono copiati e oggetti compilati precedenti vengono eliminati.

<Nome di progetto = default "hibernate-to-sql" = "compilazione">

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

& Lt; property name = "targetdir" value = "WEB-INF / classes / bin" />

& Lt; property name = "librarydir" value = "WEB-INF / lib" />

& lt; percorso id = "librerie">

& Lt; fileset dir = "$ {} librarydir">

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

& Lt; / set di file>

& Lt; / path>

& Lt; nome target = "pulita">

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

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

& Lt; / target>

& Lt; nome target = "compilare" dipende = "pulito, copia-risorse">

& Lt; javac srcdir = "$ {} SourceDir"

DESTDIR = "$ {} targetdir"

classpathref = "librerie">

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

& Lt; / javac>

& Lt; / target>

& lt; destinazione name = "copy-risorse">

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

& Lt; fileset dir = "$ {} SourceDir">

& Lt; nome esclude = ". ** / * Java" />

& Lt; / set di file>

& Lt; / copia>

& Lt; / target>

& Lt; destinazione name = "run" dipende = "compilazione">

& Lt; java forchetta = "true" classname = "events.EventManager" classpathref = "librerie">

& Lt; classpath percorso = "$ {} targetdir" />

& Lt; valore arg = "$ {azione}" />

& Lt; / java>

& Lt; / target>

</ Project>

Configurare Hibernate

5 Creare un database MySQL con un nome utente e una password che ha accesso come root. Questo esempio presuppone che il nome del database è "ibernazione" con il nome utente "uname" e la password "MyPwd."

6 Creare un file di testo chiamato hibernate.cfg.xml nella directory src. Iniziamo creando il guscio XML di base in cui si scrive le configurazioni specifiche:

<! DOCTYPE PUBBLICA hibernate-configuration

-//Hibernate/Hibernate Configuration DTD//EN

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

<Hibernate-configuration>

&lt;session-factory>

& Lt; / session-factory>

</ Configuration hibernate->

7 Aggiungere le seguenti righe elemento sessione di fabbrica per configurare il database MySQL, fornendo il nome del database appropriata, ID utente e password:

<Session-factory>

&lt;!-- Configure MySQL -->

& Lt; property name = "connection.URL"> jdbc: mysql: // localhost / hibernate & lt; / property>

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

& Lt; property name = "connection.password"> MyPwd & lt; / property>

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

& Lt; property name = "dialetto"> org.hibernate.dialect.MySQLDialect & lt; / property>

</ Session-factory>

8 Aggiungere la configurazione per il pacchetto di pool di connessioni C3P0 che viene distribuito con Hibernate aggiungendo le seguenti righe al elemento sessione di fabbrica:

<! - Connection Pool C3P0 ->

<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"> filo </ property>

9 Disabilitare la cache di secondo livello di Hibernate per evitare potenziali problemi di sincronizzazione quando si utilizza con Tomcat:

<! - Disabilitare cache di secondo livello. ->

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

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

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

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

10 Impostare le seguenti proprietà per consentire di testare la configurazione:

<! - Stampa SQL standard output e ricreare quando si costruisce ->

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

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

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

Creare una classe Java per il test

11 Scrivi una semplice classe Java e salvare nella directory directory del pacchetto. In questo esempio, il nome del file di classe sarà MyClass.java in src / directory com / eHow / tuonome:

pacchetto com.ehow.yourname; /

Sostituire con il tuo nome e il dominio /

import java.util.Date;

public class MyClass {

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

String myProperty privato;

Lungo pubblico getId () {

tornare id;

}

setId public void (Long id) {

this.id = id;

}

public String getMyProperty () {

tornare this.myProperty;

}

setMyProperty public void (String prop) {

this.myProperty = prop;

}

}

12 Creare un file MyClass.hbm.xml nella directory del pacchetto in cui è stato salvato il file MyClass.java associato. Creare un elemento di proprietà per tutti i membri di dati MyClass che verranno salvati in una tabella di database denominata classe:

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

<! DOCTYPE hibernate-mapping PUBBLICO

"-//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 name = "id" colonna = tipo "id" = "java.lang.Long">

& Lt; classe generatore = "incremento" />

& Lt; / id>

& Lt; property name = "myProperty" />

& Lt; / class>

</ Mappatura hibernate->

13 Aggiungere una voce nell'elemento sessione di fabbrica del vostro file XML per associare il file di configurazione di mapping MiaClasse con Hibernate:

<! - File Mapping ->

<Mappatura delle risorse = "com.ehow.yourname.MyClass.hbm.xml" />

14 Eseguire il file Ant. Se non ci sono errori, si dovrebbe vedere che un nuovo record è stato aggiunto al vostro database MySQL:

$ Ant run

BuildFile: build.xml

Inizio Hibernate

15 Costruire una classe helper per implementare una fabbrica di sessione e salvarlo come HibernateUtil.java nella directory "WEB-INF / classes". Importa il pacchetto e creare una funzione principale per testare la configurazione:

import org.hibernate.SessionFactory;

import org.hibernate.Session;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import com.ehow.yourname.MyPackage; /

Richiesto per la funzione di prova solo /

public class HibernateUtil {

private static final SessionFactory sessionFactory;

static {

provare {

// Inizializza fabbrica con contenuto di hibernate.cfg.xml

sessionFactory = new Configuration () configurare () buildSessionFactory ()..;

} Catch (ex Throwable) {

System.err.println ( "creazione SessionFactory iniziale è stata respinta." + Ex);

throw new ExceptionInInitializerError (ex);

}

}

public static SessionFactory getSessionFactory () {

tornare sessionFactory;

}

Main (string [] args) {public static void

MyClass mycls = new MyClass();

/ * Il campo id volontà auto-incremento di un valore unico che distinguerà record * /

mycls.setMyProperty ( "My Property");

Session session = getSession ();

Transazione = session.beginTransaction ();

session.save (blog);

transaction.commit (); / * Se questo test ha esito positivo, troverete un nuovo record nel database MySQL * /

}

}

16 Costruire una classe ascoltatore che inizierà Hibernate e gestire la persistenza delle classi di dati mappati. Salvare la classe come HibernateListener.java nella directory "WEB-INF / classes":

public class HibernateListener implementa ServletContextListener {

public void contextInitialized(ServletContextEvent event) {

HibernateUtil.getSessionFactory (); // Crea una fabbrica

}

public void contextDestroyed (evento ServletContextEvent) {

HibernateUtil.getSessionFactory () close ().; // risorse gratuite

}

}

17 Aggiungere la seguente riga al file web.xml nella directory WEB-INF. Questa associare la classe ascoltatore con l'applicazione:

<Ascoltatore>

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

</ Ascoltatore>

18 In una console tipo di finestra "ant run" per eseguire lo script ant.