Allgemeiner Ratschlag zu meinem Programmunterfangen mit zentraler Datenbank

ubuntu_88

Mitglied
Guten Abend,

möchte eine Applikation zum verwalten von Seminaren schreiben. Die Datei müssen von unterschiedlichen Rechnern erreichbar sein.
Also brauch ich eine Datenbank, die ich zentral irgendwo hinlege.
Was für eine Datenbank kann man nehmen?
Und gibt es in Java irgendwie vorgefertige Klassen zur Datenverltung (sowas wie DataSet in C#) etc.
oder ne gute Anleitung .
In dem Programm soll es eine Eingabemaske geben und eine Ausgabemaske.

Nach längerem überlegen habe ich mich für JAVA entschieden, weil es die schon vor C# gab und mir irgendwie sympathischer ist.
die Applikation soll zwar nur auf Windows Rechner laufen, sonst könnte ich noch plattformunabhänig als Grund nennnen.
 

Landei

Top Contributor
Kommt ganz drauf an. Erst mal musst du entscheiden, ob die Clients direkt mit der Datenbank reden sollen, oder über einen ApplicationServer (GlassFish, JBoss wären die low-budget-Varianten). Daten von und zur Datenbank übertragen läuft unter dem Stichwort "Persistenz", da gibt es auch wieder verschiedene Varianten (JPA, Hibernate, EBean). Oder, wenn das wegen drei Tabellen mit Kanonen auf Spatzen ist, kannst du ganz normal mit JDBC deine Objekte per Hand füllen. Um mit Fontane zu reden: Ein weites Feld!
 

ubuntu_88

Mitglied
Ok nehm ich halt MySQL. Ist MySQL aber mehr in Verbindung mit PHP anzutreffen . Also im Web-Bereich?

Aufjedenfall nochmal zum Datenmanagement.

Es sollen Datensätze hinzugefügt, gelöscht, bearbeitet und ausgelesen werden!
Also die üblichen Funktionen.
Wie mache ich das am besten um nicht so viel Arbeit zu haben?

Kann man die Daten zum bearbeiten,löschen in einer Tabelle darstellen oder muss man das in einzelnden Oberflächen machen ?
In dem Bereich habe ich noch nichts gemacht!
 

L-ectron-X

Gesperrter Benutzer
MySQL ist für eine kleine Anwendung vielleicht schon zu zu fett. Schau dir mal H2 an, da kannst du die Datenbank gleich mit der Anwenung ausliefern. Es braucht sich auch niemand eine MySQL-Datenbank auf seinen Rechner installieren.
 

homer65

Top Contributor
Hier mal ein Beispiel wie man connect zur Datenbank und insert in eine Tabelle machen kann.
Java:
package pack;
import java.sql.*;
public class MySQL 
{
	int rc = 0;
	private Connection con = null;
	ResultSet rs = null;
	public int Connect()
	{
		rc = 0;
		if (con == null)
		{
			try 
			{
				Class.forName("com.mysql.jdbc.Driver").newInstance();
				String server = "10.11.6.222";
				String port = "3306";
				String sub = "mysql";
				String url = "jdbc:mysql://"+server+":"+port+"/"+sub;
				String userid = "root";
				String password = "xxx";
				con = DriverManager.getConnection(url,userid,password);
			}
			catch (Exception e)
			{
				con = null;
				rc = 8;
				Protokol.write("MySQL:Connect:Exception:");
				Protokol.write(e.toString());
			}
		}
		return rc;
	}
	public int InsertSystablesSatz(SystablesSatz s,long datum)
	{
		rc = 0;
		String sql = "Insert into db2stat.tabstats";
		sql += " (datum,name,creator,dbname,tsname,cardf,npages,statstime,avgrowlen)";
		sql += " values (?,?,?,?,?,?,?,?,?);";
		try
		{
			PreparedStatement stmt = con.prepareStatement(sql);
			stmt.setLong(1,datum);
			stmt.setString(2,s.name);
			stmt.setString(3,s.creator);
			stmt.setString(4,s.dbname);
			stmt.setString(5,s.tsname);
			stmt.setFloat(6,s.cardf);
			stmt.setInt(7,s.npages);
			stmt.setString(8,s.statstime);
			stmt.setInt(9,s.avgrowlen);
			stmt.executeUpdate();
		}
		catch (SQLException e)
		{
			rc = 8;
			Protokol.write("MySQL:Insert:Exception:");
			Protokol.write(e.toString());
		}
		return rc;
	}
}
 

ubuntu_88

Mitglied
Habe mir überlegt die Datenbank mit an das Programm zu hängen, weil das PRogramm nur von einer Person verwendet wird und wenn Sie mal zu Hause daran etwas machen möchte, kann die das Ding einfach kopieren.

Habt ihr da nen guten Tipp , welche Datenbank?
SQLLite?
H2 guck ich mir gerade mal an!
Muss der Anwender , dass Ding dann wahrscheinlich installieren oder ist das nur sonen Development Kram den man sich da auf der Seite lädt---- teste gerade
 

ubuntu_88

Mitglied
ok hab da nur gerade nen Problem.
Habs installiert. Das Programm hat ja ein Webinterface.
Krieg immer die Meldung im Browser:

H2 Console

Sorry, remote connections ('webAllowOthers') are disabled on this server.


Hab bei google und der H2 Dokumentation noch nichts gefunden

gelöst mit localhost gehts und mit 192.168.1.2(meine IP) nicht^^
 
Zuletzt bearbeitet:

ubuntu_88

Mitglied
Wie geht den das hier?

Add the h2*.jar to the classpath (H2 does not have any dependencies)

Habe ne Klasse erstellt:

Java:
import java.sql.*;

public class H2_Datenbank {
    public static void main(String[] a) throws Exception 
    {
    		Class.forName("org.h2.Driver");
    		Connection conn = DriverManager.
    			getConnection("jdbc:h2:~/test", "sa", "");

    		conn.close();
    }
}
 

frapo

Bekanntes Mitglied
Arbeitest du mit eclipse?

Einfach die entsprechende jar-Datei (z.B. h2-1.1.118.jar) in den BuildPath aufnehmen.

Gruß
frapo
 

ubuntu_88

Mitglied
ja arbeite mit Eclipse. Wo ist den da ein BuildPath.

Habe links nur SystemLibrary , wo paar *.jars drinne sind und referenzierte Libarys^^

Finde nirgendwo nen BuildPath. Wo ist den der zu finden ?
Arbeite noch nicht so lange mit Eclipse.

Ehm wisst ihr vllt. wie man den Jigloo Builder sichtbar schalten kann.

Der ist aufeinmal verschwunden xD
 
Zuletzt bearbeitet:

frapo

Bekanntes Mitglied
Finde nirgendwo nen BuildPath. Wo ist den der zu finden ?
Arbeite noch nicht so lange mit Eclipse.

Jedes Projekt hat einen BuildPath. Sehen kannst du den über verschiedene Wege: z.B. "Project | Properties | Java Build Path". Gehe dann auf Tab 'Libraries', dann auf 'Add Jars..'. Dort dann das Verzeichnis eingeben/auswählen, in dem deine h2.jar liegt.

Wenn du noch nicht lange mit eclipse arbeitest: guck dir mal die Hilfe an, da steht eine ganze Menge zu solch grundsätzlichen Dingen.

ubuntu_88 hat gesagt.:
Ehm wisst ihr vllt. wie man den Jigloo Builder sichtbar schalten kann.
Der ist aufeinmal verschwunden xD

Vielleicht hast du die Perspective geschlossen? Mit "Window | Open Perspective | Other" dürftest du alle Perspectives auswählen können, die du am Start hast, also auch Jigloo.

Gruß
frapo
 

Ähnliche Java Themen


Oben