Probleme mit ResultSet und getString(i)

Status
Nicht offen für weitere Antworten.
A

Aimee

Gast
Hallo,

da bin ich wieder.. :(

Folgendes.. Ich lese Daten aus einer Datenbank aus und schicke sie weiter um sie in eine XML-Datei zu schreiben und an anderer Stelle wieder aus zu lesen.

Code:
ArrayList l = new ArrayList();
	    try {	    		
			String query =  "select " + string + " Tabellenname";
			rs2 = st.executeQuery(query);
	    	        ResultSetMetaData rsmd = rs2.getMetaData();
	    	
		         int i, n = rsmd.getColumnCount();
	    	        while( rs2.next() ) 
		       {
	    		        ArrayList sptab = new ArrayList();
		    	        for( i=1; i<=n; i++ )  {
		    		  ArrayList sp = new ArrayList();
		    		  // Spaltenname - > Wert	    		
		    		  sp.add(rsmd.getColumnName( i ));
		    		
		    		  if(rs2.getString( i ) != null) {	
                                         //PROBLEM 
		    			sp.add(rs2.getString(i));
		    		  } else {
		    			sp.add(" ");
		    		  }
		    		
		    		sptab.add(sp);
		    	}	
		    	l.add(sptab);
		    }
	    	
	    } catch (SQLException e) {
			// TODO Automatisch erstellter Catch-Block
			e.printStackTrace();
	    }
	    return l;

rs2.getString(i) bereitet mir nun große Sorgen.. Habe es schon auf String gecastet,mit toString() gearbeitet und dennoch mag XML bei writeCharakter das Teil nicht..

Nehme ich testweise ein " TEST " oder gar rsmd.getColumnName( i ) ist alles schön.. Aber ich brauche ja die Daten als String. Und irgendwas stimmt da nicht so das XML dann Probleme bekommt beim lesen..

Gibt es noch eine andere Möglichkeit an die Daten zu kommen ohne das rs2.getString(i)??? Ich weiß nicht was da los ist??



???:L
 

thE_29

Top Contributor
if(rs2.getString( i ) != null) {
//PROBLEM
sp.add(rs2.getString(i));

das geht nicht!

Du kannst einen Index nur EINMAL holen!

Dh, du musst das so machen!

Code:
String tmp = rs2.getString(i);
if(tmp != null)
 sp.add(tmp);


Also generell zu merken: ResultSet Ergebnisse können nur einmal geholt werden!
 
A

Aimee

Gast
Danke!
Es hat sich leider aber nichts geändert.. ???:L

Code:
String tmp = rs2.getString( i );
 if(tmp != null) {	
  sp.add(tmp);
 } else {
  sp.add(" ");
 }
 
A

Aimee

Gast
javax.xml.stream.XMLStreamException
at com.bea.xml.stream.MXParser.fillBuf(MXParser.java:3367)
at com.bea.xml.stream.MXParser.more(MXParser.java:3382)
at com.bea.xml.stream.MXParser.parseProlog(MXParser.java:1861)
at com.bea.xml.stream.MXParser.nextImpl(MXParser.java:1839)
at com.bea.xml.stream.MXParser.next(MXParser.java:1261)
at com.bea.xml.stream.MXParser.setInput(MXParser.java:727)
at com.bea.xml.stream.MXParserFactory.createXMLStreamReader(MXParserFactory.java:235)
at com.bea.xml.stream.MXParserFactory.createXMLStreamReader(MXParserFactory.java:51)
at com.bea.xml.stream.MXParserFactory.createXMLEventReader(MXParserFactory.java:125)


Allerdings habe ich es eben bis zu der SQL - Abfrage zurück verfolgt.. Und das seltsame ist ja nehme ich den String aus

rsmd.getColumnName( i ) geht es ja ohne Fehler und ohne Probleme.. Deshalb frage ich mich wo der Unterschied ist zwischen einem String aus rsmd.getColumnName( i ) und einem String aus rs2.getString( i ) ???:L

Ich verwende sozusagen rsmd.getColumnName( i ) als Name für den TAG und rs2.getString( i ) als Inhalt. Schreiben tut er es auch noch ohne Probleme und dann beim lesen des Inhalts kracht es mit oben genannten Fehler.. Da es aber funktioniert wenn ich "TESTSTRING" oder rsmd.getColumnName( i ) als Inhalt übergebe denke ich nicht das es an XML liegt...

Seltsam eben... Meine API ist übrigens StAX!

???:L
 

thE_29

Top Contributor
Also wenn du statt rs2.getString(i) String tmp = "TESTSTRING" nimmst und das dazuhängst, klappt das?

Bzw, das sp.add(tmp); ist dass das dazuhängen?
 
A

Aimee

Gast
thE_29 hat gesagt.:
Also wenn du statt rs2.getString(i) String tmp = "TESTSTRING" nimmst und das dazuhängst, klappt das?

Bzw, das sp.add(tmp); ist dass das dazuhängen?

Ja genau... Wenn ich "TESTSTRING" anhänge dann klappt es.. Oder eben auch den Spaltennamen.. Der klappt auch...

und genau das sp.add(tmp) ist das wo ich es dran hänge.. Und das ist halt das was mich verzweifeln lässt.. Warum klappen die anderen Strings nur das aus rs2.getString(i) nicht.. Da hab ich jetzt schon die wildesten Dinge ausprobiert aber nichts hilft.. :(

???:L
 

thE_29

Top Contributor
Die Datei kann geschrieben werden oder?

Was steht den da bei der Position wo es beim XML einlesen wieder Probleme gibt!
 
A

Aimee

Gast
Ja die Datei wird geschrieben.. Und gefüllt wird es:

Code:
XMLStreamWriter writer = writexml(path);
			
writer.writeStartDocument();
writer.writeStartElement( "DataImport" );
			
for (int i = 0; i < knvdata.size(); i++) {
  ArrayList a = (ArrayList)knvdata.get(i);
				
  for (int j = 0; j < a.size(); j++) {	
    ArrayList a2 = (ArrayList)a.get(j);
       // TagName aus rsmd.getColumnName( i )
    writer.writeStartElement( (String) a2.get(0) );
    if(a2.get(1) != null) {			
	// Inhalt aus rs2.getString(i)
	writer.writeCharacters( (String) a2.get(1));
    } else {
	writer.writeCharacters(" ");
    }					
    writer.writeEndElement();
  }
				
}

writer.writeEndElement();
writer.writeEndDocument();
writer.close();

Ausgelesen: Er kommt aber nicht mal über den parser hinweg.. Er kommt also nicht zum auslesen..




Code:
                       FileInputStream in = new FileInputStream(pfad);
			
			XMLInputFactory factory = XMLInputFactory.newInstance();

                         // HIER folgend ist dann schon CRASH
			XMLEventReader parser = factory.createXMLEventReader(in);

                         
                       //parsernutzung aber soweit kommt er erst gar nicht..

wie gesagt läuft es mit allen anderen durch nur mit dem rs2.getString nicht.. ???:L :bahnhof: Selbst wenn ich die seltsamsten Strings übergebe läuft es...

Ich verzweifel noch an dem Ding.. Habe es auch mit rs2.getObject versucht.. Genau das selbe...

:bahnhof:
 
A

Aimee

Gast
Kann das sein das der ß nicht mag??? ???:L

Wollte dir nicht die 60MB XML-Datei zumuten und habe ein Stück raus genommen.. Und dann hatte ich dort Datensatz für Datensatz getestet und bei <NAME>Geb. 285/Außen</NAME> hat er gestreikt... Habe das ß weg genommen und der Datensatz lief durch..

Sche***.. Wenn das nur das ist.. :oops:
 
A

Aimee

Gast
Shit.. Es läuft durch... :roll:

:oops: ß ö ü ä Ö Ü Ä mussten ausgetauscht werden... :oops: :autsch:
 

thE_29

Top Contributor
Du musst das als CDATA Objekt abspeichern, damit XML auch Sonderzeichen oder Befehle zulässt!

<![CDATA[ blablaßßäöäü ]]>

So muss das drinnenstehen!

Ein paar Parser haben eigene Methoden fürs CDATA putten!

Es wäre ja das gleiche wenn du ein < oder > abspeichern willst, das machst du auch mit sowas!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
Z MySQL Probleme mit resultSet executQuery Datenbankprogrammierung 3
N Probleme mit "nur vorwärts gerichtete ResultSet" Datenbankprogrammierung 7
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
Zrebna Probleme bei Überführung von SQL-Code in eine HQL-Abfrage Datenbankprogrammierung 3
Kirby.exe Probleme mit docker-compose.yml Datenbankprogrammierung 4
B Probleme mit Datenbankverbindung Datenbankprogrammierung 2
N java SQL JAR - Probleme Datenbankprogrammierung 18
S probleme mit dem jdbc treiber Datenbankprogrammierung 1
T Oracle Probleme bei getTableName Datenbankprogrammierung 8
D Probleme bei Einsteiger Aufgabe SQL Datenbankprogrammierung 2
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
H Probleme mit Unicodedarstellung in Derby DB Datenbankprogrammierung 1
M MySQL probleme beim "Generate Tables from Entities" Datenbankprogrammierung 9
L Probleme mit DriverManager.getConnection(..) - Endlosschleife, Java Absturz, Keine Exception Datenbankprogrammierung 4
S Derby/JavaDB Probleme beim anlegen einer embedded DB Datenbankprogrammierung 13
P Probleme mit meinem 1. Hibernate Beispiel Datenbankprogrammierung 3
W Probleme mit AND und OR Datenbankprogrammierung 5
D DB Tabelle in JTable anzeigen - Probleme Datenbankprogrammierung 8
Gossi CallableStatement Probleme Datenbankprogrammierung 8
D Probleme bei der Erzeugung einer Tabelle Datenbankprogrammierung 15
L MySQL Probleme mit PreparedStatement für SQL-Abfrage in Java Datenbankprogrammierung 2
R Derby/JavaDB Insert Statement Probleme Datenbankprogrammierung 14
L Derby/JavaDB Derby macht Probleme Datenbankprogrammierung 4
B HSQLDB Probleme mit Select...Where Abfrage Datenbankprogrammierung 16
M Probleme mit Triggering Datenbankprogrammierung 2
F DB2 Probleme mit dem DriverManager Datenbankprogrammierung 4
S Derby/JavaDB OpenJPA, @oneToMany und Probleme Datenbankprogrammierung 2
I MySQL Probleme mit kyrillischen Zeichen Datenbankprogrammierung 2
A Derby/JavaDB Probleme beim Einbinden Datenbankprogrammierung 2
S Probleme mit INSERT Befehl Datenbankprogrammierung 11
R isLast() Probleme bei Pervasive Datenbankprogrammierung 5
S Probleme mit localhost Datenbankprogrammierung 14
M Oracle Probleme mit dem anbinden einer Oracle 10g Datenbank Datenbankprogrammierung 27
J MySQL Hibernate: Probleme beim Speichern von OneToMany - Datensätzen Datenbankprogrammierung 2
P Hibernate -> Probleme bei n:m-Relation und JUnit Datenbankprogrammierung 10
J Probleme mit Datenbankzeiger Datenbankprogrammierung 19
A Probleme mit auf DB2 Express zugreiffen Datenbankprogrammierung 6
N Probleme beim Aufruf aus der DB Datenbankprogrammierung 7
M Probleme bei Select in Schleife Datenbankprogrammierung 7
G Probleme mit Datenbankanbindung Datenbankprogrammierung 3
R Probleme mit Insert Datenbankprogrammierung 2
P Probleme mit Oracle Timestamp Datenbankprogrammierung 3
klattiator Hibernate - Probleme bei Konfiguration Datenbankprogrammierung 3
F Probleme mit entfernter DB und Hibernate Zeichensatz Datenbankprogrammierung 3
G Probleme mit der Schnittstelle H1bernate/Eclipse Datenbankprogrammierung 6
A Probleme mit Jar-File in ein Jar-File Datenbankprogrammierung 8
O Derby Performance Probleme? Datenbankprogrammierung 4
V Probleme beim Öffnen "einiger" SuperbaseTabellen p Datenbankprogrammierung 8
G Probleme beim Methodenaufruf einer EJB Datenbankprogrammierung 10
ARadauer hibernate probleme Datenbankprogrammierung 13
Y Probleme mit H2 und Primary Key Datenbankprogrammierung 4
D Probleme mit mysql-Connection Datenbankprogrammierung 10
G INNODB backup probleme Datenbankprogrammierung 2
S Probleme mit statement.close() Datenbankprogrammierung 10
A Probleme beim Schreiben in eine CSV-Datei aus einer H2-DB Datenbankprogrammierung 2
G Probleme mit Laden des JDBC-Treiber in HSQLDB Datenbankprogrammierung 2
T Probleme mit Date in H2 Datenbank Datenbankprogrammierung 2
4 Probleme mit Select abfrage Datenbankprogrammierung 4
N Probleme mit Access-DB bei einem Webserver Datenbankprogrammierung 5
T Diverse JDBC Probleme (inner join, rs.last(), update) Datenbankprogrammierung 2
R Probleme mit Datensätzen in MySql DB Datenbankprogrammierung 3
B Oracle Driver Probleme Datenbankprogrammierung 2
I Probleme bei MySQL - Replikation Datenbankprogrammierung 2
R Probleme mit ausführbarem Jar Archiv Datenbankprogrammierung 9
F Probleme mit Jar Datei Datenbankprogrammierung 3
S String probleme Datenbankprogrammierung 3
R Probleme mit der Verbindung zum localhost Datenbankprogrammierung 12
S Probleme bei der Installation von MySQL 5.0 Datenbankprogrammierung 4
G Probleme mit Access und Join Datenbankprogrammierung 3
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
G Probleme mit Datenbankeinträge Datenbankprogrammierung 4
G Probleme mit Treiber (connector) Datenbankprogrammierung 20
thE_29 getBytes() - russland/bulgarien -- andere Codecs Probleme Datenbankprogrammierung 8
E Probleme mit JDBC und Executable-Jar Datenbankprogrammierung 2
G Probleme mit MySQL - Anmeldung Datenbankprogrammierung 2
P Probleme mit NullPointerException Datenbankprogrammierung 5
K MySQL: Probleme mit dem Verbinden per IP-Adresse Datenbankprogrammierung 6
T Probleme mit Datenbank Datenbankprogrammierung 6
S ResultSet als Parameter an andere Klasse übergeben Datenbankprogrammierung 3
Z ResultSet ist null warum? Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
Dimax Erstellen ResultSet und Statement Datenbankprogrammierung 30
C PostgreSQL ResultSet.TYPE_SCROLL_SENSITIVE setzen Datenbankprogrammierung 2
L MySQL Bekomme einen Fehler beim ResultSet Datenbankprogrammierung 12
L Zugriff auf ein Resultset Datenbankprogrammierung 7
L MySQL ResultSet vollständig auslesen Datenbankprogrammierung 20
D Resultset schließen ?? Datenbankprogrammierung 5
T Oracle Resultset to Array sehr langsam. Datenbankprogrammierung 8
J SQLite ResultSet closed -- Wiederholende DB-Abfragen Datenbankprogrammierung 6
L ResultSet Datenbankprogrammierung 1
J wie mit resultset.next() über Datensätze iterieren? Datenbankprogrammierung 15
R MySQL Umgang mit ResultSet/Fremdschlüssel ausgeben Datenbankprogrammierung 2
D MySQL ResultSet als Stream weiter geben Datenbankprogrammierung 9
M ResultSet Cachen Datenbankprogrammierung 3
R ResultSet mit "Untertabellen" Datenbankprogrammierung 4
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
R Resultset.last() Problem Datenbankprogrammierung 12

Ähnliche Java Themen

Neue Themen


Oben