Maven 2 Hibernate 3.2 MySQL-Beispiel (XML-Zuordnung)

Maven 2 + Hibernate 3.2 + MySQL-Beispiel (XML-Zuordnung)

Note
Dieser Artikel ist veraltet. Weitere Informationen finden Sie im neuesten Hibernate 3.6-Tutorial unter -Maven 3 + Hibernate 3.6 + Oracle 11g Example (XML Mapping).

Diese Kurzanleitung zeigt Ihnen, wie Sie mit Maven ein einfaches Java-Projekt erstellen und mit Hibernate einen Datensatz in die MySQL-Datenbank einfügen.

In diesem Artikel verwendete Tools und Technologien:

  1. Maven 2.2.1

  2. JDK 1.6.0_13

  3. Ruhezustand 3.2.3.GA

  4. MySQL 5.0

1. Tabellenerstellung

MySQL-Skript zum Erstellen einer "Stock" -Tabelle.

DROP TABLE IF EXISTS `stock`;
CREATE TABLE `stock` (
  `STOCK_ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `STOCK_CODE` VARCHAR(10) NOT NULL,
  `STOCK_NAME` VARCHAR(20) NOT NULL,
  PRIMARY KEY (`STOCK_ID`) USING BTREE,
  UNIQUE KEY `UNI_STOCK_NAME` (`STOCK_NAME`),
  UNIQUE KEY `UNI_STOCK_ID` (`STOCK_CODE`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. Projektstruktur mit Maven generieren

Geben Sie an der Eingabeaufforderung "mvn archetype:generate" aus, wählen Sie Projekt Nr. 15 aus, um ein Schnellstart-Java-Projekt von Maven zu erstellen, und geben Sie dann die Informationen Ihres Projekts ein - groupId, artefaktId und package.

E:\workspace>mvn archetype:generate
[INFO] Scanning for projects...
...
Choose a number:
(1/2/3....) 15: : 15
...
Define value for groupId: : com.example.common
Define value for artifactId: : HibernateExample
Define value for version:  1.0-SNAPSHOT: :
Define value for package:  com.example.common: : com.example.common
[INFO] OldArchetype created in dir: E:\workspace\HibernateExample
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------

3. In Eclipse-Projekt konvertieren

Geben Sie "mvn eclipse:eclipse" ein, um das neu generierte Projekt in das Eclipse-Projekt zu konvertieren

4. Importieren Sie das konvertierte Projekt in Eclipse IDE

Wählen Sie in Eclipse IDE "Datei" -> "Importieren" -> "Allgemeiner Ordner", "Vorhandene Projekte in Arbeitsbereich" -> "Wählen Sie den Speicherort für Ihren Projektordner". Done

5. Erstellen Sie einen Ressourcenordner

Erstellen Sie einen Ressourcenordner unter dem Ordner "src/main", "/src/main/resources". Später werden alle XML-Dateien des Ruhezustands hier abgelegt. Maven behandelt alle Dateien in diesem Ordner als Ressourcendateien und kopiert sie automatisch in die Ausgabeklassen.

6. Projektstruktur überprüfen

Stellen Sie sicher, dass die Ordnerstruktur wie folgt ist

hibernate-example-1

Maven generiert die gesamte Java-Standardordnerstruktur für Sie (neben dem Ressourcenordner enthält der Schnellstart-Archetyp 15 nicht den Ressourcenordner).

7. Hibernate- und MySQL-Abhängigkeit hinzufügen

Ändern Sie diepom.xml-Datei des Maven und fügen Sie Unterstützung für Hibernate und MySQL hinzu. Hibernate wird benötigt dom4j, commons-logging, commons-collections und cglib als Abhängigkeitsbibliothek, füge es hinzu.

Datei: pom.xml


4.0.0
  com.example.common
  HibernateExample
  jar
  1.0-SNAPSHOT
  HibernateExample
  http://maven.apache.org
  

    
      junit
      junit
      3.8.1
      test
    

        
    
        mysql
        mysql-connector-java
        5.1.9
    

    
    
        hibernate
        hibernate3
        3.2.3.GA
    


    
    
        dom4j
        dom4j
        1.6.1
    

    
        commons-logging
        commons-logging
        1.1.1
    

    
        commons-collections
        commons-collections
        3.2.1
    

    
        cglib
        cglib
        2.2
    
    

    
        javax.transaction
        jta
        1.1
    

  

Wenn Sie diemvn eclipse:eclipse ausgeben, lädt Maven alle Hibernate- und MySQL-Bibliotheken automatisch herunter und legt sie in Mavens lokalem Repository ab. Gleichzeitig fügt Maven die heruntergeladenen Bibliotheken aus Abhängigkeitsgründen zu Eclipse „.classpath“ hinzu. Ich mag es wieder :), es ist nicht nötig, die Bibliothek zu finden und sie selbst zu kopieren.

8. Hibernate-Mapping-Datei + Modellklasse erstellen

Voraussetzung ist, dass eine Tabelle mit dem Namen "stock" erstellt wurde. Jetzt müssen Sie eine XML-Zuordnungsdatei für den Ruhezustand und eine Modellklasse dafür erstellen.

Erstellen Sie eineStock.hbm.xml-Datei und fügen Sie sie in „src/main/resources/com/example/common/Stock.hbm.xml“ ein. Erstellen Sie den Ordner "resources / com / example / common /", falls dieser nicht vorhanden ist.

Datei: Stock.hbm.xml





    
        
            
            
        
        
            
        
        
            
        
    

Erstellen Sie eine Stock.java-Datei und geben Sie sie in "src/main/java/com/example/common/Stock.java" ein.

Datei: Stock.java

package com.example.common;

/**
 * Model class for Stock
 */
public class Stock implements java.io.Serializable {

    private static final long serialVersionUID = 1L;

    private Integer stockId;
    private String stockCode;
    private String stockName;

    public Stock() {
    }

    public Stock(String stockCode, String stockName) {
        this.stockCode = stockCode;
        this.stockName = stockName;
    }

    public Integer getStockId() {
        return this.stockId;
    }

    public void setStockId(Integer stockId) {
        this.stockId = stockId;
    }

    public String getStockCode() {
        return this.stockCode;
    }

    public void setStockCode(String stockCode) {
        this.stockCode = stockCode;
    }

    public String getStockName() {
        return this.stockName;
    }

    public void setStockName(String stockName) {
        this.stockName = stockName;
    }

}

Note
Das Erstellen der Modellklasse und Zuordnungsdateien sind in großen Anwendungen recht mühsam. Mit Hibernate-Tools kann dies automatisch generiert werden. Überprüfen Sie diesen Artikel -Hibernate tools to generate it automatically.

9. Erstellen Sie eine Ruhezustands-Konfigurationsdatei

Erstellen Sie die Konfigurationsdatei eines Ruhezustands und legen Sie sie im Ressourcen-Stammordner "src/main/resources/hibernate.cfg.xml" ab. Tragen Sie Ihre MySQL-Einstellung entsprechend ein.

Datei: hibernate.cfg.xml




    
        false
        com.mysql.jdbc.Driver
        password
        jdbc:mysql://localhost:3306/example
        root
        org.hibernate.dialect.MySQLDialect
        true
        
    

Wenn Sie die Eigenschaft "show_sql" auf "true" setzen, wird die Hibernate-SQL-Anweisung ausgegeben. Hibernate Dialect teilt Ihrer Hibernate-Anwendung mit, welches SQL generiert werden muss, um mit Ihrer Datenbank zu kommunizieren. Weitere Informationen zum Datenbankdialekt finden Sie in diesem Artikel -Hibernate dialect collection.

10. Erstellen Sie die Hibernate Utility-Klasse

Erstellen Sie eine HibernateUtil.java-Klasse, um den Start von Hibernate zu erledigen und die Sitzung einfach abzurufen. Erstellen Sie einen Persistenzordner und legen Sie diese Datei in "src/main/java/com/example/persistence/HibernateUtil.java" ab.

Datei: HibernateUtil.java

package com.example.persistence;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            return new Configuration().configure().buildSessionFactory();
        }
        catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public static void shutdown() {
        // Close caches and connection pools
        getSessionFactory().close();
    }

}

11. Überprüfen Sie die Projektstruktur erneut

Klingt so, als würden Sie viele neue Dateien und Ordner erstellen, diese überprüfen und die Ordnerstruktur wie folgt überprüfen

hibernate-example-2

12. Code es, um den Datensatz zu speichern

Ändern Sie die Standardklasse App.java wie folgt:

Datei: App.java

package com.example.common;

import org.hibernate.Session;
import com.example.persistence.HibernateUtil;

public class App
{
    public static void main( String[] args )
    {
        System.out.println("Maven + Hibernate + MySQL");
        Session session = HibernateUtil.getSessionFactory().openSession();

        session.beginTransaction();
        Stock stock = new Stock();

        stock.setStockCode("4715");
        stock.setStockName("GENM");

        session.save(stock);
        session.getTransaction().commit();
    }
}

13. Führen Sie es aus und sehen Sie die Ausgabe

Führen Sie Ihre App.java aus und fügen Sie einen neuen Datensatz in die Tabelle "Stock" ein.

Maven + Hibernate + MySQL
...
Dec 17, 2009 5:05:26 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
Hibernate: insert into example.stock (STOCK_CODE, STOCK_NAME) values (?, ?)

Erledigt.

Laden Sie es herunter -Maven_Hibernate_MySQL_Example.zip (12kb)