SQLException fangen beim verbinden mit Hibernate

Status
Nicht offen für weitere Antworten.

F4llen4ngel

Aktives Mitglied
Einen wunderschönen ...

Möchte gern eine DB Verbindung per Hibernate aufbauen.
Klappt auch wunderbar, so lange ich die richtigen Werte eingebe.

Wenn ein Anwender falsche Daten angegeben hat, möchte ich ihn gern darauf hinweisen,
doch leider wird an der Stelle wo es kracht die jeweilige Exception schon irgendwo anders abgefangen und ausgegeben ...

Bei falschen Daten tritt der Fehler in der letzten Zeile von volgendem Code auf:

Java:
AnnotationConfiguration lConfiguration = buildConfiguration();
lConfiguration.configure();

mSessionFactory = lConfiguration.buildSessionFactory();

In der Console bekomme ich z.B. folgenden Fehler ausgegeben:
2009-07-15 21:27:06,355 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - could not complete schema update
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

Leider komme ich mit einem try / catch Block nicht an die jeweilige Exception heran, so dass ich dem User eine Meldung ausgeben kann.

Hat jemand eine Idee wie ich an die Exception rankomme bzw. im schlimmsten Fall danach prüfen kann ob mit der Verbindung alles IO ist?
 

woezelmann

Mitglied
An die Exception wirst du nicht rankommen, weil sie schon von Hibernate behandelt und gelogged wird. Ich geh aber stark davon aus, dass
Code:
lConfiguration.buildSessionFactory();
null liefert, wenn was schiefläuft. Das kannst du dann prüfen und ggf. auch noch nen Fehler ausgeben
 

byte

Top Contributor
Hibernate fängt die SQLException und wirft eine Hibernate Exception weiter. Diese kannst Du fangen. Du kannst Dir dann die eigentliche SQLException aus dieser Exception wieder rausholen. Einfach mal den Root Cause durchforsten.
 

-MacNuke-

Bekanntes Mitglied
Hibernate fängt die SQLException und wirft eine Hibernate Exception weiter. Diese kannst Du fangen. Du kannst Dir dann die eigentliche SQLException aus dieser Exception wieder rausholen. Einfach mal den Root Cause durchforsten.

Das ist übrigens nicht der Fall. Hibernate verschluckt die Exception (habe im Code nachgesehen). Ich habe nämlich gerade das gleiche Problem (und per Suchfunktion den Thread gefunden). Man kommt somit nicht mal an die Fehlermeldung heran, da Hibernate diese an das Logging-Framework schickt, und das war's dann.

Somit musste ich jetzt selbst eine Verbindung zur Datenbank herstellen (über DriverManager) um eine etwaige Fehlermeldung zu bekommen.

Kennt jemand sonst noch eine Lösung, außer ein anderes ORM-Framework zu nutzen? ;)
 
Zuletzt bearbeitet:

byte

Top Contributor
Ich kann Dir mit Sicherheit sagen, dass Hibernate SQL Exceptions lediglich wrapt und nicht verschluckt.

Du loggst sicher nicht den gesamten Stack Trace der Exception. Dann siehst Du solche Details natürlich nicht. Du kannst Dir ohne weiteres einen eigenen Exception Handler schreiben, der die Hibernate Exceptions auseinander nimmt und sich die tatsächliche SQL Exception rausholt. Diese kannst Du dann gezielt behandeln, falls das gewünscht ist.
 

-MacNuke-

Bekanntes Mitglied
Ich kann Dir mit Sicherheit sagen, dass Hibernate SQL Exceptions lediglich wrapt und nicht verschluckt.

Ich kann dir gerne auch den Ausschnitt aus dem Source-Code zeigen wenn du magst ;) Hibernate verschluckt sie ;) Ich habe sogar allgemein "Exception" abgefangen. Da kommt nix. Moment, ich suche sie gleich noch mal...
 
M

maki

Gast
Ich kann dir gerne auch den Ausschnitt aus dem Source-Code zeigen wenn du magst ;) Hibernate verschluckt sie ;) Ich habe sogar allgemein "Exception" abgefangen. Da kommt nix. Moment, ich suche sie gleich noch mal...
Ich mag! :)

Wäre nämlich etwas ganz neues wenn Hibernate Exceptions verschluckt ;)
 

-MacNuke-

Bekanntes Mitglied
So, dann hier ganz was neues ;)

Auszug aus SettingsFactory.java
Java:
public Settings buildSettings(Properties props) {
...
				Connection conn = connections.getConnection();
				try {
					DatabaseMetaData meta = conn.getMetaData();
					log.info( "RDBMS: " + meta.getDatabaseProductName() + ", version: " + meta.getDatabaseProductVersion() );
					log.info( "JDBC driver: " + meta.getDriverName() + ", version: " + meta.getDriverVersion() );

					dialect = DialectFactory.buildDialect( props, conn );

					metaSupportsScrollable = meta.supportsResultSetType( ResultSet.TYPE_SCROLL_INSENSITIVE );
					metaSupportsBatchUpdates = meta.supportsBatchUpdates();
					metaReportsDDLCausesTxnCommit = meta.dataDefinitionCausesTransactionCommit();
					metaReportsDDLInTxnSupported = !meta.dataDefinitionIgnoredInTransactions();
					metaSupportsGetGeneratedKeys = meta.supportsGetGeneratedKeys();
				}
				catch ( SQLException sqle ) {
					log.warn( "Could not obtain connection metadata", sqle );
				}
				finally {
					connections.closeConnection( conn );
				}

...
}
 
M

maki

Gast
So, dann hier ganz was neues
Nee, da hast du etwas verwechselt ;)

Da geht es rein um die MEtadaten, die Connection besteht zu diesem Zeitpunkt schon, oder eben nicht,dann ist aber schon vorher die Exception geflogen.
 

-MacNuke-

Bekanntes Mitglied
Ich bin doch nicht blöd ;)

Aufruf mit falschen Login-Daten
Java:
try {
  EntityManager em = EntityManagerUtil.getSessionFactory().createEntityManager();
  em.close();
} catch (Exception e) {
   System.out.println("Mööööööp");
}

Rate mal was nicht erscheint ;)
 

byte

Top Contributor
Und wie kriegt der TE dann die SQL Exception in der Konsole, wenn Hibernate die offenbar verschluckt? :autsch:

Code:
2009-07-15 21:27:06,355 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - could not complete schema update
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

Ich benutze Hibernate seit mehreren Jahren und habe schon diverse SQLExceptions aus dem Stacktrace gefischt.
 

-MacNuke-

Bekanntes Mitglied
Mal ernsthaft, kein "Mööööööp"?

Nein. Und der EntityManagerUtil sieht so aus:

Java:
public class EntityManagerUtil {
    private static EntityManagerFactory sessionFactory;

    public static EntityManagerFactory getSessionFactory() {
        if(sessionFactory == null) {
            UserLogin user = UserLogin.getInstance();

            Map<String,String> login = new HashMap<String,String>();

            //TODO: im Prinzip muessen alle Werte per Code setzbar sein
            //Implementieren einer Vorgaben-Tabelle
            login.put("hibernate.connection.url", user.getDatebaseURL());
            login.put("hibernate.connection.username", user.getUsername());
            login.put("hibernate.connection.password", user.getPassword());

            sessionFactory=Persistence.createEntityManagerFactory("axdata",login);
        }
        return sessionFactory;
    }

    public static void shutdown() {
        getSessionFactory().close();
    }
}

Output:
Code:
...
org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
12:14:58,947 -  INFO - DriverManagerConnectionProvider:64 - Using Hibernate built-in connection pool (not for production use!)
12:14:58,947 -  INFO - DriverManagerConnectionProvider:65 - Hibernate connection pool size: 20
12:14:58,947 -  INFO - DriverManagerConnectionProvider:68 - autocommit mode: true
12:14:58,974 -  INFO - DriverManagerConnectionProvider:103 - using driver: org.postgresql.Driver at URL: jdbc:postgresql://192.168.11.24/finxdb
12:14:58,975 -  INFO - DriverManagerConnectionProvider:109 - connection properties: {user=matti, password=****, autocommit=true, release_mode=auto}
12:14:59,031 -  WARN - SettingsFactory:133 - Could not obtain connection to query metadata
org.postgresql.util.PSQLException: FATAL: Passwort-Authentifizierung f��r Benutzer ��matti�� fehlgeschlagen
        at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:276)
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:95)
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
        at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:124)
        at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
        at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:29)
        at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
        at org.postgresql.Driver.makeConnection(Driver.java:386)
        at org.postgresql.Driver.connect(Driver.java:260)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:154)
        at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
        at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:111)
        at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)
        at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339)
        at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
        at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:52)
        at com.rutech.AuftraX.persistence.EntityManagerUtil.getSessionFactory(EntityManagerUtil.java:34)
        at com.rutech.AuftraX.App.main(App.java:125)
12:14:59,091 -  INFO - Dialect:175 - Using dialect: org.hibernate.dialect.PostgreSQLDialect
12:14:59,096 -  INFO - TransactionFactoryFactory:62 - Transaction strategy: org.hibernate.transaction.JDBCTransactionFactory
12:14:59,100 -  INFO - TransactionManagerLookupFactory:80 - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
12:14:59,101 -  INFO - SettingsFactory:161 - Automatic flush during beforeCompletion(): disabled
12:14:59,102 -  INFO - SettingsFactory:165 - Automatic session close at end of transaction: disabled
12:14:59,164 -  INFO - SettingsFactory:180 - Scrollable result sets: disabled
12:14:59,165 -  INFO - SettingsFactory:188 - JDBC3 getGeneratedKeys(): disabled
12:14:59,165 -  INFO - SettingsFactory:196 - Connection release mode: auto
12:14:59,167 -  INFO - SettingsFactory:220 - Maximum outer join fetch depth: 3
12:14:59,186 -  INFO - SettingsFactory:223 - Default batch fetch size: 1
12:14:59,186 -  INFO - SettingsFactory:227 - Generate SQL with comments: disabled
12:14:59,187 -  INFO - SettingsFactory:231 - Order SQL updates by primary key: disabled
12:14:59,187 -  INFO - SettingsFactory:235 - Order SQL inserts for batching: disabled
12:14:59,187 -  INFO - SettingsFactory:397 - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
12:14:59,190 -  INFO - ASTQueryTranslatorFactory:47 - Using ASTQueryTranslatorFactory
12:14:59,190 -  INFO - SettingsFactory:243 - Query language substitutions: {}
12:14:59,191 -  INFO - SettingsFactory:248 - JPA-QL strict compliance: enabled
12:14:59,191 -  INFO - SettingsFactory:253 - Second-level cache: enabled
12:14:59,191 -  INFO - SettingsFactory:257 - Query cache: disabled
12:14:59,196 -  INFO - SettingsFactory:382 - Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge
12:14:59,196 -  INFO - RegionFactoryCacheProviderBridge:61 - Cache provider: org.hibernate.cache.NoCacheProvider
12:14:59,197 -  INFO - SettingsFactory:267 - Optimize cache for minimal puts: disabled
12:14:59,197 -  INFO - SettingsFactory:276 - Structured second-level cache entries: disabled
12:14:59,202 -  INFO - SettingsFactory:296 - Echoing all SQL to stdout
12:14:59,216 -  INFO - SettingsFactory:305 - Statistics: disabled
12:14:59,216 -  INFO - SettingsFactory:309 - Deleted entity synthetic identifier rollback: disabled
12:14:59,217 -  INFO - SettingsFactory:324 - Default entity-mode: pojo
12:14:59,217 -  INFO - SettingsFactory:328 - Named query checking : enabled
12:14:59,258 -  INFO - SessionFactoryImpl:193 - building session factory
12:14:59,885 -  INFO - SessionFactoryObjectFactory:105 - Not binding factory to JNDI, no JNDI name configured
 

si031006

Mitglied
Hat jetzt eigentlich schon einer eine Lösung für dieses Problem gefunden (hab nämlich das gleiche)?

Und noch was:
Weiss jemand wie ich die ganzen Ausgaben an die Console von Hibernate unterbinde?


Danke
 

-MacNuke-

Bekanntes Mitglied
Hat jetzt eigentlich schon einer eine Lösung für dieses Problem gefunden (hab nämlich das gleiche)?

Ich habe es jetzt halt so gelöst, dass ich beim Start erst mal mit DriverManager.getConnection prüfe, ob ich so eine Verbindung kriege. Ist zwar nicht besonders schön, aber da Hibernate die Exception frisst, kann man da wohl nichts anderes machen.

Und noch was:
Weiss jemand wie ich die ganzen Ausgaben an die Console von Hibernate unterbinde?

Kommt drauf an, welchen slf4j "Provider" du nimmst. Bei log4j (in meinem Fall) kann man über die log4j.properties einstellen, was Hibernate alles loggen soll und wohin:

Code:
# Hibernate logging options
log4j.logger.org.hibernate=ERROR
#log4j.logger.org.hibernate.SQL=DEBUG

# Log JDBC bind parameter runtime arguments
log4j.logger.org.hibernate.type=ERROR
 

si031006

Mitglied
Danke, das hilft mir schon weiter.

Noch was:
Ich verwende (leider auch nicht änderbar) eine MS-Access Datenbank.
Setze ich jetzt ein SQL ab, also konkret folgendes:

SELECT Name FROM MSysObjects WHERE type = 1

sagt er mir, das die Tabelle nicht gefunden wird. Klar, weil ich auch nirgends ein passendes Mapping habe
(mit vorher angelegter XML und Java Datei).

MEINE FRAGE NUN:
Kann ich in Hibernate auch diverse SQLs absetzen, ohne die passende Tabelle vorher mittels xml und class Datei angegeben zu haben. Sprich, ein stinknormales Recordset zu bekommen?
Habe hierfür die Methode createSQLQuery benutzt, aber vielleicht gibts ja auch andere Methoden für diesen Fall?

Danke!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V SQLite java.sql.SQLException: no such column: Datenbankprogrammierung 18
D MySQL SQLException time zone value is unrecognized Datenbankprogrammierung 2
M Oracle SQLException: Verbindung getrennt Datenbankprogrammierung 2
S MySQL SQLException Parameter index out of range (1 > number of parameters, which is 0). Datenbankprogrammierung 10
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
nrg Oracle java.sql.SQLException Ungültiger Vorgang bei schreibgeschützter Ergebnismenge Datenbankprogrammierung 0
N SQL-Statement SQLException: the '|' object Datenbankprogrammierung 3
N SQL-Statement SQLException: '' is not a valid name. Datenbankprogrammierung 7
Y java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state Datenbankprogrammierung 2
H Derby/JavaDB SQLException wenn die Datenbank in eine Jar gepackt wurde. Datenbankprogrammierung 6
I java.sql.SQLException: No data found Datenbankprogrammierung 3
T java.sql.SQLException: unexpected end of statement Datenbankprogrammierung 2
H java.sql.SQLException: Access denied for user 'root'@'localhost' (using password : YES) Datenbankprogrammierung 1
D getConnection mit SQLException Datenbankprogrammierung 7
D java.sql.SQLException Datenbankprogrammierung 3
S SQLException: No suitable driver bei DB2 Datenbankprogrammierung 4
J Einstellungen für die Ausnahme SQLException Datenbankprogrammierung 7
M java.sql.SQLException: Unable to open file Datenbankprogrammierung 2
M java.sql.SQLException: out of memory Datenbankprogrammierung 18
zilti java.sql.SQLException: Before start of result set Datenbankprogrammierung 2
C FM: java.sql.SQLException: Geschlossene Ergebnismenge: next Datenbankprogrammierung 7
A Problem: java.sql.SQLException Datenbankprogrammierung 5
I hilfe! java.sql.SQLException Datenbankprogrammierung 7
M java.sql.SQLException: No data found Datenbankprogrammierung 9
K MsAccess immer beim zweiten Update java.sql.SQLException Datenbankprogrammierung 28
C SQLException wenn String auf VARCHAR geschrieben wird Datenbankprogrammierung 10
G SQLException: Lässt sich der Fehler feststellen? Datenbankprogrammierung 10
R MySQL denies access to data source - java.sql.SQLException Datenbankprogrammierung 14
L SQLException --> Übersetzung nötig! Datenbankprogrammierung 2
G SQLException: No operations allowed after connection closed Datenbankprogrammierung 2
K java.sql.SQLException: Before start of result set Datenbankprogrammierung 2
Kirby.exe Verwirrung beim Query Datenbankprogrammierung 4
Z Beim schließen des Programms die verbindung zur DB beenden. Datenbankprogrammierung 4
C Oracle Fehler beim list.add() Datenbankprogrammierung 5
L MySQL Bekomme einen Fehler beim ResultSet Datenbankprogrammierung 12
H Brauche Hilfe beim Mappen von 3 Tabellen a 1:n mit hbm.xml. Datenbankprogrammierung 34
J Java Eclipse Hilfe beim Programmieren Datenbankprogrammierung 7
B JPA->fehler beim Insert in die Datenbank Datenbankprogrammierung 3
V Fehler beim Generierung Fehler beim Generierung java.lang.ArrayIndexOutOfBoundsException: 0 Datenbankprogrammierung 12
H HSQLDB Beim öffnen folgender Fehler: ... java.lang.NullPointerException Datenbankprogrammierung 1
S Hibernate-Konfiguration : Unverständliche Ausgabe beim Ausführen Datenbankprogrammierung 0
ruutaiokwu sql server werte swappen beim update-vorgang mit unique-constraints..? Datenbankprogrammierung 2
C H2 Syntax fehler beim erstellen einer Tabelle Datenbankprogrammierung 4
M MySQL probleme beim "Generate Tables from Entities" Datenbankprogrammierung 9
T MySQL Multithreading beim Datenbankzugriff Datenbankprogrammierung 3
T Fehler beim ausgeben von Tabellen Inhalt Datenbankprogrammierung 9
J Datentyp der Spalte beim Datenbankdesign unbekannt Datenbankprogrammierung 12
S Derby/JavaDB Probleme beim anlegen einer embedded DB Datenbankprogrammierung 13
W No data found: SQL-Abfrage funktioniert nur beim Debuggen Datenbankprogrammierung 3
N HSQLDB Problem beim Treiberladen im Jar Datenbankprogrammierung 6
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
M Datenbankverbindung zu langsam beim Insert? Datenbankprogrammierung 6
Paristick MSSQL - JDBC Exception beim Registrieren Datenbankprogrammierung 5
D JDBC Fehler beim laden der nativen Bibliothek db2jcct2 Datenbankprogrammierung 9
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
L Derby/JavaDB Fehler beim Erstellen einer Tabelle Datenbankprogrammierung 2
T Problem beim schreiben von daten Datenbankprogrammierung 4
S MySQL generelles vorgehen beim connect zu entfernter datenbank Datenbankprogrammierung 3
A Derby/JavaDB Probleme beim Einbinden Datenbankprogrammierung 2
L CLOB-Daten werden beim Einfügen in die Datenbank geändert? Datenbankprogrammierung 5
J MySQL Hibernate: Probleme beim Speichern von OneToMany - Datensätzen Datenbankprogrammierung 2
X Vector Verhalten beim DataModel seltsam Datenbankprogrammierung 6
D MySQL Problem beim einfügen von Double-Zahlen Datenbankprogrammierung 4
U MSSQL Verbindung steht, aber meckert beim Statement Datenbankprogrammierung 2
N Probleme beim Aufruf aus der DB Datenbankprogrammierung 7
cosmic Problem beim Update einer Oracle DB Datenbankprogrammierung 7
T Problem beim Update in die Access DB Datenbankprogrammierung 9
M Problem beim Importieren einer Datenbank Datenbankprogrammierung 3
C Datenumwandlungsfehler beim Umwandeln Datenbankprogrammierung 4
S Fehler beim Auslesen von Daten Datenbankprogrammierung 6
V Probleme beim Öffnen "einiger" SuperbaseTabellen p Datenbankprogrammierung 8
G Probleme beim Methodenaufruf einer EJB Datenbankprogrammierung 10
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
V Fehlermeldung beim Insert Datenbankprogrammierung 16
G beim lesen der db alte daten bekommen? Datenbankprogrammierung 5
A Problem beim Laden des Treibers Datenbankprogrammierung 5
A Fehler beim Starten des Servers für H2 Database Datenbankprogrammierung 13
A Probleme beim Schreiben in eine CSV-Datei aus einer H2-DB Datenbankprogrammierung 2
G Problem beim einfügen in der Datenbank Datenbankprogrammierung 4
G Problem beim Schreiben eines Dateipfads in MySQL-DB Datenbankprogrammierung 9
J OutOfMemory beim Clob Datenbankprogrammierung 5
D An Access Datenbank andocken ohne sie beim System anzumelden Datenbankprogrammierung 3
M "SQL - Apache" Problem beim laden des Applets Datenbankprogrammierung 4
J Fehlermeldung beim ausführeren dieses Befehles Datenbankprogrammierung 5
G Fehler beim Verbinden Datenbankprogrammierung 4
D Problem beim Zugriff auf eine Oracle-DB Datenbankprogrammierung 23
A Datenbankzugriff per Applet - Problem beim Treiber laden Datenbankprogrammierung 6
E Problem beim laden des JDBC Driver bzw der Database Datenbankprogrammierung 8
M Daten von MySQL nach MSSql probleme beim schreiben Datenbankprogrammierung 3
S JDBC-Anfänger und Probleme beim Treiberfinden etc. Datenbankprogrammierung 4
T Probleme beim Verbindungsaufbau zum SQL 2000 Datenbankprogrammierung 2
P Wie Usernamen beim Einloggen für Combobox übernehmen?HELP Datenbankprogrammierung 2
N Fehler beim matchen von Strings via Query Datenbankprogrammierung 2
T Problem beim Update vom Resultset + Firebird Datenbankprogrammierung 2
R JDBC: Resultset beim Thema MEZ&MESZ Datenbankprogrammierung 12
J Fehler beim PreparedStatement Datenbankprogrammierung 2
P Fehlermeldung beim Erstellen einer neuen Tabelle Datenbankprogrammierung 2
M Problem beim erstellen der DB Datenbankprogrammierung 3
G Problem beim Zugriff SQL 2000 Datenbankprogrammierung 2
6 Hilfe beim Einstieg Datenbankprogrammierung 15

Ähnliche Java Themen


Oben