Trin-for- trin Hibernate Tomcat MySQL Tutorial

Vedvarende dataobjekter er et grundlæggende element i de fleste softwareprogrammer. Chad Baker / Photodisc / Getty Images

Dvale er en open-source framework, der understøtter vedvarende middle-tier dataobjekter skrevet i Java.En middle-tier objekt er en enhed af programkode, der bor i softwarearkitektur lag mellem brugergrænsefladen og datalageret.Ofte datalageret er en relationsdatabase, såsom MySQL, men det kan også være en formateret tekstfil.Den midterste-tier dataobjekter giver en bekvem måde at skrive højere niveau logik at manipulere og bruge programmet oplysninger.De tillader også den underliggende opbevaring mekanisme til at ændre uden at kræve ændringer til koden ved højere arkitektoniske lag.Konfiguration af Apaches Tomcat ansøgning rammer at indarbejde Dvale er en enkel proces, når du har forudinstalleret de nødvendige komponenter.

hvad du har brug

  • Installeret Apache Tomcat applikationsserver og dens afhængigheder, herunder Java komponenter
  • Installeret MySQL-database
  • Installeret Hibernate
  • Installeret Apache Ant
  • Tekst editor

Connect MySQL til Apache

  1. Hent Connector / J,Java Database Connectivity (JDBC) Stik til MySQL-databasen.

  2. Uddrag Connector / J .jar fil ind til "WEB-INF / lib" mappe, hvor din Tomcat og dvale bibliotekerne bor.

  3. Opret en "klasser" mappe og en "klasser / src" mappe til at holde dine Java tekst kildekodefiler i WEB-INF mappe.Din ant build script vil skabe en "klasser / bin" mappen til at holde de binære objekter fremstillet fra din kilde i denne samme mappe.

  4. Opret en build.xml fil til Apache Ant at udføre de grundlæggende funktioner, der er nødvendige for at kompilere og køre et Java-program.Hver navngivet kommando specificerede kan kaldes selvstændigt, men de udgør også et hierarki af afhængigheder, som opnår et højere niveau mål.Det ultimative endelige mål er at "køre" programmet, som afhænger af kompilering efter nødvendige filer er kopieret og ældre kompileret objekter slettes.

    & lt; projekt name = "dvale-til-sql" default = "kompilere" & gt;

    & amp; lt; ejendom name = "sourcedir" value = "WEB-INF / classes / src" / & gt;

    & amp; lt; ejendom name = "TARGETDIR" value = "WEB-INF / classes / bin" / & gt;

    & amp; lt; ejendom name = "librarydir" value = "WEB-INF / lib" / & gt;

    & amp; lt; path id = "biblioteker" & gt;

    & amp; lt; filsættet dir = "$ {librarydir}" & gt;

    & amp; lt; omfatter name = "* krukke." / & Gt;

    & amp; lt; / filsættet & gt;

    & amp; lt; / path & gt;

    & amp; lt; target name = "ren" & gt;

    & amp; lt; slet dir = "$ {TARGETDIR}" / & gt;

    & amp; lt; mkdir dir = "$ {TARGETDIR}" / & gt;

    & amp; lt; / target & gt;

    & amp; lt; target name = "kompilere" afhænger = "clean, kopi-ressourcer" & gt;

    & amp; lt; javac srcdir = "$ {sourcedir}"

    målkat = "$ {TARGETDIR}"

    classpathref = "biblioteker" & gt;

    & amp; lt; compilerarg value = "- Xlint" / & gt;

    & amp; lt; / javac & gt;

    & amp; lt; / target & gt;

    & amp; lt; target name = "Copy-ressourcer" & gt;

    & amp; lt; kopiere todir = "$ {TARGETDIR}" & gt;

    & amp; lt; filsættet dir = "$ {sourcedir}" & gt;

    & amp; lt; udelukke name = "** / * java." / & Gt;

    & amp; lt; / filsættet & gt;

    & amp; lt; / copy & gt;

    & amp; lt; / target & gt;

    & amp; lt; target name = "run" afhænger = "kompilere" & gt;

    & amp; lt; java gaffel = "true" klassenavn = "events.EventManager" classpathref = "biblioteker" & gt;

    & amp; lt; classpath path = "$ {TARGETDIR}" / & gt;

    & amp; lt; arg value = "$ {action}" / & gt;

    & amp; lt; / java & gt;

    & amp; lt; / target & gt;

    & lt; / projekt & gt;

Konfigurer Dvale

  1. Opret en MySQL-database med et brugernavn og en adgangskode, som har root-adgang.Dette eksempel forudsætter, at navnet databasen er "dvale" med brugernavn "uname" og password "mypwd."

  2. Opret en tekstfil med navnet hibernate.cfg.xml i dit src mappe.Start med at skabe den grundlæggende XML-skallen, hvor du vil skrive dine specifikke konfigurationer:!

    & lt; DOCTYPE dvale-konfiguration PUBLIC

    - // Dvale / Hibernate Configuration DTD // DA

    http://hibernate.sourceforge.net/hibernate-konfigurationen-3.0.dtd & gt;

    & lt; dvale-konfiguration & gt;

    & amp; lt; session fabrik & gt;

    & amp; lt; / session-fabrik & gt;

    & lt; / dvale-konfiguration & gt;

  3. Tilføj følgende linjer til session-fabrik element til at konfigurere MySQL-database, der leverer den passende database navn, brugernavn og password:

    & lt; session fabrik & gt;

    & amp; lt;! - Indstil MySQL - & gt;

    & amp; lt; ejendom name = "connection.URL" & gt; JDBC: mysql: // localhost / dvale & amp; lt; / ejendom & gt;

    & amp; lt; ejendom name = "connection.username" & gt; uname & amp; lt; / ejendom & gt;

    & amp; lt; ejendom name = "connection.password" & gt; mypwd & amp; lt; / ejendom & gt;

    & amp; lt; ejendom name = "connection.driver_class" & gt; com.mysql.jdbc.Driver & amp; lt; / ejendom & gt;

    & amp; lt; ejendom name = "dialekt" & gt; org.hibernate.dialect.MySQLDialect & amp; lt; / ejendom & gt;

    & lt; / session-fabrik & gt;

  4. Tilføj konfiguration for C3P0 tilslutning pulje pakke, der distribueres med Hibernate ved at tilføje følgende linier til session-fabrikken element:

    & lt; - C3P0 Connection Pool - & gt;!

    & lt; ejendom name = "c3p0.min_size" & gt; 3 & lt; / ejendom & gt;

    & lt; ejendom name = "c3p0.max_size" & gt; 5 & lt; / ejendom & gt;

    & lt; ejendom name = "c3p0.timeout" & gt; 1800 & lt; / ejendom & gt;

    & lt; ejendom name = "current_session_context_class" & gt; tråd & lt; / ejendom & gt;

  5. Deaktiver Dvale andet niveau cache for at undgå potentielle synkroniseringsproblemer, når du bruger med Tomcat:!

    & lt; - Deaktiver andet niveau cache.- & gt;

    & lt; ejendom name = "cache.provider_class" & gt; org.hibernate.cache.NoCacheProvider & lt; / ejendom & gt;

    & lt; ejendom name = "cache.use_query_cache" & gt; falsk & lt; / ejendom & gt;

    & lt; ejendom name = "cache.use_minimal_puts" & gt; falsk & lt; / ejendom & gt;

    & lt; ejendom name = "max_fetch_depth" & gt; 3 & lt; / ejendom & gt;

  6. Indstil følgende egenskaber, så du kan teste din konfiguration:!

    & lt; - Print SQL til standard output og genskabe når bygning - & gt;

    & lt; ejendom name = "show_sql" & gt; sandt & lt; / ejendom & gt;

    & lt; ejendom name = "format_sql" & gt; sandt & lt; / ejendom & gt;

    & lt; ejendom name = "hbm2ddl.auto" & gt; oprette & lt; / ejendom & gt;

Opret en Java klasse for Testing

  1. Skriv en simpel Java-klasse og gemme i din pakke mappe mappe.I dette eksempel vil klassen filnavnet være MyClass.java i src / dk / eHow / ditnavn mappe:

    pakke com.ehow.yourname;/ erstatte med dit navn og domæne /

    import java.util.Date;

    public class MinKlasse {

    privat Lang id;/ * En entydig identifikator for dit objekt * /

    private String myProperty;

    offentlige Lang getId () {

    tilbagevenden id;

    }

    public void SETID (Long id) {

    this.id = id;

    }

    offentlige String getMyProperty () {

    returnere this.myProperty;

    }

    public void setMyProperty (String prop) {

    this.myProperty = prop;

    }

    }

  2. Opret en MyClass.hbm.xml fil i pakken mappe, hvor du gemte den tilhørende MyClass.java fil.Opret en ejendom element for alle dine MinKlasse data medlemmer, der vil blive gemt på en database tabel ved navn MinKlasse:??

    & lt; xml version = "1.0" encoding = "UTF-8" & gt;

    & lt; DOCTYPE dvale-mapping OFFENTLIGE

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

    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" & gt!;

    & lt; dvale-mapping & gt;

    & amp; lt; class name = "com.ehow.yourname.MyClass" table = "MinKlasse" & gt;

    & amp; lt; id name = "id" kolonnen = "id" type = "java.lang.Long" & gt;

    & amp; lt; generator class = "tilvækst" / & gt;

    & amp; lt; / id & gt;

    & amp; lt; ejendom name = "myProperty" / & gt;

    & amp; lt; / klasse & gt;

    & lt; / dvale-mapping & gt;

  3. Tilføj en post i sessionen fabrik element i din .xml-fil til at knytte din MinKlasse kortlægning konfigurationsfil med Hibernate:

    & lt; - Kortlægning filer - & gt;!

    & lt; mapping ressource = "com.ehow.yourname.MyClass.hbm.xml" / & gt;

  4. Kør din ant build-fil.Hvis der ikke er fejl, skal du se, at en ny rekord er blevet tilføjet til din MySQL-database:

    $ ant køre

    Buildfile: build.xml

Start Dvale

  1. Byg en hjælper klasse til at gennemføre ensession fabrikken og gemme det som HibernateUtil.java i din "WEB-INF / Undervisning" mappe.Importer din pakke og skabe en hovedfunktion for at teste konfigurationen:

    import org.hibernate.SessionFactory;

    import org.hibernate.Session;

    import org.hibernate.Transaction;

    import org.hibernate.cfg.Configuration;

    import com.ehow.yourname.MyPackage;/ påkrævet til testfunktion kun /

    public class HibernateUtil {

    privat statisk endelige SessionFactory sessionFactory;

    statisk {

    try {

    // Initialiser fabrikken ved hjælp af indholdet af hibernate.cfg.xml

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

    } catch (Throwable ex) {

    System.err.println ("Indledende SessionFactory skabelse mislykkedes." + Ex);

    kaste nyt ExceptionInInitializerError (tidl);

    }

    }

    public static SessionFactory getSessionFactory () {

    returnere sessionFactory;

    }

    public static void vigtigste (String [] args) {

    MinKlasse mycls = nye MinKlasse ();

    / * id feltet vil automatisk forøgelse til en unik værdi, som vil skelne optegnelser * /

    mycls.setMyProperty ("My ejendom");

    Session session = getSession ();

    Transaktion transaktion = session.beginTransaction ();

    session.save (blog);

    transaction.commit ();/ * Hvis denne test lykkes, vil du finde en ny rekord i din MySQL-database * /

    }

    }

  2. Byg en lytter klasse, der vil starte Hibernate og styre den vedvarende dine kortlagte data klasser.Gem klassen som HibernateListener.java i din "WEB-INF / Undervisning" mappe:

    public class HibernateListener implementerer ServletContextListener {

    public void contextInitialized (ServletContextEvent begivenhed) {

    HibernateUtil.getSessionFactory ();// Opretter en fabrik

    }

    public void contextDestroyed (ServletContextEvent begivenhed) {

    HibernateUtil.getSessionFactory () tæt (.);// Frigøre ressourcer

    }

    }

  3. Tilføj følgende linje til web.xml filen i din WEB-INF mappe.Dette knytte din lytteren klasse med din ansøgning:

    & lt; lytteren & gt;

    & amp; lt; lytteren klasse & gt; com.ehow.yourname.HibernateListener & amp; lt; / lytteren klasse & gt;

    & lt; / lytteren & gt;

  4. I et konsol vindue type "ant køre" for at udføre ant script.

406
0
3
Php / My Sql Programmering