codestory

Verwenden Sie Hibernate Tools um Entity-Klassen aus Tabellen zu generieren

  1. Die Vorstellung
  2. Die Beispieldatenbank, die in diesem Dokument benutzt wird
  3. Mit Database durch "Database Development" verbinden
  4. Das Projekt erstellen
  5. Hibenate konfigurieren
  6. Der Anhang: Der Fehler bei der Erstellung von Entity
  7. Das Tutorial für Hibernate

1. Die Vorstellung

This document is based on:
  • Eclipse 4.5 (MARS)

  • Hibernate 5.1.0.Final

  • Hibernate Tools 4.3.1.Final.html

(Last update document: 21-05-2016).
Zuerst stellen Sie sicher, dass Sie "Hibernate Tools" in Eclipse installiert. "Hibernate Tools" ist ein Tool in die Tool in Toolkit von JBoss - "JBoss Tools".
Mehr sehen

2. Die Beispieldatenbank, die in diesem Dokument benutzt wird

Die Datenbank für die Illutration in diesen Artikel ist "simplehr". Sie können bei... referieren

3. Mit Database durch "Database Development" verbinden

In Eclipse wählen Sie:
  • Window/Perspective/Open Perspective/Other...
Erstellen Sie eine neue Connection zur Datenbank simplehr:
In dieser Anleitung werde ich zu Datenbank Oracle verbinden. Sie können mit einem andren Daten verbinden. Es ist ganz ähnlich
Drücken Sie auf die Icon um Driver für Ihre gewählte Datenbank anzumelden
Klicken Sie auf "Add JAR/Zip"
Geben Sie die Informationen ein um mit Datenbank zu verbinden. Danach klicken Sie auf "Test Connection" um stellenzusichern, dass die Datenverbindung erfolgreich ist.
Sie können die Struktur Ihrer Datenbank in "Data Source Explorer" sehen.
Versuchen Sie, die Daten in einer Tabelle abzufragen (query)

4. Das Projekt erstellen

Geben Sie ein:
  • Group Id: org.o7planning
  • Artiface Id: HibernateGenerateEntities
Das Projekt wird erstellt
Melden Sie die Bibliothek Hibernate 5 und die Bibliotheke JDBC für Oracle, MySQL, SQL Server an.
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
  http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.o7planning</groupId>
  <artifactId>HibernateGenerateEntities</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>HibernateGenerateEntities</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

 <repositories>
     <!-- Repository for ORACLE JDBC Driver -->
     <repository>
         <id>codelds</id>
         <url>https://code.lds.org/nexus/content/groups/main-repo</url>
     </repository>
 </repositories>


  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
   <!-- Hibernate -->
     <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
     <dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-core</artifactId>
         <version>5.1.0.Final</version>
     </dependency>

     <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
     <dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-entitymanager</artifactId>
         <version>5.1.0.Final</version>
     </dependency>


     <!-- http://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 -->
     <dependency>
         <groupId>org.hibernate</groupId>
         <artifactId>hibernate-c3p0</artifactId>
         <version>5.1.0.Final</version>
     </dependency>


     <!-- MySQL JDBC driver -->
     <!-- http://mvnrepository.com/artifact/mysql/mysql-connector-java -->
     <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>5.1.34</version>
     </dependency>

     <!-- Oracle JDBC driver -->
     <dependency>
         <groupId>com.oracle</groupId>
         <artifactId>ojdbc6</artifactId>
         <version>11.2.0.3</version>
     </dependency>

   <!-- SQLServer JDBC driver (JTDS) -->
   <!-- http://mvnrepository.com/artifact/net.sourceforge.jtds/jtds -->
   <dependency>
       <groupId>net.sourceforge.jtds</groupId>
       <artifactId>jtds</artifactId>
       <version>1.3.1</version>
   </dependency>
            
  </dependencies>
 
</project>

5. Hibenate konfigurieren

"Hibernate Tools" erlaubt, die Konfigurationsfile Hibernate ganz visuelle zu erstellen. Jetzt werden wir die File "hibernate.cfg.xml" durch das Tool erstellen.
Auf Eclipse wählen Sie:
  • Window/Perspective/Open Perspective/Other...
Rechtsklicken und wählen Sie "Add Configuration.." um die Konfigurationsfile Hibernate zu erstellen.
Geben Sie den Name der File "hibernate.cfg.xml" ein , und setzen Sie sie in dem Verzeichnis "src/main/java" des Projekt .
Sie können die Verbindungsinformation mit Datenbank eingeben oder aus die von Ihnen vorher angemeldeten Verbindungsinformation holen. Klicken Sie auf "Get values from Connection".
Wählen Sie die Connection "Oracle (Simplehr)", das Sie vorher erstellt haben. Klicken Sie auf OK um fortzufahren
Zunächst wählen Sie die Klasse "dialect", die Ihrem Datenbankstyp entspricht. Für Oracle ist esOracle10g. Achtung: Die Klasse dialect "Oracle10g" wird für die Version 10 und 11 von Oracle gemeinsam benutzt .
Klicken Sie auf OK um die Konfiguration zu erledigen.Nach dem Schritt gibt es die File "hibernate.cfg.xml", die in dem Verzeichnis src/main/java Ihres Projekt erstellt wird.
Die Konfiguration von Hibernate wurde erstellt. (auf Hibernate Configurations view sehen)
Auf "Package Explorer" sehen:
  • hibernate.cfg.xml
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
        <property name="hibernate.connection.password">12345</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:db12c</property>
        <property name="hibernate.connection.username">simplehr</property>
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
    </session-factory>
    
</hibernate-configuration>
Zunäscht werden wir konfigurieren, wie das Tool die Klasse entity aus dem Lesen der Tabelle-struktur in Databaseerstellt.
  • Window/Perspective/Open Perspective/Hibernate
Achtung: Wenn das Prozess der Erstellung von entity fehlerhaft ist, können Sie die Lösung im Anhang lesen

6. Der Anhang: Der Fehler bei der Erstellung von Entity

Vielleicht bei der Erstellung von Entity können Sie die Fehler wie folgend treffen
** NoClassDefFoundError **
org.hibernate.console.HibernateConsoleRuntimeException: Received a NoClassDefFoundError,
probably the console configuration classpath is incomplete or contains conflicting versions of the same class
Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class
org.hibernate.console.HibernateConsoleRuntimeException:
Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class
Received a NoClassDefFoundError, probably the console configuration classpath is incomplete or contains conflicting versions of the same class
java.lang.NoClassDefFoundError: org/apache/commons/collections/MultiMap
org/apache/commons/collections/MultiMap
java.lang.ClassNotFoundException: org.apache.commons.collections.MultiMap cannot be found by org.jboss.tools.hibernate.runtime.v_5_1_5.0.1.Final-v20160331-1852-B88
org.apache.commons.collections.MultiMap cannot be found by org.jboss.tools.hibernate.runtime.v_5_1_5.0.1.Final-v20160331-1852-B88
Sie brauchen konfigurieren, um die ältere Version von Hibernate zu benutzen
Und laufen Sie wieder um Entity zu erstellen:

7. Das Tutorial für Hibernate

Können Sie sich interessieren: