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">
<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>
<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>
<!-- 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>
<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>
<listener-class>com.ehow.yourname.HibernateListener</listener-class>
</ Lytteren>
18 I et konsollvindu type "maur run" for å utføre mauren script.