Hibernate erster Versuch

der_tobi

Mitglied
Hi zusammen,

ich versuch mich grad an Hibernate mit der Datenbankanbindung. Ich mach nur ein simples Tutorial wo mit Hibernate einfach nur 3 Datensätze in eine DB schreiben soll. Selbst das klappt nicht.

meine Klasse:
Java:
public class FirstExample {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Session session = null;
		
	    try{
	    	// This step will read hibernate.cfg.xml 
	    	//	and prepare hibernate for use
	    	System.out.println("Start");
	    	
	    	SessionFactory sessionFactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
	    	
	    	System.out.println("Start");
	    	session =sessionFactory.openSession();
	           //	Create new instance of Contact and set 
	    	//	values in it by reading them from form object
	    	
	        System.out.println("Inserting Record");
	        Contact contact = new Contact();
	        contact.setId(3);
	        contact.setFirstName("Deepak");
	        contact.setLastName("Kumar");
	        contact.setEmail("deepak_38@yahoo.com");
	        session.save(contact);
	        System.out.println("Done");
	        
	    }catch(Exception e){
	      System.out.println(e.getMessage());
	    }
	    finally{
	      // Actual contact insertion will happen at this step
	     session.flush();
                // Bei dem Flush kommt immer die Exception
	     session.close();

	      }

	}

}

Beim Ausführen bekomm ich immer eine Exception:
Exception in thread "main" java.lang.NullPointerException
at tutorial.hibernate.FirstExample.main(FirstExample.java:42)

Das ist genau bei dem Flush. So wie es aussieht scheitert er aber schon an der SessionFactory, weil er mir nichtmal das zweite "Start" auf die Konsole printet.

Datenbankserver läuft und die Datenbank "hibernatetutorial" habe ich angelegt. Die xml Files liegen alle im seleb Package wie die Java Klasse im Eclipse.

Ich würd mich freuen wenn mir jmd helfen kann, bin absoluter Neuling mit Hibernate.


Die Contact Klasse enthält einfach nur Variablen mit den Getter und Setter Methoden.

Meine hibernate.cfg.xml:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/hibernatetutorial</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- Mapping files -->
<mapping resource="contact.hbm.xml"/>
</session-factory>
</hibernate-configuration>
[/XML]

und das contact.hbm.xml Mapping:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="tutorial.hibernate.Contact" table="CONTACT">
<id name="id" type="long" column="ID" >
<generator class="assigned"/>
</id>

<property name="firstName">
<column name="FIRSTNAME" />
</property>
<property name="lastName">
<column name="LASTNAME"/>
</property>
<property name="email">
<column name="EMAIL"/>
</property>
</class>
</hibernate-mapping>
[/XML]
 
S

SlaterB

Gast
@Aradauer
lesen ;)

------

in das finally gehört ein Test, ob session null ist,
durch die Exception dort wird die eigentliche Fehlermeldung, die zu eben keiner Session führt, überdeckt,

bringe die erstmal zum Vorschein indem du das finally reparierst, dann gehts weiter,
bzw. was ist denn mit Zeile 31
> System.out.println(e.getMessage());
kommt da nix? besser e.printStackTrace();
 

der_tobi

Mitglied
Zeile 42 entspricht hier 35, eben das session.flush();

In das catch fährt er irgendwie nicht rein. e.printStackTrace(); habe ich dort auch noch reingeschrieben, es kommt aber nicht mehr auf der Konsole. Die Ausgabe ist:

Start
Exception in thread "main" java.lang.NullPointerException
at tutorial.hibernate.FirstExample.main(FirstExample.java:43)

@SlaterB: Was meinst du mit finally reparieren?
Anfangs hat ich auch mal ne Meldung das die hibernate configure und die contact.hbm.xml nicht gefunden werden, aber das kommt jetzt nicht mehr.

Das Tutorial ist von hier Writing First Hibernate Code

Danke!
 
S

SlaterB

Gast
> Was meinst du mit finally reparieren?
in das finally gehört ein Test, ob session null ist,
wenn du vorher prüfst fliegt keine Fehlermeldung an dieser Stelle

wobei ich im ersten Posting nicht so genau an dein try/catch gedacht habe,
damit müsste die erste Fehlemeldung auch zu sehen sein

bei
Java:
public class Test
{
    public static void main(String[] args)
    {
        String session = null;
        try
        {
            if (Math.random() < 0.5)
            {
                throw new Exception("E"); // Zeile 26
            }

            session = "test";
        }
        catch (Exception e)
        {
            System.err.println("folgene Exception selber gefangen");
            e.printStackTrace();
        }
        finally
        {
            session.length(); // Zeile 38
        }

    }
}
kommt zu 50% gar keine Ausgabe, zu 50% aber
Code:
folgene Exception selber gefangen
java.lang.Exception: E
	at test.Test.main(Test.java:26)
Exception in thread "main" java.lang.NullPointerException
	at test.Test.main(Test.java:38)
also beide Fehlermeldungen

wenn das finally korrigiert ist kommt die zweite Exception auf jeden Fall nicht mehr,
bleibt die Frage ob du dann sonst irgendeine Info erhälst oder gar nichts mehr
 

KSG9|sebastian

Top Contributor
Mach mal das...

Java:
Session session = null;

try{
   SessionFactory sessionFactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
   
   session =sessionFactory.openSession();
               
   Contact contact = new Contact();
   contact.setId(3);
   contact.setFirstName("Deepak");
   contact.setLastName("Kumar");
   contact.setEmail("deepak_38@yahoo.com");
   
   session.getTransaction().begin();
   session.save(contact);
   session.getTransaction().commit();
}  catch(Exception e){
   e.printStackTrace();
} finally{
   if(session != null){
      session.close();
   }
}

Genau genommen macht der catch auch kaum Sinn..theoretisch würde hier ein try{}finally{} reichen..
Wenn von Hibernate eine Exception fliegt kannst du eh nichts mehr tun...daher gar nicht erst fangen sondern durchknallen lassen..
 
S

SlaterB

Gast
die Alternative wäre dann übrigens 'throws Exception' an die main ranzuschreiben, kennt nicht jeder
 

guni

Bekanntes Mitglied
Hi,

hab mich vor 2 Wochen mal mit Hibernate beschäftigt. ganz unabhängig von deinem Problem: schau dir doch mal die Tutorials auf youtube an - da hat i-ein Inder ca. 18 Kurzvideos zu dem Thema gemacht. Echt von Null auf und total verständlich! Und seine Beispiele haben bei mir einwandfrei funktioniert ...
Leider kann ich den Link grad nicht posten weil die meine Firewall yt blockt (ich kann nicht nachschaun) aber du findest es sicher gleich ...

mfg, guni
 

der_tobi

Mitglied
@KSG9: Eclipse kennt session.getTransaction().begin(); nicht....da meckert es. es will immer in beginTransaction ändern.

@guni: Danke, werd sie mir mal anschauen!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb Hibernate: Fremdschlüssel wird nicht erzeugt Datenbankprogrammierung 2
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
I Hibernate Predicate mit IN Clause "Unaware how to convert value to requested type" Datenbankprogrammierung 0
T org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ..., could not initialize proxy - no Session Datenbankprogrammierung 5
T Realisierungsvorschläge Hibernate SQL Datenbankprogrammierung 1
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Tabellen-Erzeugung via Hibernate ignoriert 'CascadeType' settings Datenbankprogrammierung 1
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
damike84 Hibernate: persistieren eines Graphen Datenbankprogrammierung 2
N Hibernate Entitäten bei Selects aus 2 Tabellen Datenbankprogrammierung 7
OnDemand Hibernate Realationen Datenbankprogrammierung 7
OnDemand Hibernate ManyToOne Datenbankprogrammierung 5
D Hibernate oneToMany Syntaxfehler Datenbankprogrammierung 3
D Hibernate Error: NoSuchMethodError Datenbankprogrammierung 4
D hibernate mit postgreSQL Datenbankprogrammierung 3
S MySQL Hibernate: Fehler bei Verwendung von 2 unterschiedlichen Enumration Datenbankprogrammierung 3
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
OnDemand Hibernate OneToMany ManyToOne Datenbankprogrammierung 61
J Hibernate One-To-One mit Where Klausel Datenbankprogrammierung 6
L hibernate.cfg.xml Could not parse configuration Datenbankprogrammierung 0
L H2 Hibernate definieren? Datenbankprogrammierung 1
T JPA Mapping Enum (hibernate 5) Datenbankprogrammierung 1
H In hibernate.cfg.xml schreiben und auslesen Datenbankprogrammierung 0
K Hibernate: Ein Fluch Datenbankprogrammierung 3
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
K Eclipse: JBoss Hibernate Tool: Kein Zugriff auf Datenbank Datenbankprogrammierung 5
S JpaRepositories & Hibernate: ungewolltes trim() in findBy Datenbankprogrammierung 7
S MySQL hibernate exception: illegal state exception : entityManagerFactory is closed Datenbankprogrammierung 5
S Hibernate: Verschiedene Klassen zurückgeben. Datenbankprogrammierung 2
looparda Architektur für JPA Hibernate Umstieg Datenbankprogrammierung 14
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
perlenfischer1984 Hibernate mit final members Datenbankprogrammierung 3
perlenfischer1984 Java Objecte speichern mit Hibernate ? Datenbankprogrammierung 2
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
N Sqlite3 und Hibernate Datenbankprogrammierung 3
A Hibernate Cache leeren Datenbankprogrammierung 4
I MySQL Hibernate zu viele Queries Datenbankprogrammierung 2
Psypsy Hibernate / JPA erkennen von schon gespeicherten Objekten Datenbankprogrammierung 4
Psypsy Hibernate / JPA OneToOne MappedBy Frage Datenbankprogrammierung 2
J Hibernate + DTOs - DTOs in DAOs verwenden? Datenbankprogrammierung 1
S Hibernate-Konfiguration : Unverständliche Ausgabe beim Ausführen Datenbankprogrammierung 0
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
J Hibernate + HSQL embedded Datenbankprogrammierung 2
P Hibernate Einstieg Datenbankprogrammierung 5
C Hibernate und createQuery Datenbankprogrammierung 2
V kennt jemand empfehlenswerte online tutorials zur Hibernate ? gerne auch englisch. Datenbankprogrammierung 4
G H2 Hibernate - wie joins machen Datenbankprogrammierung 1
D Hibernate: Zustand eines Objekts erkennen? Datenbankprogrammierung 0
D Unterschiede Hibernate Vs. Java Persistence API Datenbankprogrammierung 8
I Hibernate / JPA Index hinzufügen Datenbankprogrammierung 1
X Hibernate Cache Verständnisproblem Datenbankprogrammierung 0
T Hibernate und inner class Datenbankprogrammierung 0
K n:m Tabellen mit Hibernate erstellen Datenbankprogrammierung 1
T Hibernate DAO gute Tutorials/Bücher gesucht Datenbankprogrammierung 0
C Hibernate: could not resolve property Datenbankprogrammierung 1
J Plug-In-Framework für Hibernate-Klassen Datenbankprogrammierung 0
M Hibernate - Save Child wenn nötig Datenbankprogrammierung 10
M DAO's + Hibernate Theorie Datenbankprogrammierung 4
T Hibernate, HSQLDB und UNIQUE Datenbankprogrammierung 2
F Hibernate - verschiedene Schemen Datenbankprogrammierung 7
D Hibernate SaveOrUpdate Exception Datenbankprogrammierung 2
D Hibernate CreateQuery ohne Result Datenbankprogrammierung 7
E MySQL Hibernate mit JaxWS führt zu LazyInitialization Exception Datenbankprogrammierung 8
L Einarbeitung in Hibernate -> wenn gute SQL Kenntnisse vorhanden? Datenbankprogrammierung 2
B DB2 Hibernate findet Datenbank nicht Datenbankprogrammierung 18
K JPA / Hibernate Annotations Datenbankprogrammierung 4
M JPA / Hibernate mit Postgres DB Datenbankprogrammierung 3
P JSF + H2 + TomEE + Hibernate/JPA Datenbank wird nicht angelegt Datenbankprogrammierung 3
E MySQL Hibernate ( Anfänger ) Datenbankprogrammierung 3
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
J Hibernate Select auf Parameterliste Datenbankprogrammierung 3
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
M Hibernate Foreign Key definieren Datenbankprogrammierung 4
M Abstrakte Klassen Hibernate Datenbankprogrammierung 4
D Mit Hibernate (mit Annotation) auf Views zugreifen Datenbankprogrammierung 2
M [Hibernate]Abgleich eines lokalen Objekts mit dem Zustand aus der Datenbank. Datenbankprogrammierung 3
P Mit Hibernate mehrere Datensätze löschen Datenbankprogrammierung 7
P Probleme mit meinem 1. Hibernate Beispiel Datenbankprogrammierung 3
P erste Schritte mit Hibernate Datenbankprogrammierung 3
V Hibernate Interfaces von anderem Projekt Datenbankprogrammierung 2
J MySQL Datenbank konfigurieren, JDBC, MySQL oder Hibernate Datenbankprogrammierung 2
B Hibernate und portierbare Datenbank Datenbankprogrammierung 3
qwerqer [Hibernate] Mappingvarianten Datenbankprogrammierung 2
lumo Teneo Hibernate & JPA Datenbankprogrammierung 15
Z JPA mit Hibernate - Unable to build EntityManagerFactory Datenbankprogrammierung 7
Dit_ Hibernate, effiziente SQL-Abfrage definieren Datenbankprogrammierung 5
K Hibernate vs. JDBC Datenbankprogrammierung 4
J Hibernate Info 593 ? Datenbankprogrammierung 4
J Erstellen der SessionFactory in Hibernate 4.1 Datenbankprogrammierung 2
L PostgreSQL Hibernate-Frage Datenbankprogrammierung 2
X MySQL Hibernate: Massenupdate auf unbekannte Tabelle Datenbankprogrammierung 4
N hibernate: datasource Datenbankprogrammierung 7
H MySQL Hibernate: Updaten vereinfachen Datenbankprogrammierung 2
T Hibernate Division zweier Summen Datenbankprogrammierung 4
B MySQL Fehler: Cannot open connection mit Tomcat7, Hibernate und MySQL Datenbankprogrammierung 4
F GWT und Hibernate - gwt.dev.Compler not found Datenbankprogrammierung 3
M NestedTransaction- Exception in Hibernate Datenbankprogrammierung 15

Ähnliche Java Themen


Oben