applejoe
Mitglied
Thread Starter
- Dabei seit
- 29.10.2005
- Beiträge
- 57
- Reaktionspunkte
- 0
Ich arbeite gerade das Buch "Datenbanken & Java" von Saake/Sattler durch. In Kapitel Kapitel 4.3.1 wird die Verwendung von Datenquellen (DataSource) statt des Treibermanagers (DriverManager) beschrieben. Die einzelnen Schritte sind zwar grob beschrieben, es ist aber leider kein Beispielcode einer kleinen Anwendung gegeben. Habe also selber mal was versucht. Funktioniert aber nicht. In der Zeile
bricht der try-Block mit der Meldung
NamingException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
ab
In der Zeile
gibt es dann eine NullPointerException. In Foren finde ich wenig über das DataSource Konzept. Da ist meistens der DriverManger Thema. Hat jemand ne Idee?
Code:
initialCtx.bind("jdbc/BuchDB", mySqlDs);
NamingException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
ab
In der Zeile
Code:
conWithDataSource = ds.getConnection("root", "root");
Code:
public class dbds {
public static void main(String[] args) {
Context initialCtx;
Connection conWithDataSource = null;
DataSource ds = null;
Statement stmt;
ResultSet rs;
String query = "Select title, price, stock FROM book";
MysqlDataSource mySqlDs = new MysqlDataSource();
mySqlDs.setServerName("localhost");
mySqlDs.setDatabaseName("myDB");
mySqlDs.setPortNumber(8889);
try {
initialCtx = new InitialContext();
initialCtx.bind("jdbc/BuchDB", mySqlDs);
// Das war der Eintrag in den Namensdienst
// Und jetzt Verbindung über diesen Eintrag herstellen
Context connectionCtx = new InitialContext();
ds = (DataSource) connectionCtx.lookup("jdbc/BuchDB");
} catch (NamingException exc) {
System.out.println("NamingException: " + exc.getMessage());
}
try {
conWithDataSource = ds.getConnection("root", "root");
stmt = conWithDataSource.createStatement();
rs = stmt.executeQuery(query);
while (rs.next()) {
String s = rs.getString(1);
double d = rs.getDouble(2);
int i = rs.getInt(3);
System.out.println(s + ", " + d + " EURO, " + i);
}
} catch (SQLException exc){
System.out.println("SQLExeption" + exc.getMessage());
}
}
}