Verbindung zur Datenbank (SQL.)

Status
Nicht offen für weitere Antworten.

BoFiaZ

Mitglied
Hallo,

ich würde mich gerne mit dem eintragen und auslesen von Daten aus einer Datenbank beschäftigen, einfach um zu lernen. Nun habe ich bereits versucht mich mit meinem SQL Server 2005 zu konnektieren, das hat aber leider nciht funktioniert, da ich nicht 100%ig weiß, ob ich den Datenbanktreiber und die URL zur Datenbank korrekt gewählt habe. Welche Datenbank würdet ihr denn zur Eingewöhnung empfehlen? Am liebsten wäre mir natürlich eine Datenbank die ohne weiteres mit Java zusammenarbeitet und die Verbindung sehr einfach gehalten ist.

Vielleicht könnt ihr mir ja auch sagen wie der Datenbanktreiber und die URL zu Datenbank standardmäßig heißt, damit ich auch den SQL Server verwenden kann.

Vielen Dank für Eure Bemühungen.

Freue mich auf Eure Antwort... - danke!
 
Unter Windows ist MS SQL Server schon ok, als JDBC Treiber empfehle ich jTDS.

Hast du den Port geöffnet?
Bekommst du eine Verbindung mit telnet?
 
Sorry, ich bin noch ein ziemlicher Anfänger... die SQL Datenbank ist hier direkt auf meinem Rechner. Ich weiß nicht ob ich darauf per Telnet Zugriff habe und auch nicht ob ich den Port geöffnet habe. Kannst du mir vielleicht sagen was ich dafür machen muss, bzw. wie ich das Teste?

Ich habe den SQL Server hier für eine Warenwirtschaft installiert, das funktioniert.
 
Ich finde Java-Datenbanken wie Derby oder HSQLDB ganz gut. Die kann man als DB-Server starten oder direkt in seine Software einbetten. Und die JDBC-Treiber sind inklusive.
Derby wird seit Java 6 mit dem JDK ausgeliefert.
 
Eine Console öffnen und dann
telnet localhost 1499
eingeben.

Was passiert?

Welche Version der SQL Servers verwendest du?

Nebenbei, ein RDBMS ist niemals trivial, musst dic h da immer reinarbeiten, speziell was die Benutzer und Benutzerrechte betrifft.
 
maki hat gesagt.:
Nebenbei, ein RDBMS ist niemals trivial, musst dic h da immer reinarbeiten, speziell was die Benutzer und Benutzerrechte betrifft.
Also bei Derby z.B. kann man auf Benutzerberechtigungen (und Benutzer) völlig verzichten. Dann hat man ein RDBMS wie es trivialer nicht sein kann 🙂
 
Danke für die schnelle Antwort. Ich würde natürlich gerne für beide wissen wie die Verbindung aufgebaut werden kann. Mir geht es erster Linie darum das ich mal Erfahrungen mit Java in Bezug auf Eingabefelder mit Eintrag in eine Datenbank sammeln kann. Es wäre mir also am Anfang sehr recht wenn die Verbindung relativ einfach gestrickt ist. Man verliert leicht die Lust wenn man 2 Tage nur an der Datenbankverbindung herumdoktern tut.

Gibt es denn für Derby und HSQLDB auch sowas wie eine Oberfläche um Tabellen etc. anzulegen? Sowas wie PHPMyAdmin im Web oder dem SQL Server Manager? Welche von den beiden ist den nun besser? Da ich Anfänger bin weiß ich natürlich nicht welche ich nehmen soll. Arbeite mit Netbeans, da weiß ich nicht ob Derby bereits dabei ist. Ihr vielleicht?

Zu dem SQL Server... ich habe den SQL Server 2005. Habe soeben mal versucht mit Telnet darauf zu zugreifen. Das Fenster geht auf und sofort wieder zu. Ich nehme also an das der Port nicht geöffnet ist. Muss der Port denn offen sein oder kann ich einen anderen probieren? Weiß zufällig jemand wo die Verbindungsdaten zu dem SQL Server stehen? Irgendwo in der Konfiguration muss doch der Benutzername und das Passwort hinterlegt sein und der Pfad und der Treiber doch auch. Man kann doch nicht unendlich viel ausprobieren. Oder muss man das bei Microsoft doch so machen?

Trotz meines langen Textes hoffe ich auf eine baldige Antwort... freue mich schon darauf endlich weiterzumachen... aber das mit der Datenbankverbindung streßt mich sehr...

Vielen Dank... wirklich tolles Forum mit vielen hilfsbereiten und freundlichen Mitgliedern... da bin ich im Webbereich anderes gewohnt...

Vielen Dank nochmal....
 
Zu dem SQL Server... ich habe den SQL Server 2005. Habe soeben mal versucht mit Telnet darauf zu zugreifen. Das Fenster geht auf und sofort wieder zu. Ich nehme also an das der Port nicht geöffnet ist. Muss der Port denn offen sein oder kann ich einen anderen probieren? Weiß zufällig jemand wo die Verbindungsdaten zu dem SQL Server stehen?
Was meinst du mit "as Fenster hat sich geöffnet..", welches Fenster denn?
Du solltest die Zeile von der console ausführen, also zuerst cmd und dann...

Du brauchst ein Login und einen Benutzer um auf die DB zuzugreifen.
 
Ok, ich habe das cmd vergessen...
Es steht allerdings da "Es konnte keine Verbindung mit dem Host hergestellt werden, auf Port 1499: Verbindung fehlgeschlagen.!". Der Benutzer müßte doch in der Regel "sa" sein, dass Passwort " " (leer). Aber ich weiß es nicht mehr geanu. Das muss ich doch aber irgendwo einsehen können bzw. ändern können oder nicht? Damit ich da mal wieder eine Defaulteinstellung habe und sichergehen kann, dass zumindest die Verbindungsdaten stimmen...

Ich brauche doch zum SQL Server noch den Datenbanktreiber und die URL zur Datenbank...
 
@Ariol: also ich bin wirklich noch Anfänger und blicke da auf Grund der vielen Zeilen Code in deinem Beispiel nicht durch. Ich weiß nicht was ich wirklich zur Verbindung benötige und was Erweiterungen sind. Kannst du mir bitte die Zeilen für die Verbindung heraus kopieren und posten? Das würde mir sehr helfen... danke...

Ich komme ja aus der Web-Richtung und da benötige ich für einen Datenbankconnect genau zwei Zeilen... warum muss das bei Offline-Lösungen immer so komplex sein? Da scheitern doch die meisten Anfänger, oder etwa nicht?
 
Du musst dir als erstes die Derby-jars besorgen und dann diese und die Klassen von mir in dein Projekt einbauen (Ist recht einfach in Eclipse - da gibts auch ein Derby-Plugin)

Eine einfache Verbindung findest du in der DBTest.java.

Das ganze ist so aufgebaut, dass wenn du zu localhost verbindest die Datenbank gestartet wird. Wenn du auf einen externen Server zugreifst muss dort eine Derby-Datenbank laufen.

Extern hab ich allerdings nur einmal bisher versucht, also keine Garantie.

Das ganze ist auch eigentlich als ein Workaround gedacht um einfach lokale Anwendungen mit einer lokalen Datenbank auszustatten.

EDIT: Was die 2 Zeilen angeht, das klappt fast:

Code:
package de.kraemer.database.manager.example;

import de.kraemer.database.manager.DatabaseManager;

public class DBTest
{

	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		DatabaseManager databaseManager = new DatabaseManager("MyDB","User","Pass",System.out);
		
		try
		{
			databaseManager.startup();
		}
		catch (Exception e)
		{
			System.err.println("Error starting up.");
			e.printStackTrace();
		}
						
		//Querys
		
		try
		{
			databaseManager.shutdown();
		}
		catch (Exception e)
		{
			System.err.println("Error shuting down.");
			e.printStackTrace();
		}
	}


}
 
Oder ganz einfach als Embedded DB:
Code:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection con = DriverManager.getConnection("jdbc:derby:meineDb;create=true");

Ein einfaches Testprogramm:

Code:
public class Test {

    public static void main(String... args) throws Exception {
        Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
        Connection con = DriverManager.getConnection("jdbc:derby:meineDb;create=true");
        
        Statement stmt = con.createStatement();
        ResultSet rset = stmt.executeQuery("select * from sys.sysschemas");
        while (rset.next()){
            System.out.println(rset.getObject(2));
        }
        stmt.close();
        con.close();              
    }
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben