Step-by-Step Hibernate Tomcat MySQL Tutorial

Step-by-Step Hibernate Tomcat MySQL Tutorial


Dvalemodus er en åpen kildekode-rammeverk som støtter utholdenhet av midt-tier dataobjekter som er skrevet i Java. En middel tier objekt er en enhet av programkode som ligger i programvarearkitektur lag mellom brukergrensesnittet og datalageret. Ofte datalageret er en relasjonsdatabase som MySQL, men det kan også være en formatert tekstfil. Den midterste laget dataobjekter gi en praktisk måte å skrive på høyere nivå logikk for å manipulere og bruke programmet informasjon. De lar også den underliggende lagringsmekanisme for å endre uten å kreve endringer i koden ved høyere arkitektoniske lag. Konfigurasjon av Apache Tomcat søknad rammeverk for å innlemme Hibernate er en grei prosess når du har forhåndsinstallert nødvendige komponenter.

Bruksanvisning

Koble MySQL til Apache

1 Last ned Connector / J, Java Database Connectivity (JDBC) Connector for MySQL database.

2 Pakk ut Connector / J .jar fil inn til "WEB-INF / lib" katalog der Tomcat og dvalemodus biblioteker bor.

3 Lag en "klasser" katalog og en "klasser / src" katalog å holde Java tekst kildekodefiler i WEB-INF. Din maur bygge scriptet vil lage en "klasser / bin" katalog til å holde de binære gjenstander produsert fra kilde i den samme katalogen.

4 Lag en build.xml fil for Apache Ant til å utføre de grunnleggende operasjoner som er nødvendige for å kompilere og kjøre et Java-program. Hver heter kommandoen spesifisert kan kalles uavhengig av hverandre, men de danner også et hierarki av avhengigheter som oppnår et høyere nivå mål. Det ultimate målet er å "kjøre" programmet, som er avhengig av å samle etter nødvendige filer kopieres og eldre samlet gjenstander blir slettet.

<Prosjektnavn = "dvale-til-sql" default = "kompilere">

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

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

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

& lt; sti id = "biblioteker">

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

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

& Lt; / fileset>

& Lt; / path>

& Lt; target name = "ren">

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

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

& Lt; / target>

& Lt; target name = "kompilere" avhenger = "rene, kopi-ressurser">

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

destdir = "$ {targetdir}"

classpathref = "biblioteker">

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

& Lt; / javac>

& Lt; / target>

& lt; target name = "kopi-ressurser">

& Lt; kopi todir = "$ {targetdir}">

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

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

& Lt; / fileset>

& Lt; / kopi>

& Lt; / target>

& Lt; target name = "run" avhenger = "kompilere">

& Lt; java gaffel = "true" classname = "events.EventManager" classpathref = "biblioteker">

& Lt; classpathen path = "$ {targetdir}" />

& Lt; arg value = "$ {handling}" />

& Lt; / java>

& Lt; / target>

</ Prosjekt>

Konfigurer Hibernate

5 Lag en MySQL database med et brukernavn og passord som har root-tilgang. Dette eksempelet forutsetter at databasenavnet er "dvale" med brukernavnet "uname" og passord "mypwd."

6 Opprett en tekstfil kalt hibernate.cfg.xml i src katalogen. Start med å lage den grunnleggende XML skall der du vil skrive dine spesifikke konfigurasjoner:

<! DOCTYPE dvale-konfigurasjon PUBLIC

-//Hibernate/Hibernate Configuration DTD//EN

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

<I hi-konfigurasjon>

&lt;session-factory>

& Lt; / session-fabrikk>

</ Dvale-konfigurasjon>

7 Legg til følgende linjer til session-fabrikken element for å konfigurere MySQL database, leverer riktig databasenavn, brukernavn og passord:

<Session-fabrikk>

&lt;!-- Configure MySQL -->

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

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

& Lt; eiendom name = "connection.password"> mypwd & lt; / eiendom>

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

& Lt; eiendom name = "dialekt"> org.hibernate.dialect.MySQLDialect & lt; / eiendom>

</ Session-fabrikk>

8 Legg konfigurasjon for C3P0 forbindelsen bassenget pakke som distribueres med Hibernate ved å legge til følgende linjer i økten-fabrikken element:

<! - C3P0 Connection Pool ->

<Eiendom name = "c3p0.min_size"> 3 </ eiendom>

<Eiendom name = "c3p0.max_size"> 5 </ eiendom>

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

<Eiendom name = "current_session_context_class"> tråden </ eiendom>

9 Deaktiver dvale nest nivå cache for å unngå potensielle synkroniseringsproblemer når du bruker med Tomcat:

<! - Deaktiver andrenivåbuffer. ->

<Eiendom name = "cache.provider_class"> org.hibernate.cache.NoCacheProvider </ eiendom>

<Eiendom name = "cache.use_query_cache"> false </ eiendom>

<Eiendom name = "cache.use_minimal_puts"> false </ eiendom>

<Eiendom name = "max_fetch_depth"> 3 </ eiendom>

10 Angi følgende egenskaper for å gjøre deg i stand til å teste konfigurasjonen:

<! - Print SQL til standard ut og gjenskape når du bygger ->

<Eiendom name = "show_sql"> true </ eiendom>

<Eiendom name = "format_sql"> true </ eiendom>

<Eiendom name = "hbm2ddl.auto"> skape </ eiendom>

Lag en Java-klasse for testing

11 Skriv en enkel Java-klasse og lagre i pakken katalogen katalogen. For dette eksempelet, vil klasse filnavnet være MyClass.java i src / no / eHow / dittnavn katalogen:

pakke com.ehow.yourname; /

Erstatte med ditt navn og domene /

import java.util.Date;

public class MyClass {

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

private String myProperty;

offentlig Long getId () {

tilbake id;

}

public void SETID (Long id) {

this.id = id;

}

public String getMyProperty () {

tilbake this.myProperty;

}

public void setMyProperty (String prop) {

this.myProperty = prop;

}

}

12 Lag en MyClass.hbm.xml fil i pakken katalogen der du lagret den tilknyttede MyClass.java filen. Opprett en eiendom element for alle dine MyClass data medlemmer som vil bli lagret i en database tabell kalt MyClass:

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

<! DOCTYPE dvale-mapping PUBLIC

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

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

<I hi-mapping>

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

& Lt; id name = "id" column = "id" type = "java.lang.Long">

& Lt; generator class = "tilvekst" />

& Lt; / id>

& Lt; eiendom name = "myProperty" />

& Lt; / class>

</ Dvale-mapping>

1. 3 Legg til en oppføring i sesjonen-fabrikken element av XML-filen til å knytte MyClass kartlegging konfigurasjonsfil med Hibernate:

<! - Kartlegging Files ->

<Kartlegging ressurs = "com.ehow.yourname.MyClass.hbm.xml" />

14 Kjør maur bygge fil. Hvis det ikke er noen feil, skal du se at en ny rekord er lagt til din MySQL database:

$ Maur løp

Buildfile: build.xml

Begynn Hibernate

15 Bygg en hjelper klasse for å gjennomføre en økt fabrikk og lagre det som HibernateUtil.java i din "WEB-INF / classes" katalogen. Importer pakke og lage en hovedfunksjon å teste konfigurasjonen:

import org.hibernate.SessionFactory;

import org.hibernate.Session;

import org.hibernate.Transaction;

import org.hibernate.cfg.Configuration;

import com.ehow.yourname.MyPackage; /

Nødvendig for testfunksjon /

public class HibernateUtil {

private static final SessionFactory sessionFactory;

statisk {

try {

// Initial fabrikken ved hjelp av innholdet i hibernate.cfg.xml

sessionFactory = ny konfigurasjon () konfigurere () buildSessionFactory ()..;

} Catch (Throwable ex) {

System.err.println ( "Initial SessionFactory skapelsen mislyktes." + Ex);

kaste nytt ExceptionInInitializerError (ex);

}

}

public static SessionFactory getSessionFactory () {

tilbake sessionFactory;

}

public static void main (String [] args) {

MyClass mycls = new MyClass();

/ * Id feltet vil automatisk tilvekst til en unik verdi som vil skille poster * /

mycls.setMyProperty ( "My Property");

Session session = getSession ();

Transaksjons transaksjon = session.beginTransaction ();

session.save (blogg);

transaction.commit (); / * Hvis denne testen er vellykket, vil du finne en ny rekord i MySQL-databasen * /

}

}

16 Bygg en lytter klasse som vil starte Hibernate og styre utholdenhet av tilordnede dataklasser. Lagre klassen som HibernateListener.java i din "WEB-INF / classes" katalogen:

public class HibernateListener implementerer ServletContextListener {

public void contextInitialized(ServletContextEvent event) {

HibernateUtil.getSessionFactory (); // Oppretter en fabrikk

}

public void contextDestroyed (ServletContextEvent hendelse) {

HibernateUtil.getSessionFactory () close ().; // gratis ressurser

}

}

17 Legg til følgende linje til web.xml-filen i WEB-INF. Dette knytter lytteren klasse med søknaden:

<Lytteren>

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

</ Lytteren>

18 I et konsollvindu type "maur run" for å utføre mauren script.