Excelsheet als Datenbank

Status
Nicht offen für weitere Antworten.

Foermchen82

Top Contributor
Hallo zusammen,

ich bin zwar nicht mehr ganz ein Java-Newbee, aber ich will jetzt auch mal etwas in verbindung mit Datenbanken entwickeln.

Meine Frage nun: ich hab bei mir auf dem Rechener keinen Datenbankserver installiert und habe das eigentlicha auch nicht vor. Bei .Net habe ich mal eine XLS-Datei eingebunden und gesehen, dass die sich wie Datenbanken verhalten.
Kann ich soezwas auch in JAVA realisieren und wenn ja wie?

Genauergesagt: ich will ein Excel-Sheet als kleine Datenbank verwenden(die date als DB und die einzelnen Sheets als Tabellen). Wie stell ich das an? Oder kann man auch anders eine kleine Datenbank simulieren ohne gleich nen Server aufzusetzen?

Danke im vorraus.
 

SnooP

Top Contributor
ich glaube nicht, dass das ohne weiteres möglich ist... - aaaaaber was denkst du denn wie schwierig es ist ne db "aufzusetzen"? ;) ... also mysql ist umsonst und die installation beschränkt sich auf die Auswahl eines Verzeichnisses und unter umständen muss man noch mysqld starten manuell... vermutlich ist das installationsprogramm heute schon so weit, dass er automatisch nen windows-dienst installiert... fertig ist deine datenbank!
Um einfacher Tabellen und Datenbanken anlegen zu können, kann man bei mysql noch diverse guis runterladen - z.B. den Administrator oder den Query Browser...

danach kannst du mit Java JDBC mit der DB kommunizieren.

Ein weiterer Vorteil... es gibt bestimmt Zich Tutorials im Netz die das Szenario Java+Mysql besprechen...
 
G

Guest

Gast
OK ich bin überzeugt *g*.

Aber trotzdem würd ich gern wissen, wie ich XLS, bzw beo OpenOffice OSD-Dateien mithilfe eines Java-Programms auslesen bzw schreiben kann. Für exporte und importe z.b.
 

Foermchen82

Top Contributor
Sorry war nicht eingelogt.


OK ich bin überzeugt *g*.

Aber trotzdem würd ich gern wissen, wie ich XLS, bzw beo OpenOffice OSD-Dateien mithilfe eines Java-Programms auslesen bzw schreiben kann. Für exporte und importe z.b.
 

SnooP

Top Contributor
von Apache gibt es das POI - eine API zum Auslesen von Office-Dateien und bei OpenOffice gibt es ne eigene API namens UNO... - kannst ja mal nach googlen.

Exporte und Importe bei Tabellen-Sheets gehen aber auch sehr simpel mit csv-Dateien, also einfache Textdateien mit mehreren Zeilen, und die Spaltenwerte sind mit Kommas getrennt.
 

bronks

Top Contributor
Erstmal zu Problem: Java Excel API: http://prdownloads.sourceforge.net/jexcelapi/jexcelapi_2_5_7.zip?download

SnooP hat gesagt.:
... also mysql ist umsonst ...
Sich in Mysql einzuarbeiten ist echt umsonst, denn man stellt schnell raus, daß man für den Produktivbetrieb Lizenzgebühren zahlen darf und zu den üblichen Persistenzmaschinen eine sehr beschränkte Kompatibilität besteht. Da empfehle ich eher eine wirklich kostenlose Datenbank, welche vom Funktionsumfang und Kompatibilität, den großen RDBMS entspricht: Postgres
 

SnooP

Top Contributor
nunja... - sich einzuarbeiten klingt ja geradezu, als wäre es waaahnsinnig kompliziert. Ne Datenbank ist ne Datenbank, Mysql ist halt die erste freie gewesen, die mir eingefallen ist und letztlich ist es wohl ziemlich wumpe welche man da nimmt, wenn man mit JDBC drauf zugreifen kann...
 

SnooP

Top Contributor
Du meinst also, dass der OP einen signifikanten Unterschied bei der Benutzung der DBs merken wird? Das glaub ich nämlich nisch.
Und ich glaube ich finde auf Anhieb mehr Tutorials die mysql nutzen als postgre...
Das heißt nicht, dass nicht PostgreSQL als DB evtl. MySQL vorzuziehen wäre - ich halte es nur für ziemlich egal für einen Anfänger, welche DB er denn tatsächlich nimmt, da die Schnittstelle via JDBC und SQL quasi identisch ist. Das ist meine Meinung und ich gestatte dir auch eine andere zu haben.
 

Caffè Latte

Bekanntes Mitglied
Hi,

erst mal zum Problem selbst: auf Excel-Sheets kann man über die JDBC-ODBC-Brücke zugreifen:

Code:
mport java.io.*;
import java.net.*;
import java.sql.*;
import java.util.*;

public class InteractWithExcel {
	static final String DRIVER_NAME = "sun.jdbc.odbc.JdbcOdbcDriver";
	static final String DATABASE_URL = "jdbc:odbc:EXCELJDBCTest";
	public static void main(String[] args) {
		try {
			Class.forName(DRIVER_NAME);
			Connection conn = null;
			conn = DriverManager.getConnection(DATABASE_URL);
			Statement stmt = conn.createStatement();
			ResultSet rs =
				stmt.executeQuery("select State,Population from [Sheet1$]");
			while (rs.next()) {
				String state = rs.getString(1);
				int population = rs.getInt(2);
				System.out.println(state + " - " + population);
			}
			rs.close();
			stmt.close();
		} catch (ClassNotFoundException cnfe) {
			System.err.println("ClassNotFoundException Was Thrown");
			cnfe.printStackTrace();
		} catch (SQLException sqle) {
			System.err.println("SQLException Was Thrown");
			sqle.printStackTrace();
		}
	}
}

EXCELJDBCTest ist der DSN, den du bei der ODBC-Einrichtung vergeben hast.

Wenn du Google bemühst findest du auch eine ganze Menge von Tools, die dir direkt den Zugriff auf die Datei erlaubt, ohne dass du eine ODBC-Datenquelle eingerichtet haben musst.

Im Übrigen: für den Einsatz eines MySQL-Datenbanksystems in kommerziellen Umgebungen ist keine Lizenzgebühr fällig. Nur für einen Wartungsvertrag muss man zahlen und wenn man Software verkauft, die MySQL beinhaltet.
 

bronks

Top Contributor
SnooP hat gesagt.:
... ich halte es nur für ziemlich egal für einen Anfänger, welche DB er denn tatsächlich nimmt, da die Schnittstelle via JDBC und SQL quasi identisch ist. Das ist meine Meinung und ich gestatte dir auch eine andere zu haben.
Naja ... Zwischen Meinung und Wissen ist ein riesen Unterschied, deshalb sind mir Meinungen relativ egal. Ich weiß daß MySql für alles mögliche gut geeignet ist, aber für JavaApps die zweite Wahl darstellt. Ich weiß auch, daß MySql nicht kompatibel zu fast allen Persistenzmaschinen und EJB auf den gängigsten Servern ist, was gerade bei Java eine grosse Rolle spielt. Ich weiß, daß Postgres, IBM, Oracle, Microsoft, und die anderen bedeutenden Datenbanken, wie auch ein paar unbedeutendere diese Kompatibilität bieten.

MySql versteht OutOfTheBox nur seinen eigenen Dialekt und so fliegt man als Benutzer der o.g. bedeutenden Datenbanken schon bei einem Create voll auf die Fresse und muss in der Doku nachlesen um sich anschließend ans Hirn zu fassen. Die Schnittstelle via JDBC und SQL ist total verschieden und JavaEnterpriseServer haben große Probleme diesen Unterschied zu verdauen.

Angeblich gibt es für MySql einen Kompatibilitätsmodus. Auf die schnelle habe ich in der Doku nichts davon gefunden. In den Foren wo die PhpGurus mit MySql beste Erfahrungen haben konnte mir zu diesem Kompatibilitätsmodus niemand etwas sagen, da uninteressant. In den JavaForen kennt den Kompatibilitätsmodus auch niemand, da bei auftretenden Problemen die meissten gleich zu einer anderen DB gegriffen haben.
 

bronks

Top Contributor
Caffè Latte hat gesagt.:
... Im Übrigen: für den Einsatz eines MySQL-Datenbanksystems in kommerziellen Umgebungen ist keine Lizenzgebühr fällig. Nur für einen Wartungsvertrag muss man zahlen und wenn man Software verkauft, die MySQL beinhaltet.
Ja das ist schon richtig. MySql unter liegt der GPL. Von der GPL kann man sich freikaufen. In fast allen fällen sind die GPL harte Handschellen. Den zweiten o.g. Satz den Du geschrieben hast, kann man sich so hindrehen, wie man ihn haben möchte. Für einen JavaMenschen, der ein fertiges Produkt verkauft bedeutet es klar, daß mindestens der JDBC-Treiber vom Produkt beinhaltet wird.

Sogesehen ist MySql genauso gratis wie: Oracle, DB2, MS ... Für Heim und Hobby kosten die alle nichts.
 

SnooP

Top Contributor
Also ich konnte MySQL ohne Probleme in Verbindung mit EJBs (Entity Beans) über JBoss nutzen.

Und nochmal... für das was der OP machen will, reicht's alle mal... - aber ist ja auch egal ;)
 

bronks

Top Contributor
SnooP hat gesagt.:
Also ich konnte MySQL ohne Probleme in Verbindung mit EJBs (Entity Beans) über JBoss nutzen.
Wenn Du auf JBoss mit EJB die Tabellen mit allen FK angelegt hast, dann nehmen ich alles zurück, aber dafür möchte ich sehr gerne wissen, wie Du das angestellt hast.

SnooP hat gesagt.:
Und nochmal... für das was der OP machen will, reicht's alle mal... - aber ist ja auch egal ;)
Es gibt natürlich viele Sachen, die ausreichen; u.a. Derby und Hsql, aber was meinst Du mit OP?
 

SnooP

Top Contributor
OP = OriginalPoster - Threadstarter, derjenige der das ganze aufgebracht hast == Foermchen82

und zu JBoss - ja hab ich auch mit FKs, die Komplexität hielt sich aber noch in Grenzen, war ne einfache Lagerverwaltungskiste - das ging in meiner Erinnerung auch recht gut, frag jetzt aber nicht nach Beweisen ;)

aber ich wollte auch nicht, dass das Foermchen EJB lernt, sondern erstmal mit einer DB connecten soll (mit welcher auch immer)... außerdem glaub ich nicht, dass durch die Verwendung eines mysql-treibers automatisch dein code unter gpl fällt... das könnte ja gar nicht, weil die Teile der Java-API momentan nicht gpl sind... du würdest also dinge automatisch unter eine fremde Lizenz stellen, die du gar nicht selbst geschrieben hast...

Momentan geht ja sogar die Rede um, dass Java unter GPL laufen soll... was aber nicht weiter tragisch wäre, da die Verwendung von bestimmten Komponenten ja nicht automatisch den GPL-Zwang erzeugt... - wenn du ein Programm unter Linux entwickelst, heißt das ja noch lange nicht, dass das Programm auch die GPL-Lizenz besitzen muss...

P.S. ist mysql eigentlich tatsächlich gpl? ich dachte die hätten eine der apache-lizenz ähnliche kiste...
 

bronks

Top Contributor
Ahhh ... OriginialPoster ... hab ich noch nicht gewusst. :D

Du hast sicher die Tabellen in der DB angelegt und dann erst entsprechende EJB, oder? Wenn ich die Tabellen durch EJB erstellen lasse, dann versteht MySql nicht was JBoss möchte.

Ich warne nur davor, denn wenn dann die Persistenzmaschine nicht mit der DB harmoniert, dann ist der Ärger groß.

Das mit dem MySqlTreiber ist echt so. Entweder man kauft sich frei oder ist an die GPL gebunden. Wirf einen Blick in die LizenzVereinbarung von MySql und die GPL. Das was Du ansprichst würde der LGPL entsprechen.
 

SnooP

Top Contributor
achso - jo... ich hab tatsächlich zuerst die tabellen erstellt... - andersrum hab ich mir noch nie gedanken drum gemacht ;)

also okay - wenn man ejb nutzen will, dann nicht mysql ;) - dennoch wollte das der OP *g* ja auch gar nicht... und das was er denn machen möchte ist mit allen DBs mehr oder weniger identisch... sooo unterschiedlich sind die SQL-Dialekte dann auch wieder nicht.

Das mit der gpl wusste ich jetzt so nicht... hätte ich also spontan falsch gemacht ;)
 

bronks

Top Contributor
Jetzt bin ich Deiner Meinung! :D

Ich hab mich hier nur eingemischt, weil der OP gerade vor der Entscheidungsfrage steht und die zwei m.E. schwerwiegenden Punkte fast niemandem bekannt sind, welche bei der Entscheidungsfindung doch eine entscheidende Rolle spielen könnten.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Baerdoc Empfehlungen zur Auswahl Datenbank Datenbankprogrammierung 6
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
T SQL-Statement Datenbank nach SQL Statement schließen? Datenbankprogrammierung 7
MJannek Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
MongoDB-Datenbank in Androidstudio einbinden Datenbankprogrammierung 1
thor_norsk Datenbank: Apache Derby Datenbankprogrammierung 6
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
M Datenbank mit REST API Datenbankprogrammierung 66
M Entfernte Datenbank Datenbankprogrammierung 11
T Datenbank: Tabelle erstellen bei Web-Applikation Datenbankprogrammierung 4
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
M MySQL Datenbank in Array Datenbankprogrammierung 2
S Den letzten Eintrag aus Datenbank ziehen (Oracle SQL Dev.) Datenbankprogrammierung 14
N Datenbank abfragen nach bestimmten Wort Datenbankprogrammierung 7
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
raptorrs Plötzlich keine Verbindung zur Datenbank mehr möglich Datenbankprogrammierung 14
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
P Datenbank Tool - besser als oracle SQL Developer gesucht mit effizinte Verbindungsverwaltung Datenbankprogrammierung 2
X JPA (EclipseLink) und Oracle Datenbank Datenbankprogrammierung 2
T Datenbank auf einer Webseite aus einer Exceltabelle erstellen Datenbankprogrammierung 5
L SQL Datenbank Datenbankprogrammierung 7
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
L SQL Datenbank Tabelle erstellen Datenbankprogrammierung 6
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
anton1 Online Datenbank Datenbankprogrammierung 7
krgewb H2-Datenbank öffnen Datenbankprogrammierung 8
J Datenbank abfragen Datenbankprogrammierung 6
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
O SQL Abfragen mit Mini Datenbank Datenbankprogrammierung 12
Z Datenbank Choicebox wird nicht befüllt Datenbankprogrammierung 15
S Suche In SQL Datenbank mit array Datenbankprogrammierung 6
P Enum in der Datenbank Datenbankprogrammierung 1
Z SQL- Datenbank 1.PK zu 2.FK Datenbankprogrammierung 3
E netbeans - jsp Daten in Datenbank hinzufügen Datenbankprogrammierung 2
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
MiMa wo Datenbank verbinden/trennen? Datenbankprogrammierung 1
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
DeltaPilot12 Datenbank connect Funktion Datenbankprogrammierung 7
J Oracle Datenbank-Tabelle per Combobox (oder ähnliches) auswählen Datenbankprogrammierung 3
N SQL Datenbank Spalte in Java Array Datenbankprogrammierung 2
J JAR-Datei und Datenbank Datenbankprogrammierung 8
Bluedaishi Datenbank Abfrage Datenbankprogrammierung 36
Kirby.exe Zeile aus der Datenbank holen wenn ein match besteht Datenbankprogrammierung 7
Kirby.exe Es werden keine Einträge in der Datenbank gemacht Datenbankprogrammierung 23
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
J Welche Kriterien haben Einfluss auf die Geschwindigkeit einer Datenbank ? Datenbankprogrammierung 4
B Frage zu Datenbank Design bei Events (ZenDesk) Datenbankprogrammierung 1
M SQLite Datenbank mit SQLite Datenbankprogrammierung 7
C String in Datenbank einfügen Datenbankprogrammierung 11
C Keinen Zugrift auf Datenbank Datenbankprogrammierung 2
C Datenbank zugreifen Datenbankprogrammierung 10
L Auf Strato Datenbank zugreifen Datenbankprogrammierung 7
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
G Datenbank Statement Datenbankprogrammierung 22
M Datenbank editierbach machen in JTable Datenbankprogrammierung 13
S Datenbank MySQL und Java Datenbankprogrammierung 8
M H2 Verbindung zur Datenbank komplett schließen Datenbankprogrammierung 11
J Aufbau meiner Datenbank/Tabelle - Verbessern? So lassen? Datenbankprogrammierung 39
J Nur CRUD über Datenbank Klasse, oder auch mehr ? Datenbankprogrammierung 2
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
L Appabsturz mit Datenbank Datenbankprogrammierung 4
J Zahlungseingänge von mehreren Kunden wie am besten abbilden in der Datenbank ? Datenbankprogrammierung 8
L Datenbank sichern Datenbankprogrammierung 8
S Daten von SQLite Datenbank nutzen Datenbankprogrammierung 5
J Datenbank VPS Server Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
NIckbrick MySQL Befehle aus Datenbank auslesen Datenbankprogrammierung 21
S Datenbank/Java true/false Datenbankprogrammierung 8
J JUNIT und CRUD-Datenbank Datenbankprogrammierung 4
F Datenbank/Datenabgleich/Wiederholungsabfrage Datenbankprogrammierung 12
@SupressWarnings() Eure bevorzugte Datenbank-Library Datenbankprogrammierung 9
C datenbank verbindung config Datenbankprogrammierung 23
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
M Datenbank vor unerlaubtem Zugriff durch Benutzer schützen Datenbankprogrammierung 3
U MySQL Aus Servlet in Datenbank schreiben Datenbankprogrammierung 4
H Datenbank Export mit Java Datenbankprogrammierung 3
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
S SQL-Statement Datenbank Zeitbereich durchsuchen Datenbankprogrammierung 2
L Messenger App - Wie am besten auf Datenbank zugreifen? Datenbankprogrammierung 4
H MySQL Datenbank auf Xampp nimmt keine Mediumblob an. Datenbankprogrammierung 0
D Datenbank Abfrage Datenbankprogrammierung 7
H MySQL Benutzer Login System mit Datenbank Informationen (Abfrage zu User ist auf DB gesichert) Datenbankprogrammierung 42
L Oracle Datenbank über Java aufrufen Datenbankprogrammierung 29
DaCrazyJavaExpert Derby/JavaDB Unfindbarer Fehler im Datenbank-Code Datenbankprogrammierung 87
DaCrazyJavaExpert Derby/JavaDB Wert einer Variable in der Datenbank direkt auf 1 setzten. Datenbankprogrammierung 71
W MySQL Ausgabe von Datenbank in Java-App Datenbankprogrammierung 6
M portable Datenbank Datenbankprogrammierung 2
S Name aus der Datenbank bekommen Datenbankprogrammierung 2
K Eclipse: JBoss Hibernate Tool: Kein Zugriff auf Datenbank Datenbankprogrammierung 5
MaxG. Datenbank werte vergleichen Datenbankprogrammierung 5
MaxG. Access Datenbank Datenbankprogrammierung 48
@SupressWarnings() HSQLDB Datenbank für mein Dorfbauspiel "Time of Kings" Datenbankprogrammierung 6
K SQLite Datenbank in App integrieren: Vor Auslesen schützbar? Datenbankprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben