MySql Datenbank erstellen

maschl

Grünschnabel
Ich möchte mysql - bzw. jconnector in Java-Swing-Programmen einsetzen. Bislang habe ich "HSQL" verwendet. Den folgenden Code konnte ich verwenden, um eine DB zu öffnen oder falls nicht vorhanden, sie zu erzeugen.
Java:
  Class.forName("org.hsqldb.jdbcDriver");
  con = DriverManager.getConnection("jdbc:hsqldb:file:" + ".\\Verzeichn\DBname","sa","");
Mit "create Table " kann man dann die Tabellen anlegen.

In mysql klappt das anscheinend nicht:
Java:
  Class.forName("com.mysql.jdbc.Driver").newInstance();      
  con = DriverManager.getConnection("jdbc:mysql://localhost/test?" +
                                   "user=admin&password=admin");
Muß ich ersteinmal mysql installieren und die Datenbank anlegen? Wenn ja, gibt es da ein Tool? Zum Schluß noch eine saublöde Frage: Was bedeutet das Fragezeichen nach ../test?
und was das & in "....=admin&
Danke für Hilfe
 
Zuletzt bearbeitet von einem Moderator:
Hi und Willkommen bei tutorials.de,

was passiert genau?
Exception? Welche?

Zu ? und &: Das ist sowas wie eine Parameterübergabe in Urlart.
Bei Webseiten sieht man das oft, irgendwas wie
Code:
http://www.seite.com/suche.php?suchbegriff=hallo&trefferanzahl=10&sprache=de
Sowas in der Art.

Bitte Codetags verwenden (hier [code=java]...[/code]).

Gruß
 
Das ist der Java-Code:
Java:
public class CreateDB {    
   Connection con;
   //String databaseName = ".//data//AlphaDB";
    public CreateDB() {
    }
    
    public void connectDB() {
      try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
       con = DriverManager.getConnection("jdbc:mysql://localhost/test?" + 
                                          "user=susi&password=admin");
      }
      catch (Exception e ) {
          e.printStackTrace();
      } 
   }
das ist mein "Ergebnis"
Code:
java.sql.SQLException: Access denied for user 'susi'@'localhost' (using password: YES)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:943)  
                u.s.w.
Wenn mysql ebenso wie HSQL eine nicht existierende Datenbank erstellt, müßte "test?" mit einer Pfadangabe versehen werden. Habe ich auch versucht. Klappt aber auch nicht.
 
Zuletzt bearbeitet von einem Moderator:
Bitte Codetags verwenden.

Was ist das "u.s.w." von der Exception?
Auch das ist interessant.

Ist das Programm ein Applet?

Warum Pfadangabe?
MySQL-DBs werden nicht über ihren Festplattenpfad angesprochen.
 
Kein Applet sondern ein lokal laufendes Java-Programm mit Swing.
Wenn MySQL-DBs nicht über Pfadangaben angesprochen werden muß die DB dennoch physikalisch in einem bestimmten Verzeichnis stehen. Ich kenne mich leider überhaupt nicht aus und habe keine Ahnung, wie ich die DB anlegen kann und meine Tabellen erzeugen kann.
Ich kenne "HSQLdb". Damit wird mit dem obigen Code automatisch eine DB angelegt, falls sie nicht schon existiert. Das muß aber mit MySQL nicht genauso sein. Ist wohl auch nicht so.
Also mein Problem ist: wie komme ich zu einer DB, die ich dann über den obigen Code öffnen und mit select, insert ... Statements bearbeiten kann.
Ich hoffe, ich nerve nicht zu sehr.
 
Also die ganze Database ist noch nicht da.
Hatte bis jetzt angenommen, du willst dich zu einer bestehenden Datenbank verbinden.
Hm.
Muß ich ersteinmal mysql installieren und die Datenbank anlegen?
Du hast/willst also am eigenen Computer die DB.
Du hast Den Java-MySQL-Connector im Programm eingebunden.

Hast du auch den MySQL-Server installiert?
Zumindest Database hast du ja anscheinend nicht gemacht.

Wenn du den Server hast: Es ist auch ein (Nicht-Java-) Programm dabei,
bei dem man SQL-Befehle eingeben kann.
Mach ein "create database test;" (oder wie die D eben heißt).
Aus Java kann man (soweit ich weißt) keine ganzen DBs erzeugen oder löschen.

Diese HSQLdb scheint prinzipiell anders zu sein als MySQL, Oracle etc.
MySQL hat ein zentrales Serverprogramm, das die Daten verwaltet.
Die Connectoren etc. müssen beim Server anfragen, und der sucht die Daten dann raus.
HSQLdb scheint eher eine Art Im-Programm-Db zu sein,
die Dateien-speichern und -laden mit SQL kombiniert.
 
Das war nun echt hilfreich! HSQLdb ist tatsächlich so, wie von sheel beschrieben. Man bindet ein -jar ein und kann loslegen.
Für MySQL muß ich also den Server installieren und die Datenbank anlegen. Die Abfragen aus meinem Java-Programm kann ich dann also mit jconnector realisieren.
Was muß ich tun, wenn ich mein Java-Programm (myProg.jar) weitergebe? Muß dann auf dem "Weitergabe-Rechner" ebenfalls der MySQL-Server installiert werden und die Datenbank angelegt werden? Vermutlich ja.
Nochmals danke für die Hilfe
 
Was muß ich tun, wenn ich mein Java-Programm (myProg.jar) weitergebe? Muß dann auf dem "Weitergabe-Rechner" ebenfalls der MySQL-Server installiert werden und die Datenbank angelegt werden? Vermutlich ja.
Ja, das wäre nötig.

Warum bist du eigentlich von HSQLdb zu MySQL gewechselt?
Bzw. was hast du überhaupt vor?

Wenn HSQLdb irgendwelche Probleme gehabt hat oder benötigte Funktionen gefehlt haben
und deswegen gewechselt wurde: Von der Im-Programm-Sorte gibts noch mehr.
zB. Derby oder Oracle Berkeley.
 
HSQLdb arbeitet sehr zufriedenstellend - ist einfach zu handhaben, muß nicht installiert werden (Code ist in der "myprog.jar" enthalten. Ich benutze es sehr gerne. In diesem Fall ist MySQL der Wunsch eines Kunden, der ein sehr spezielles Programm braucht. Dies läuft zunächst einmal auf einem einzelnen Rechner, wird aber evtl. in das bestehende Netzwerk integriert. Hier läuft MySQL.
Mir ist die Client-Server-Architektur durchaus vertraut. Ich habe viele Jahre mit Oracle gearbeitet. Ich war nur der Meinung, MySQL-jconnector ist die embedded MySQL-Version. (Keine Ahnung wieso****)
Nochmals Danke für die Hilfe
 

Neue Beiträge

Zurück