Datenbankapplikation von Access -> Java

smartin

Mitglied
Hallo zusammen,

ich bin gerade am überlegen, ob ich ein Access-Anwendung auf Java umstellen soll. Da ergeben sich natürlich einige Fragen ;)

Rahmendaten: Es handelt sich dabei um eine Anwendung zur Bestellannahme, Lagerverwaltung, Rechnungserstellung, ... insgesamt 37 Tabellen mit 150.000 Zeilen in der größten Tabelle.

Zunächst einmal würde ich gerne Eure Erfahrungen mit unterschiedlichen DB Systemen unter Java hören. Ist PostGRES, Derby, HSQLDB,... aus irgendwelchen Gründen für meinen Zweck vorzuziehen?

Habt Ihr evtl. selbst etwas in dieser Richtung programmiert, das man gut als Vorlage nutzen kann?

Falls es bisher noch in keiner Frage herauskam, ich bin noch relativ grün hinter den Ohren in Java Dingen, also seid nachsichtig ;)

Danke im Voraus für jede Unterstützung!
 

DerEisteeTrinker

Bekanntes Mitglied
*Einspruch erheb*

Access ist keine Datenbank. Access ist eine Spielerei erfunden von Kleinweich.

Dann zum Thread

Ich kenne die Architektur der Anwendung auch die IT-Infrastruktur nicht. Wenn es eine reine Client-Anwendung ist, dann hast du mit einigen freien Datenbanksystemen (zum Beispiel HSQLDB) den Vorteil, dass du die Datenbank embedded mit der Anwendung laufen lassen kannst. Heißt, du installierst keinen Server, sondern die Datenbank wird während der Laufzeit im Speicher gehalten. Sprich man braucht viel RAM bzw. Auslagerungsdatei, die ist aber schleppend langsam.

Da es aber um 37 Tabellen geht, würde ich MySQL bzw. Oracle empfehlen. Da haben sich viele kluge Köpfe Gedanken um so ein System gemacht, außerdem bist du damit in der Lage, das System schnell und einfach zu erweitern.
 

homer65

Top Contributor
Für eine Anwendung mit derart wenigen Tabellen und Daten ist praktisch jedes Datenbanksystem geeignet.
Ich persönlich würde es mit MySQL machen, aber das ist eben nur eine persönliche Vorliebe, die daraus resultiert, das ich damit die meiste Erfahrung habe. Andere Leute haben sicher auch andere Vorlieben.
 
M

maki

Gast
Ist PostGRES, Derby, HSQLDB,... aus irgendwelchen Gründen für meinen Zweck vorzuziehen?
PostgreSQl ist 'ne gute DB, Derby & HSQLDB auch, letztere sind aber in der Lage ebedded zu arbeiten, H2 sei an dieser Stelle auch noch erwähnt.

Von MySQL würde ich persönlich nur abraten, ist in der Standardkonfig (MyISAM Tabellen, pfui!) nicht viel besser als Access ;)
 

smartin

Mitglied
lol...jetzt wollte ich gerade mit mySQL loslegen, dann kommt diese Antwort...

PostGres schneidet in den Performancetests nicht gerade gut ab, aber wie aussagekräftig diese Tests sind, weiß ich auch nicht.

Ich warte mal noch ein paar Antworten ab, vielleicht wird mein Bild noch ein bisschen klarer...

Trotzdem danke für die bisherigen Antworten
 

tfa

Top Contributor
lol...jetzt wollte ich gerade mit mySQL loslegen, dann kommt diese Antwort...

PostGres schneidet in den Performancetests nicht gerade gut ab, aber wie aussagekräftig diese Tests sind, weiß ich auch nicht.

Ich warte mal noch ein paar Antworten ab, vielleicht wird mein Bild noch ein bisschen klarer...

Du kannst auch MySQL nehmen, das ist auch eine brauchbare Datenbank (wenn man die richtige Enginge verwendet). Auch die Performance-Unterschiede sollten nicht ins Gewicht fallen. Verglichen mit Access ist natürlich alles schnell wie der Wind.
Ob die Java-DBs wie Derby oder H2 sich auch für größere Sachen eignen, weiß ich nicht. Ich hab die bisher nur für kleine Test- und Demoanwendungen benutzt.
 

kinglui

Aktives Mitglied
Grundsätzlich würde ich zwar auch zu MySQL raten (habs bisher auch immer genutzt), allerdings bin ich in Zukunft vorsichtig damit, weil man nicht weiß, wie es bei mysql lizenztechnisch weitergeht!


ciao und frohes fest
 

bronks

Top Contributor
Grundsätzlich würde ich zwar auch zu MySQL raten (habs bisher auch immer genutzt), allerdings bin ich in Zukunft vorsichtig damit, weil man nicht weiß, wie es bei mysql lizenztechnisch weitergeht! ...
Dann leg ich noch ein bissl nach: Grundsätlich ist es keine extrem schlechte Idee, daß der TE Java verwenden möchte, allerdings bin ich in Zukunft vorischtig damit, weil man nicht weiß, wie es bei Java lizenztechnisch weitergeht und überhaupt ist die Akzeptanz dieses Jahr allgemein extrem geschwunden.
 

tuttle64

Bekanntes Mitglied
Hallo zusammen,

ich bin gerade am überlegen, ob ich ein Access-Anwendung auf Java umstellen soll. Da ergeben sich natürlich einige Fragen ;)


du darfst nicht nur an die datenhaltung denken, sondern auch die möglichen guis (sprich Formulare, Abfragen u.ä.m.), welche die anwender in access verwenden. willst du diese ebenfalls auf java umstellen?

die oben geäusserte negativen meinung über mysql ist rein persönlich und nicht objektiv. in meinem berufliichen umfeld habe ich mit grossen datenmengen auf oracle und db2 gerarbeitet und verwende zu hause mysql mit java und bin damit sehr zufrieden.
 

smartin

Mitglied
du darfst nicht nur an die datenhaltung denken, sondern auch die möglichen guis (sprich Formulare, Abfragen u.ä.m.), welche die anwender in access verwenden. willst du diese ebenfalls auf java umstellen?

die oben geäusserte negativen meinung über mysql ist rein persönlich und nicht objektiv. in meinem berufliichen umfeld habe ich mit grossen datenmengen auf oracle und db2 gerarbeitet und verwende zu hause mysql mit java und bin damit sehr zufrieden.


Prinzipiell will ich alles auf Java umstellen. Wobei das schwierigste wahrscheinlich die ausdruckbaren Berichte werden oder? Oder aus welchem Grund soll ich über Formulare nachdenken?
 

smartin

Mitglied
Ich werde mich jetzt also mal mit MySQL anfreunden und hoffe, dass es keine Lizenzprobleme geben wird. Ansonsten sollte es ja irgendwie möglich sein, die Datenbank in einer Java Anwendung relativ problemlos auszutauschen. Werde auf jeden Fall ein Augenmerk darauf legen, dass die Anwendung so strukturiert wird.

@Bronks: Würdest du mir wirklich eine andere Sprache empfehlen oder war das nur eine provokante Antwort auf den Post zuvor? Falls eine andere Sprache, dann welche??? C#?
 
G

Gast2

Gast
Ich werde mich jetzt also mal mit MySQL anfreunden und hoffe, dass es keine Lizenzprobleme geben wird. Ansonsten sollte es ja irgendwie möglich sein, die Datenbank in einer Java Anwendung relativ problemlos auszutauschen. Werde auf jeden Fall ein Augenmerk darauf legen, dass die Anwendung so strukturiert wird.

Am besten ein Persitenz Framework (z.B. Hibernate oder EclipseLink) verwenden und nicht alles per Hand zusammenschrauben. Dann kannst du relativ leicht on MySQL auf Postgres oder Oracle wechseln.

@Bronks: Würdest du mir wirklich eine andere Sprache empfehlen oder war das nur eine provokante Antwort auf den Post zuvor? Falls eine andere Sprache, dann welche??? C#?

C# eignet sich für sowas schon ganz gut, das coole Databinding in WPF nimmt da eine ganze Menge Arbeit ab. Allerdings bist du dann auf Windows festgelegt. Du kannst das selbe ohne Probleme in Java erreichen.

Du könntest allerdings direkt überlegen ob es nicht sinnvoll wäre das ganze als Webapplication zu implementieren. Sonst läufst du früher oder später in dei Problematik "wohin mit den Datenbank Logins". Dafür eignet sich Java hervorragend. ;)
 

smartin

Mitglied
Am besten ein Persitenz Framework (z.B. Hibernate oder EclipseLink) verwenden und nicht alles per Hand zusammenschrauben. Dann kannst du relativ leicht on MySQL auf Postgres oder Oracle wechseln.

Das hatte ich sowieso vor, aber dennoch hätte ich gerne von Anfang an die "richtige" Datenbank...

Du könntest allerdings direkt überlegen ob es nicht sinnvoll wäre das ganze als Webapplication zu implementieren. Sonst läufst du früher oder später in dei Problematik "wohin mit den Datenbank Logins". Dafür eignet sich Java hervorragend. ;)

Ich denke eine Webapplication ist ein bisschen zu viel für dieses Projekt. Die Applikation wird nur lokal auf einem Rechner ausgeführt werden (jedenfalls in den nächsten 5 Jahren) und es gibt nur 5 User. Das ganze wird also nicht ganz so groß...Ich verstehe nicht ganz das Problem mit Datenbank Logins.
 

bronks

Top Contributor
... @Bronks: Würdest du mir wirklich eine andere Sprache empfehlen oder war das nur eine provokante Antwort auf den Post zuvor? Falls eine andere Sprache, dann welche??? C#?
C# drängt sich da direkt auf, wenn die Daten schon in Access vorhanden sind und nichts verlangt wird, was Java unumgänglich macht.

Und auch ich empfehle, daß Du gleich eine WebApp daraus machst, denn:
- vom Einarbeitungsauswand ist es egal
- Drucken bekommst Du dank des Internetbrowsers geschenkt
 
H

Herr K.

Gast
Hallo smartin,

ich würde Dir den Tipp geben Dich hier nicht zu sehr verunsichern zu lassen. C# ist genauso gut/ schlecht geeignet wie Java, in beiden Fällen macht es mehr Sinn einen O/R Mapper zu verwenden, da Du hier eine saubere und gut erprobte Persistenzschicht hast, die Dir eine Menge komplexer Funktionalität quasi "schenkt".

Gegen C# spricht nicht dass Du Dich jetzt stärker an eine Plattform bindest, vielmehr hat die Sprache natürlich auch ihre Unterschiede zu Java. Da Du in einem Javaforum postest gehe ich mal davon aus, dass Du Java Kenntnisse hast.
Anders gesagt würdest Du mit der Verwendung von C# die Plattformunabhängigkeit verlieren (Mono hängt meist etwas hinterher und hat sicher keine direkte Access Anbindung) und kannst nicht auf gegebene Erfahrungen zurückgreifen. Dem steht eigentlich kein Mehrwert gegenüber, da C# nicht deutlich anders als Java funktioniert und nichts für den einfachen Anwendungsfall Deiner Anwendung für diese Sprache oder gegen Java spricht.

Was das Datenbanksystem angeht, so würde es mich sehr wundern, wenn Du hier einen großen Unterschied zwischen Oracle XE, MS SQL Server Express, Postgres oder MySQL für Deine 150.000 Zeilen ausmachst. Ich kenne natürlich nicht die Komplexität der abgelegten Daten und deren Aufbau, da Du aber bisher mit Access auskamst gehe ich davon aus, dass Du da in allen DBS ganz gut mit Standard-SQL durchkommst und nicht auf die jeweiligen speziellen Erweiterungen konfrontiert wirst.

Mein Tipp für Dich wäre, dass Du Dir erstmal die Dokumentation und ggf. auch die Foren/Hilfen zu den jeweiligen Systemen ansiehst. Nichts ist schlimmer als fehlende oder unstrukturierte Dokumentation. Im Moment hast Du den Vorteil frei wählen zu können und wie hier schon mehrfach gesagt wurde, technisch dürfte der Unterschied nicht ins Gewicht fallen (bei 5 Nutzern, ohne konkurrierende Zugriffe und 150.000 Zeilen...).
Wie gesagt, wenn Du technisch keine Anforderungen hast, die für oder gegen ein System sprechen, dann solltest Du als nächstes prüfen ob es einfach Domänenwissen im Haus gibt (z.B. ein Team von Oracle-Gurus, die gerade Däumchen drehen) und wenn Du merkst, dass Du wirklich an nichts gebunden bist, dann schau zunächst auf die Doku, denn hier trennt sich schnell die Spreu vom Weizen.

Da ist es dann auch gerne mal ein subjektiver Eindruck ob Du die eine besser als die andere findest. Da man in der Regel immer die eine oder andere Frage hat zahlt sich das schnell aus. Musst Du erst lange googlen oder gar ein Forum bemühen (wo Antworten auch mal ihre Zeit brauchen) kommen schnell ein paar PS oder gar PT zusammen, die man sinnvoller hätte nutzen können.
 

smartin

Mitglied
@ Herr K: Ich habe mir die Dokumentationen der versch. DB Systeme schon angeschaut und finde von daher eigentlich MySQL am besten. Ich denke, dass ich einfach mal damit anfangen werde. Meine Java-Kenntnisse sind eher gering, aber ich glaube, dass ich mir das relativ schnell aneignen kann. Hätte auch genauso gut in einem C# Forum posten können, aber jetzt bin ich eben hier gelandet ;) Wie gesagt, wenn viele der Meinung wären, dass C# für die Aufgabe besser wäre, würde ich mir auch das aneignen. Bisher sieht es aber so aus, als ob keine der beiden Sprachen überlegen wäre und deshalb werde ich wegen Plattform Unabhängigkeit bei Java bleiben.

@bronks: Mittlerweile wird Access sogar bei den 150.000 Zeilen langsam und da im Moment jeden Tag zw. 500-1000 neue Zeilen hinzukommen. Es ist wohl nur eine Frage der Zeit bis Access unerträglich wird...
 

homer65

Top Contributor
@bronks: Mittlerweile wird Access sogar bei den 150.000 Zeilen langsam und da im Moment jeden Tag zw. 500-1000 neue Zeilen hinzukommen. Es ist wohl nur eine Frage der Zeit bis Access unerträglich wird...

Ihr solltet aber bedenken, das jedes Datenbanksystem eine gewisse Pflege braucht. Ansonsten kann dir das Gleiche auch bei MySQL oder anderen Datenbanksystemen passieren. Nicht umsonst beschäftigen größere Firmen Personal, das sich ausschließlich mit den Datenbanken auseinandersetzt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tom#234 Jakarta Web Service SQL Access Error Datenbankprogrammierung 7
H Datenbankverbindung zu MS Access Datenbankprogrammierung 4
G Connect zu ACCESS-DB mit Ucanaccess Datenbankprogrammierung 11
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
V keine Verbindung möglich (Access-DB) Datenbankprogrammierung 3
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
J Unterschied @Id und @Access? Datenbankprogrammierung 5
MaxG. Access Datenbank Datenbankprogrammierung 48
I Access Datenbank in Table einlesen lassen Datenbankprogrammierung 2
D UCanAccess / MS Access - Tabelle / Spalte vorhanden Datenbankprogrammierung 3
J Java 8 und Microsoft Access Database-Dateien(mdb) Datenbankprogrammierung 1
W Access DB Metainfo hinzufügen Datenbankprogrammierung 8
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
S HSQLDB Zugriff auf Access Datenbank Datenbankprogrammierung 0
Neumi5694 MS Access Sicherheit entfernen Datenbankprogrammierung 0
F Brauche dringend Hilfe Java-Access Connection Datenbankprogrammierung 3
L mdb (access) ansteuern: Welcher weg ist der Beste Datenbankprogrammierung 3
D Java MS Access Verbindung Datenbankprogrammierung 10
Neumi5694 MS Access Tabellenbesitzer ändern Datenbankprogrammierung 0
V Datenbank Access einbinden Datenbankprogrammierung 11
A Verbindung mit Access 2007 Datenbank herstellen Datenbankprogrammierung 1
Neumi5694 Java + MS Access + 64 Bit = Fehler -1073740777 Datenbankprogrammierung 2
R MS-Access mit JAva auslesen Datenbankprogrammierung 7
J Verbindung zu Access Datenbank Datenbankprogrammierung 15
Gossi MySQL Access denied Datenbankprogrammierung 11
J Access Datenbank mit JAVA erstellen - boolean Werte Datenbankprogrammierung 4
M Datenbankverbindung Access Datenbankprogrammierung 3
F Insert into Access Datenbankprogrammierung 3
C Access Datenbankprogrammierung 2
T Access 32bit on Win7 64Bit ODBC Problem Datenbankprogrammierung 1
H Microsoft Access Treiber wird nicht gefunden Datenbankprogrammierung 9
T Datenbankverbindung access funtioniert nicht Datenbankprogrammierung 21
E Access Datenbank, Linux Umgebung Datenbankprogrammierung 4
E Access Datenbank mit Insert befüllen Datenbankprogrammierung 5
M Access Update Statement Fehler update -> unmöglich? Datenbankprogrammierung 3
M Access Abfrage mit Parameter & Access/Java liefern unterschiedliche Ergebnisse Datenbankprogrammierung 2
M Access Datensatz beinhaltet ESC-Zeichen Datenbankprogrammierung 3
K MySQL JDBC - Access Datenbank - unbekannter TabellenName Datenbankprogrammierung 4
K Access Datenbank mit Java auf win7 64bit Datenbankprogrammierung 14
S Access 2007 zugreifen- ODBC Driver Manger Datenbankprogrammierung 3
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
F Zugriff auf MS Access-Datenbank mit jackcess Datenbankprogrammierung 10
P Access Datenbank durchsuchen Datenbankprogrammierung 8
M Problem mit Hibernate und Access Datenbankprogrammierung 9
B MAC Access Datenbank in Java verwenden - Treiberproblem Datenbankprogrammierung 2
J mit java in access DB über odbc/jdbc Datenbankprogrammierung 2
NoXiD Access Datenbank in java einbinden ohne ODBC treiber zu erstellen Datenbankprogrammierung 5
C MS Access und Jarkarta POI Datenbankprogrammierung 4
T Problem bei Zugriff auf Access Datenbank Datenbankprogrammierung 7
E [ACCESS ODBC] INSERT INTO Fehler Datenbankprogrammierung 4
Q Access Datenbank in eine Internetseite einbinden Datenbankprogrammierung 2
H java.sql.SQLException: Access denied for user 'root'@'localhost' (using password : YES) Datenbankprogrammierung 1
M Zugriff auf eine Access-Datenbank innerhalb eines jar-Files Datenbankprogrammierung 7
N Wie kann ich Zugriff auf eine MS Access DB (mit JDBC) über Netzwerk erreichen? Datenbankprogrammierung 7
M Spaltennamen einer MS Access Tabelle ermitteln Datenbankprogrammierung 3
F Zugriff auf MS Access DB Datenbankprogrammierung 3
T Problem beim Update in die Access DB Datenbankprogrammierung 9
M Tabelle in Access Datei mit JDBC generieren Datenbankprogrammierung 3
C MySQL langsamer als MS ACCESS Datenbankprogrammierung 5
J Zugriff auf Access-Datenbank Datenbankprogrammierung 3
S Connection String MS Access mit Systemdatenbank / Arbeitsgruppeninformationsdatei Datenbankprogrammierung 4
X JDBC und MS-Access Sicherheitslücken? Datenbankprogrammierung 4
N mehrere Abfragen nacheinander wie mit MS Access mit JAVA Datenbankprogrammierung 3
G "Adapter" Access -> MySQL? Datenbankprogrammierung 6
J Java DB Zugriff auf Access (Migration auf andere DB) Datenbankprogrammierung 8
H Fehler mit ". Microsoft Access Driver" Datenbankprogrammierung 12
K Java JDBC Access Datenstruktur Datenbankprogrammierung 2
V Überprüfen ob Tabelle existiert in Access per ODBC Datenbankprogrammierung 2
S Access vom Programm aus starten Datenbankprogrammierung 8
V Tabelle kopieren (Superbase -> Access) Datenbankprogrammierung 1
G Java und Access? Datenbankprogrammierung 3
D Problem mit Access abfrage Datenbankprogrammierung 10
D Access Datenbank in .jar-Datei Datenbankprogrammierung 51
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
E Wie auf MS-Access DB zugreifen? Datenbankprogrammierung 8
M Access Datenbank ! Datenbankprogrammierung 5
M Hilfe -Access mag sein Replace nciht merh Datenbankprogrammierung 2
alexpetri Problem mit jdbc MS Access / nach 670 inserts ist schluss. Datenbankprogrammierung 4
U MS Access reservierte Wörter Datenbankprogrammierung 2
S Fehler bei DB Verbindung Access Datenbankprogrammierung 6
B Platzierung einer Access Datenbank Datenbankprogrammierung 4
V MS Access DB - Schreibschutz deaktivieren Datenbankprogrammierung 3
S PreparedStatements, Abfrageoptimierung unter MS Access Datenbankprogrammierung 5
S Java Access Arbeitsgruppendatei Datenbankprogrammierung 2
S Zugriff auf eine große Datenmenge von MS Access per JDBC Datenbankprogrammierung 11
S Access und Java, aber wie? Datenbankprogrammierung 4
N Hilfe ! Mein Applet bekommt ein Access-Denied von MySQL Datenbankprogrammierung 7
G Doppeleinträge in Access auf anderem Weg verhindern. Datenbankprogrammierung 4
D An Access Datenbank andocken ohne sie beim System anzumelden Datenbankprogrammierung 3
D String[][] Array in Access Datenbank speichern Datenbankprogrammierung 5
T Zugriff auf MS-Access-DB ist grottenlangsam. Normal? Datenbankprogrammierung 9
N Probleme mit Access-DB bei einem Webserver Datenbankprogrammierung 5
H Hibernate vs. MS Access Datenbankprogrammierung 7
G Suchen nach Autowerten in Access-DB Datenbankprogrammierung 20
B JDBC Verbindung zu Access Datenbank Datenbankprogrammierung 6
T Desktopanwendung mit Access als DB Datenbankprogrammierung 4
H Microsoft Access Abfrage Datenbankprogrammierung 6
K Problem mit datenbankanbindung unter access 2003 Datenbankprogrammierung 3
G Access Zugriff, DB auf Server, Applet Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben