Zugriff auf MySQL-Datenbank

jf

Bekanntes Mitglied
Guten Morgen!

Ich möchte Werte in eine Datenbank schreiben. Ich hatte hierfür einen php-Klasse geschrieben, welche Datenbanken und Tabellen anlegt und diese mit den Werten füllt. Da das Skript aber regelmäßig ausgeführt werden muss und ich keinen Cron-Job dafür verwenden will, bin ich dazu übergegangen, eine Java-Anwendung für diesen Zweck einzusetzen. Allerdings habe ich Probleme meine php-Klasse auf Java umzumünzen.

Ich habe momentan eine Klasse wie folgt implementiert:

Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 

public class SQL {
    private static Connection m_conn = null;
 

    public SQL(String host, String port, String db, String user, String pwd) {
        try {
            // Datenbanktreiber für ODBC Schnittstellen laden.
            // Für verschiedene ODBC-Datenbanken muss dieser Treiber
            // nur einmal geladen werden.
            Class.forName("com.mysql.jdbc.Driver");
 
            // Verbindung zur ODBC-Datenbank 'sakila' herstellen.
            // Es wird die JDBC-ODBC-Brücke verwendet.
            m_conn = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + 
                                                  db + "?" + "user=" + user + "&" + "password=" + pwd);
        } catch(ClassNotFoundException e) {
            System.out.println("Treiber nicht gefunden");
        } catch(SQLException e) {
            System.out.println("Connect nicht moeglich");
        }
    }
    

    /**
     * Prüft, ob eine Datenbank existiert
     */
    public void existsDatabase(String database) {
        if(m_conn != null) {
            try {
                // Anfrage-Statement erzeugen.
            	Statement query = m_conn.createStatement();
 
                // Ergebnistabelle erzeugen und abholen.
                String sql = "SHOW DATABASES";
                ResultSet result = query.executeQuery(sql);
 
                // ???

            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }


    /**
     * Erstellt eine neue Datenbank
     */
    public void createDatabase(String database) {
        if(m_conn != null) {
            try {
                // Anfrage-Statement erzeugen.
            	Statement query = m_conn.createStatement();
 
                // Ergebnistabelle erzeugen und abholen.
                String sql = "CREATE DATABASE IF NOT EXISTS " + database;
                ResultSet result = query.executeQuery(sql);     // wirft eine SQLException
                
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

Meine konkreten Fragen wären folgende:

* Verwende ich den richtigen Treiber? (ich verwende eine MySQL-Datenbank) - Denn im Javabuch wird der Treiber mit sun.jdbc.odbc.JdbcOdbcDriver initilisiert. Ist die Synthax der SQL-Kommandos abhängig vom Treiber, oder nur von der Datenbank?

* Lässt sich eine Connection auch ohne Angabe eines Datenbanknames erzeugen? Bei php ging dies, hier bei Java erhielt ich leider einen Fehler.
 

r.w.

Bekanntes Mitglied
Hallo jf,

zu Frage 1 schon mal:
Den mySQL-Treiber findest Du hier: MySQL :: Download Connector/J

zu Frage 2:
Man kann statt des Datenbanknamens einen Leerstring übergeben. Die Verbindung sollte trotzdem klappen.
Sonst könnte man aus der Applikation heraus ja keine Datenbank anlegen.

Ich hoffe, das hilft Dir weiter.

VG ROlf
 
Zuletzt bearbeitet:

jf

Bekanntes Mitglied
Hallo Rolf,

zu Frage 1 schon mal:
Den mySQL-Treiber findest Du hier: MySQL :: Download Connector/J
Ja, ich habe die Library schon dem ClassPath hinzugefügt (v5.0.5, weil diese noch alte MySQL-Versionen unterstützt und mit alten Java-Versionen läuft). Allerdings weiß ich gar nicht, ob diese wirklich benötigt wird, da ich nichts aus dieser Bibliothek importiert habe. - Kann es sein, dass der DriverManager auf diese Lib zurückgreift?

zu Frage 2:
Man kann statt des Datenbanknamens einen Leerstring übergeben. Die Verbindung sollte trotzdem klappen.
Sonst könnte man aus der Applikation heraus ja keine Datenbank anlegen.
Ja, deshalb hat es mich ja so gewundert - bei php ging es ja auch.
Ich habe es nun noch einmal probiert und es kam keine Fehlermeldung - evtl. hatte ich bei meinem letzten Versuch diesbezüglich einen Fehler gemacht.

Ich hoffe, das hilft Dir weiter.
Leider nur minimal, ich scheitere immer noch am Anlegen einer neuen Datenbank:
Java:
                String sql = "CREATE DATABASE IF NOT EXISTS " + database;
                ResultSet result = query.executeQuery(sql);

Gruß, Peter
 
M

maki

Gast
Solltest dir das Query Interface genauer ansehen, executeQuery ist nur eine Methode, execute und executeUpdate sind weitere um SQL an die DB zu schicken.
 

jf

Bekanntes Mitglied
Solltest dir das Query Interface genauer ansehen, executeQuery ist nur eine Methode, execute und executeUpdate sind weitere um SQL an die DB zu schicken.
Danke für den Hinweis. Leider bin ich irgendwie immer noch auf dem Holzweg. ;(

In der Doku zum Interface Query finde ich die erwähnten Methoden leider nicht:
Query (Java EE 6 )

Kann es sein, dass ich da das falsche Interface erwischt habe? - Ich habe allerdings unter java.sql kein anderes finden können:
java.sql (Java 2 Platform SE v1.4.2)

???:L
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
L Zugriff auf lokal gespeicherte mySQL Datenbank Datenbankprogrammierung 3
E Zugriff auf MySQL-Datenbank Datenbankprogrammierung 4
D Kann nicht auf MySQL Datenbank Zugriff Datenbankprogrammierung 9
R Zugriff auf MySQL-Datenbank im Internet Datenbankprogrammierung 13
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
L MySQL App/Java Zugriff auf Mysql-DB funktioniert nicht Datenbankprogrammierung 1
W MySQL -Server Einstellung -- Zugriff übers lokale Netzwerk Datenbankprogrammierung 1
A MySQL-Zugriff auf Raspberry Pi Datenbankprogrammierung 2
A Zugriff auf Remote MySQL-DB mit JAR-File Datenbankprogrammierung 7
J MYSQL-Zugriff mittels einer Java-Bean Datenbankprogrammierung 42
M mySQL zugriff funktionert nach ca4 stündiger laufzeit nicht Datenbankprogrammierung 6
L Zugriff von Applet auf mysql-DB Datenbankprogrammierung 2
D Mysql zugriff aus java nicht moeglich Datenbankprogrammierung 2
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
H MariaDB-Zugriff mittels Java SE Datenbankprogrammierung 3
M Datenbank vor unerlaubtem Zugriff durch Benutzer schützen Datenbankprogrammierung 3
L Zugriff auf ein Resultset Datenbankprogrammierung 7
R jdbc-Zugriff Nicht erlaubt ? Datenbankprogrammierung 16
K Eclipse: JBoss Hibernate Tool: Kein Zugriff auf Datenbank Datenbankprogrammierung 5
D Gleichzeitiger Zugriff auf der DB Datenbankprogrammierung 11
F Zugriff auf ein bestimmte Row Datenbankprogrammierung 13
S HSQLDB Zugriff auf Access Datenbank Datenbankprogrammierung 0
M DB-Zugriff funktioniert nach JAR-Erstellung nicht mehr Datenbankprogrammierung 3
P Datenbank Zugriff fehlgeschlagen Datenbankprogrammierung 9
B MySQL JDBC Zugriff auf entfernt Datenbank, fehlende Rechte Datenbankprogrammierung 2
R Oracle jdbc Zugriff auf Oracle Datenbankprogrammierung 2
T Derby/JavaDB Zugriff auf DB mit exportiertem Programm Datenbankprogrammierung 12
T PostgreSQL Best Practice: Konkurrierender DB-Zugriff mit meherern Programmen? Datenbankprogrammierung 20
D .mdb Datenbank Zugriff fehlgeschlagen Datenbankprogrammierung 5
B Datenbanken schützen vor Zugriff Datenbankprogrammierung 3
K MySQL Zugriff auf Remote-DB verweigert Datenbankprogrammierung 6
G MySQL Zugriff auf Datenbank Objekt Datenbankprogrammierung 19
C Hibernate n:m mittels Zwischentabelle und bidirektionaler Zugriff Datenbankprogrammierung 2
M Zugriff auf mdb via ODBC steuern Datenbankprogrammierung 2
A Zugriff auf DB-Tabellen mit Objekten Datenbankprogrammierung 3
D Was passiert bei absolut zeitgleichem Zugriff auf eine Tablerow Datenbankprogrammierung 7
I Zugriff auf Datenbank nach Erstellen einer Executable Jar Datei verweigert Datenbankprogrammierung 10
I Zugriff auf eine Datenbank auf dem Webserver Datenbankprogrammierung 2
J Derby/JavaDB Zugriff ohne Entwicklungsumgebung Datenbankprogrammierung 5
E H2 - Globalen Zugriff auf die Datenbank? Datenbankprogrammierung 10
F Zugriff auf MS Access-Datenbank mit jackcess Datenbankprogrammierung 10
F suche Erstanschub für DB-Zugriff Datenbankprogrammierung 9
E einfache Frage bei DB-Zugriff Datenbankprogrammierung 11
P MySQL Remote Zugriff Datenbankprogrammierung 2
C Gleichzeitiger Zugriff auf Datensatz Datenbankprogrammierung 5
T Problem bei Zugriff auf Access Datenbank Datenbankprogrammierung 7
T MySQL Zugriff ohne Angabe der Datenbank Datenbankprogrammierung 3
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
J Frage zu Synchronisation bei parallelem Zugriff, speziell mit JPA Datenbankprogrammierung 2
T DB Zugriff mit Java Web Datenbankprogrammierung 6
R Zugriff auf SQL im PreparedStatement Datenbankprogrammierung 4
F Zugriff auf MS Access DB Datenbankprogrammierung 3
J Nullpointer Exception bei Zugriff auf Datenbank Datenbankprogrammierung 13
J Zugriff auf Access-Datenbank Datenbankprogrammierung 3
R Java DB Zugriff Datenbankprogrammierung 2
T Zugriff auf Derby-Datenbank will einfach nicht klappen Datenbankprogrammierung 22
G Zugriff auf Datenbank im Internet Datenbankprogrammierung 6
J Java DB Zugriff auf Access (Migration auf andere DB) Datenbankprogrammierung 8
G treiber für datenbank zugriff Datenbankprogrammierung 3
L Datenbank URL Zugriff Datenbankprogrammierung 9
G Wie baut man eine Anwendung mit DB Zugriff Datenbankprogrammierung 3
QDog JPA persistence.xml auslagern/extern Zugriff Datenbankprogrammierung 2
A HSQLDB Performance bei erstem Zugriff Datenbankprogrammierung 6
S Datenbank zugriff optimieren - zugriff ohne cursor? Datenbankprogrammierung 7
A Zugriff auf DB-Pool, der von Servlet initialisiert wurde Datenbankprogrammierung 4
J Zugriff mit DataSource Datenbankprogrammierung 7
M Zugriff für andere sperren Datenbankprogrammierung 11
K Zugriff mittels JDBC funktioniert nur lokal Datenbankprogrammierung 5
S Zugriff auf eine große Datenmenge von MS Access per JDBC Datenbankprogrammierung 11
G Hibernate Zugriff Datenbankprogrammierung 5
E JDBC Oracle Fehler, zugriff auf datenbank (Cluster) Datenbankprogrammierung 5
D ODBC Zugriff auf MDB-Datenbank, Insert Into ohne Funktion Datenbankprogrammierung 2
T Zugriff auf MS-Access-DB ist grottenlangsam. Normal? Datenbankprogrammierung 9
G Verwendung neuen Treiber für JDBC-Zugriff auf OracleDB Datenbankprogrammierung 5
G Access Zugriff, DB auf Server, Applet Datenbankprogrammierung 4
D Problem beim Zugriff auf eine Oracle-DB Datenbankprogrammierung 23
G Policy Eintrag für SQL Zugriff im Netzwerk Datenbankprogrammierung 10
S Java SQL-Exception bei Zugriff auf MSAccess Datenbankprogrammierung 2
S JDBC Zugriff auf SQLServer Datenbankprogrammierung 9
D Datenbank zugriff über Client/Server Datenbankprogrammierung 4
M Zugriff auf PostgreSQL mit JAva! Datenbankprogrammierung 7
F Zugriff auf ODBC-Datenbank übers Netzwerk Datenbankprogrammierung 6
G Problem beim Zugriff SQL 2000 Datenbankprogrammierung 2
T Verwaltungsystem mit grafischer Oberfläche mit Zugriff auf. Datenbankprogrammierung 6
C Zugriff auf MS Access Datenbankprogrammierung 4
D Zugriff auf Paradox-Datenbank Datenbankprogrammierung 10
B ResultSet aus Session geladen, aber kein Zugriff möglich Datenbankprogrammierung 6
D HSQLDB Datenbank Zugriff! Datenbankprogrammierung 4
L Programm-Architektur bei DB-Zugriff Datenbankprogrammierung 6
K Zugriff auf Access-Datenbank Datenbankprogrammierung 4
R Datenbank zugriff funktioniert nur offline Datenbankprogrammierung 2
G Fehlermeldung beim Zugriff auf SQL-Server-DB Datenbankprogrammierung 3
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben