WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 23.04.2003, 13:20   #1
blauesau
Hero
 
Registriert seit: 08.04.2003
Beiträge: 821


Frage mySQL und Java

Hallo!

Ich muss mit Java auf eine mySQL-DB zugreifen. Das funktioniert, solange die DATENBANK (test1), auf die ich zugreifen möchte, existiert. Gibt es diese nicht, führt das zu einer Exception. Ich war der Meinung, dass eine DATENBANK, die nicht existiert, automatisch angelegt wird?

Der Code sieht ungefähr so aus:

Zitat:
private String treiber = "com.mysql.jdbc.Driver";
private String URL = "jdbc:mysql:///test1";
...
connections[i] = DriverManager.getConnection(URL);
...
Fehlermeldungen:

Zitat:
...
datenbank.TestClass
java.sql.SQLException: General error: Unknown database 'test1'
at com.mysql.jdbc.MysqlIO.sendCommand(Unknown Source)
at com.mysql.jdbc.Connection.connectionInit(Unknown Source)
at com.mysql.jdbc.jdbc2.Connection.connectionInit(Unk nown Source)
at com.mysql.jdbc.Driver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager .java:512)
at java.sql.DriverManager.getConnection(DriverManager .java:193)
at datenbank.ConnectionPool.<init>(ConnectionPool.jav a:27)
at datenbank.TestClass.<clinit>(TestClass.java:16)
java.lang.NullPointerException
at datenbank.TestClass.main(TestClass.java:46)
Kann mir da wer helfen?
blauesau ist offline   Mit Zitat antworten
Alt 23.04.2003, 13:24   #2
entropy
Jr. Member
 
Registriert seit: 11.01.2003
Beiträge: 23


entropy eine Nachricht über ICQ schicken
Standard

"Ich war der Meinung, dass eine Tabelle, die nicht existiert, automatisch angelegt wird? "

Das wär mir neu. Stimmt mMn absolut nicht, daher auch der Error. Eine nichtexistente Table löst eine SQL Exception: Unknown DB aus.

Du musst die Table schon anlegen, wenn Du nachher drauf zugreifen willst.

mfg
Entropy
entropy ist offline   Mit Zitat antworten
Alt 23.04.2003, 13:33   #3
blauesau
Hero
 
Registriert seit: 08.04.2003
Beiträge: 821


Standard

Eigentlich meinte ich nicht Tabelle, sondern DATENBANK, glaub ich...
blauesau ist offline   Mit Zitat antworten
Alt 23.04.2003, 13:44   #4
blauesau
Hero
 
Registriert seit: 08.04.2003
Beiträge: 821


Standard

Gut, die neue Frage lautet dann so:

Wie überprüfe ich, ob die DB schon existiert, und wenn nicht, lege ich eine neue an?
blauesau ist offline   Mit Zitat antworten
Alt 23.04.2003, 13:56   #5
entropy
Jr. Member
 
Registriert seit: 11.01.2003
Beiträge: 23


entropy eine Nachricht über ICQ schicken
Standard

uups, mein Fehler...Aber was für Tabellen gilt, gilt für Datenbanken erst recht.

das mySql Commando um eine Datenbank anzulegen lautet:
"create [dbname]"

dann kannst mit:
"use [dbname]" drauf connecten;

Um abzufragen ob die Db schon existiert, kannst ja die Exception die dein connect Statement wirft abfangen und ort prüfen ob die SQl Exception den Grund "Unknwon DB" hat. Soweit ich weiss, kannst über JDBC aber keine DBs anlegen, weil Du ja schon auf eine connecten musst um irgendwas tun zu können. Bleibt also nur die mySql Konsole

mfg
entropy
entropy ist offline   Mit Zitat antworten
Alt 23.04.2003, 14:02   #6
blauesau
Hero
 
Registriert seit: 08.04.2003
Beiträge: 821


Standard

Danke, ich hab's erstmal so gelöst (und es scheint zu funktionieren ):

Zitat:
try {
Connection con = DriverManager.getConnection("jdbc:mysql:///");
Statement st = con.createStatement();
st.executeUpdate("CREATE DATABASE test123");
st.close();
con.close();
}
catch (SQLException ex) {
...
}
Existiert die DB schon, löst er eine Exception aus und rührt die DB nicht an...

blauesau ist offline   Mit Zitat antworten
Alt 23.04.2003, 14:05   #7
entropy
Jr. Member
 
Registriert seit: 11.01.2003
Beiträge: 23


entropy eine Nachricht über ICQ schicken
Standard

das klappt und er legt eine neu DB an???

Aha, man lernt nie aus

mfg
entropy
entropy ist offline   Mit Zitat antworten
Alt 23.04.2003, 14:19   #8
blauesau
Hero
 
Registriert seit: 08.04.2003
Beiträge: 821


Standard

Jep, macht er... Brav, gell...
blauesau ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:22 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag