-
java.lang.NullPointerException bei jdbc zugriff
Hallo,
ich habe ein sehr eigenartiges problem während des auslesens eines DB2-Files aus einer AS400.
Das Progrämmchen funktioniert einwandfrei, solange ich die im Code rot markierte Zeile auskommentiere!
Sobald einmal der Zwischenschritt zum speichern einer Zeile in ein String Array ausgeführt wird bekomme ich
genau bei dieser Zeile eine java.lang.NullPointerException ?! Verstehe absolut nicht, warum ohne dieser Zeile das
ganze File ausgelesen werden kann und wenn ich diese Zeile einbinde, sofort abgebrochen wird! Das Ablegen des Eintrages in einen normalen String funktioniert ja einwandfrei! Bin Neuling mit JDBC und hoffe ihr könnt mir weiterhelfen. Vielen Dank im voraus
public void DatenBankResult() throws SQLException{
int i=1;
String liste = null;
try{
DriverManager.setLogWriter( new PrintWriter(System.out) );
Class.forName( "com.ibm.as400.access.AS400JDBCDriver" );
for ( Enumeration e = DriverManager.getDrivers(); e.hasMoreElements(); )
driverinfo.setText(e.nextElement().getClass().getN ame());
con = DriverManager.getConnection("jdbc:as400://as400.evva.com/qdls/qsys.lib/evva.lib/liste132.file/liste132.mbr","XXX","XXX");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM EVVA.LISTE132");
while (rs.next()){
String text = rs.getString(i);
System.out.println(text);
liste[i] = text;
i++;
}
rs.close();
con.close();
stmt.close();
}
catch(Exception e)
{
e.printStackTrace();
System.err.println("Fehler: "+e.getMessage());
System.exit(1);
}
}
-
Scheint mir, das das Array liste nicht initialisiert ist, mit anderen Worten, die Definition des Arrays ist wohl falsch.
-
String[ ] liste = null;
...ist doch die korrekte schreibweise, oder?
mfg
-
Dies ist ein leeres Array !
Entweder du nimmst ein Array fester Grösse:
String[ 100 ] liste;
Oder du ermittelst die Anzahl dynamisch und definierst dann:
String[ ] liste = new String[Anzahl];
Oder du nimmst eine Collection (o.ä.).
-
Vielen Dank!
mein problem ist jetzt nur mehr, dass ich keinen befehl finde
mit dem ich die anzahl der einträge des files herausfinden kann!
was ist der vorteil der collections??
mfg
-
Dass ich die Größe nicht genau kennen muss, z.B.:
Vector x = new Vector();
x.add("String1");
x.add(.....)
if (x.size > 0) {
String s = x.get(0);
}
usw. usw.
Es gibt viele Typen von Collections:
Vector
Map
Stack
HashTable
:
:
Allerdings solltest du bei sowas auf deinen Speicher achten, da du nicht nur die SQL-Daten sondern auch noch eine Kopie davon im Speicher hast.
Besser wäre eine sofortige Verarbeitung durchzuführen und frühzeitig wieder zu verwerfen (=>Performance).
-
Hallo,
ein Arrray in Java ist ein Objekt, das erzeugt werden muss; was willst du denn eigentlich mit dem Text in dem String Array???
mfg
Dieter Bender
Zitat von burton007
Hallo,
ich habe ein sehr eigenartiges problem während des auslesens eines DB2-Files aus einer AS400.
Das Progrämmchen funktioniert einwandfrei, solange ich die im Code rot markierte Zeile auskommentiere!
Sobald einmal der Zwischenschritt zum speichern einer Zeile in ein String Array ausgeführt wird bekomme ich
genau bei dieser Zeile eine java.lang.NullPointerException ?! Verstehe absolut nicht, warum ohne dieser Zeile das
ganze File ausgelesen werden kann und wenn ich diese Zeile einbinde, sofort abgebrochen wird! Das Ablegen des Eintrages in einen normalen String funktioniert ja einwandfrei! Bin Neuling mit JDBC und hoffe ihr könnt mir weiterhelfen. Vielen Dank im voraus
public void DatenBankResult() throws SQLException{
int i=1;
String liste = null;
try{
DriverManager.setLogWriter( new PrintWriter(System.out) );
Class.forName( "com.ibm.as400.access.AS400JDBCDriver" );
for ( Enumeration e = DriverManager.getDrivers(); e.hasMoreElements(); )
driverinfo.setText(e.nextElement().getClass().getN ame());
con = DriverManager.getConnection("jdbc:as400://as400.evva.com/qdls/qsys.lib/evva.lib/liste132.file/liste132.mbr","XXX","XXX");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM EVVA.LISTE132");
while (rs.next()){
String text = rs.getString(i);
System.out.println(text);
liste[i] = text;
i++;
}
rs.close();
con.close();
stmt.close();
}
catch(Exception e)
{
e.printStackTrace();
System.err.println("Fehler: "+e.getMessage());
System.exit(1);
}
}
-
danke für deine tipps, werd mir das mit dem
vector auf jedenfall überlegen!
mfg
-
eigentlich will i jetzt eh nichts mehr von dem string array, werd
das ganze mit vector machen, hab nur irgendwie an das nicht
gedacht...
Similar Threads
-
By schatte in forum NEWSboard Windows
Antworten: 7
Letzter Beitrag: 21-11-06, 11:37
-
By pwrdwnsys in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 07-11-06, 15:34
-
By bode in forum NEWSboard Java
Antworten: 7
Letzter Beitrag: 02-09-05, 15:09
-
By TARASIK in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 02-08-04, 08:27
-
By Rucker in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 29-09-01, 11:16
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks