WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   mySQL und Java (http://www.wcm.at/forum/showthread.php?t=94900)

blauesau 23.04.2003 13:20

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? :confused:

entropy 23.04.2003 13:24

"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

blauesau 23.04.2003 13:33

Eigentlich meinte ich nicht Tabelle, sondern DATENBANK, glaub ich... :o

blauesau 23.04.2003 13:44

Gut, die neue Frage lautet dann so: :)

Wie überprüfe ich, ob die DB schon existiert, und wenn nicht, lege ich eine neue an? :confused:

entropy 23.04.2003 13:56

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

blauesau 23.04.2003 14:02

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...

:D

entropy 23.04.2003 14:05

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

Aha, man lernt nie aus :)

mfg
entropy

blauesau 23.04.2003 14:19

Jep, macht er... Brav, gell... :D


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:54 Uhr.

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