java-forum.org - Java programmieren aus Leidenschaft
Java 6 Einstieg und professioneller Einsatz
Alter Preis: 34,90 EUR
Jetzt: 0,00 EUR

zzgl. Versandkosten

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Java - Programmierung > Datenbankprogrammierung

Datenbankprogrammierung Fragen zur Anbindung und Programmierung von Datenbanken bzw. Datenbankabfragen

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 24.06.2012, 12:21   #1 (permalink)
Benutzer
int
 
Registriert seit: 15.11.2009
Fachbeiträge: 45
Abgegebene Danke: 9
Erhielt 0 Danke für 0 Beiträge
Standard Datenbankmodel in Java-Klassen abbilden.

Hallo!

Ich habe eine Frage bezüglich der richtigen Herangehensweise: Ich habe das immer wieder aufkommende Problem, dass ich mit einer bereits existierenden Datenbank zu arbeiten habe.

Für mich als Entwickler heißt das, erstmal vernünftige Java-Klassen zu erstellen, so dass man dann - unabhängig von der Datenbank - mit Objekten hantieren kann.

Bisher benutze ich ziemlich genau die Herangehensweise von diesem Tutorial, aber dieser Weg ist - wie ich denke - nicht der richtige. Schließlich muss man zu jeder Tabelle manuell eine Klasse erstellen und alle Attribute reinfüllen, was bei tausenden Tabellen mit tausenden Attributen nicht der richtige Weg sein kann. Außerdem ist die Herangehensweise nicht genug von der Datenbank abstrahiert - man muss immerhin noch SQL-Quellcode einfügen. Dies macht den Anschein, dass das Spring-Framework nicht in allen Facetten verwendet wurde.

Hierzu vielleicht ein PHP-Vergleich: Bindet man das Zend-Framework ein, so benötigt man für das Abbild einer Datenbank lediglich den Quellcode
PHP-Code:
<?php class Beispieltabelle extends Zend_Db_Table_Abstract{}
Durch die Vererbung und die Wahl des Klassennamens kapiert das Zend-Framework automatisch, dass es sich um ein 1:1 Abbild einer Datenbanktabelle mit dem Namen "asdf" handelt, welche sich in der Datenbank befindet, zu der die Verbindung besteht. Nun kann man - ohne sie je neu definiert zu haben - Methoden wie
PHP-Code:
$table = new Beispieltabelle();
$data = array(
    
'columnName1'      => 'Inhalt erste Spalte',
    
'columnName2' => 'Inhalt zweite Spalte'
);
 
$table->insert($data); 
verwenden, da dies alles über Vererbung geschieht.

Ich weiß, das geschieht dort vor allem über das Verwenden von magischen Methoden, aber irgendein Framework muss es doch in Java geben, mit dem man diese nervige Arbeit nicht mehr hat.

Weiß jemand eins? Oder ein Eclipse-Plugin zur automatischen Codegenerierung? Oder kennt jemand eine Herangehensweise mit dem Spring-Framework, die nicht so falsch ist wie die im obigen Tutorial beschriebene?

Gruß, Rokko
Rokko_11 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 24.06.2012, 12:50   #2 (permalink)
Stammbenutzer
Viertel Megabyte
 
Registriert seit: 14.03.2012
Fachbeiträge: 457
Abgegebene Danke: 17
Erhielt 107 Danke für 105 Beiträge
Mit den Stichworten "Entity Class" und "JPA" solltest du da schnell fündig werden. Netbeans kann mit ganz wenigen Klicken aus dem Datenbankmodel Entity-Klassen generieren. Eclipse kann das sicherlich auch, aber da ich das selbst nicht benutze, kann ich dir leider nicht sagen, wie das dort klappt.
Fant ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 24.06.2012, 13:29   #3 (permalink)
Neuer Benutzer
short
 
Registriert seit: 16.09.2011
Fachbeiträge: 21
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Also mir fallen da diese ganzen RAD-Frameworks wie Rails, CakePHP, Django usw ein.

Die Java-Version ist dann wohl Grails.

Ich gehe sowas derart an, dass ich ein UML Datenmodell erstelle (i.d.R. mit ArgoUML), und daraus mal eine laufende Datenbank erzeuge (dafür gibt es mehrere Plugins, aber zur Not auch XSL usw).

Die meisten RAD-Tools lesen nun die DB und erzeugen anhand der Tabellennamen und Felder automatisch die Klassen.

Geht das bei Dir nicht, gibt es ja nun aber die Option, aus dem UML-Modell per Codegenerator Java o.ä. zu erzeugen.

Ciao,
Andreas
daybyter ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 25.06.2012, 01:29   #4 (permalink)
Stammbenutzer
Floppy Disc
 
Registriert seit: 21.12.2006
Fachbeiträge: 888
Abgegebene Danke: 12
Erhielt 23 Danke für 21 Beiträge
Seam (2) kann das auch automatisch, aus der Datenbank Entity-klassen erzeugen, sogar inklusive Session-Beans und JSF-Seiten zum Bearbeiten der Datenbank (was einem natürlich nur hilft, wenn man eine Seam 2/JSF-Anwendung baut).

Geändert von JanHH (25.06.2012 um 01:31 Uhr)
JanHH ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Warum hat Java keine Klassen "True" und "False"? ben_bayram Hausaufgaben 12 17.06.2009 08:43
Aus wieviel Klassen darf in Java eine (Programm)besitzen? math.iso@live.de Java Basics - Anfänger-Themen 21 29.11.2008 22:01
java Klassen in JRuby aufrufen flashdog Java Basics - Anfänger-Themen 0 21.10.2008 22:23
Native Threads unter Linux? Lordimar Allgemeine Java-Themen 2 13.04.2007 09:34
java design von klassen und projekten Allgemeine Java-Themen 6 09.11.2005 09:53


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:45 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de