Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Um es kurz zu halten: Ich habe eine Datenbank (Java DB, Embedded Driver), und versuche derzeit auch "nur" Daten aus einer Tabelle auszulesen.
Das Problem ist, dass ich nur die "SYS"-Tabellen aus der "SYS"-Schematik anzeigen kann, aber nicht Tabellen die z.B. in der Schematik "APP" zu finden sind. Ein Beispiel sieht ihr hier:
Ich würde raten, dass dein hier nicht gezeigter Code sich mit der Datenbank "Other Schemas" verbindet. Deshalb hat er natürlich nich lange keine zugriff auf die Datenbak APP.
BTW. Ich hoffe du bastelst da nicht tatsächlich mit echten Patientendaten rum. Programme die das machen benötigen eine Validierung gemäß Medizinproduktegesetzt. Eine nicht Einhaltung kann in schweren Fällen sogar strafrechtlich verfolgt werden.
Das sind alles Mockdatenbanken. Die folgende hab' ich jetzt auch mit Nutzername und Passwort erstellt, und ich hab' das jetzt mit mehreren Datenbanken reproduzieren koennen, bzw. neue angelegt, Tabellen erstellt, und bekomme immer einer dieser beiden Exceptions, eine davon auch
Java:
Exception in thread "main" java.sql.SQLSyntaxErrorException: Schema 'ALEX' does not exist
Auch wenn ich in der Standart-Schema bleibe, bzw. Schema "APP", bekomme ich die gleiche Exception.
Alle SQL-Statements hab' ich auch in der Konsole, bzw. JavaDB-Konsole getestet, und alles hat funktioniert.
Hier noch mal ein Ausschnitt:
DBConnect.java
Java:
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnect
{
public static final String dbURL = "jdbc:derby:pet;create=true";
public static String tableName;
public static Connection conn = null;
public static Statement stmt = null;
public static void createConnection()
{
try
{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
conn = DriverManager.getConnection(dbURL,"ALEX","pw");
}
catch (Exception except)
{
except.printStackTrace();
}
}
}
Database.java
Java:
package db;
import static db.DBConnect.conn;
import static db.DBConnect.createConnection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Database
{
public static void selectCategories() throws SQLException
{
createConnection();
String query = "SELECT * FROM ALEX.PET";
ResultSet rs = conn.createStatement().executeQuery(query);
if (!rs.next())
{
System.out.println("No data");
}
else
{
do
{
String catName = rs.getString("NAME");
System.out.println(catName);
}
while (rs.next());
}
if (conn!=null)
conn.close();
}
}
Pet.java
Java:
package gui;
import db.Database;
import java.sql.SQLException;
public class Pet
{
public static void main(String args[]) throws SQLException
{
Database.selectCategories();
}
}
Das Problem besteht weiterhin. Ich habe mich beschlossen eine andere Alternative zu nutzen - die H2 Embedded Datenbank.
Nach langer Internetsuche sieht's wohl so aus, als ob Embedded Derby sau viele Bugs hat (vor allem auch NetBeans) - aber das fuer ein anderes Thema.
Wenn die Anfrage besteht, waere ich auch dazu bereit ein kleines Tutorial dazu zu schreiben, bzw. wie man mit NetBeans eine Embedded (eingebundene, portable) Datenbank mit H2 erstellt, und leicht Daten abfragen/bearbeiten oder loeschen kann.