Dom Parser und SQLite füllen

uppss

Aktives Mitglied
Hallo,

ich lese einige Inhalte aus einer XML-Date mit Hilfe der DOM-Technologie.
Wenn ich diese Inhalte dann ausgeben möchte, funktioniert super.
Wenn ich aber diese Inhalte in DB (sqlite) abspeichern möchte, werden nur die Variablen gespeichert und nicht die Inhalte.
Da kann mir bestimmt jemand helfen.
Ich habe sehr wenig Erfahrung mit java, das liegt bestimmt daran.

Vielen Dank im Voraus
Daniel

z.B. xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<NISP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="nisp73.xsd"><ETEST>
   <HEAD>
      <vin>Wefefefefw0356</vin>
      <RELEASEID>RC2ewffscsd00 39</RELEASEID>
      <PRODNO>74535341</PRODNO>
      <RESULT>NOK</RESULT>
      <ISID>62226</ISID>
      <DATE>20140908</DATE>
	</HEAD>
</ETEST></NISP>

Java:
import java.io.File;
import java.io.IOException;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
 
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
 
public class xmlReader {
 
	/**
	 * @param args
	 * @throws ParserConfigurationException
	 * @throws SAXException
	 * @throws IOException
	 */
	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
 
		// Parse XML file
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder documentBuilder = factory.newDocumentBuilder();
		Document doc = documentBuilder.parse(new File("resultdata.xml"));
 
		String titleEl = doc.getDocumentElement().getNodeName();
		System.out.println("Title = " + titleEl);
 
		NodeList nodeList = doc.getElementsByTagName("HEAD");
 
		String vin = ""; 
 
		System.out.println("\tAlle Daten:");
 
		for(int i = 0; i < nodeList.getLength(); i++) {
			Element element = (Element)nodeList.item(i);
			vin = element.getElementsByTagName("vin").item(0).getChildNodes().item(0).getNodeValue();
 
			System.out.println(vin); // hier wird Inhalt aus der xml-Dat. angezeigt
 
		}
	}
}

und abspeichern in DB
Java:
.
.
.
oben
.
.
Connection c = null;
			Statement stmt = null;
			try {
				Class.forName("org.sqlite.JDBC");
				c = DriverManager
						.getConnection("jdbc:sqlite:C:\\Users\\name\\Desktop\\workspace_eclipse\\System\\db\\System.sqlite");
				c.setAutoCommit(false);
				System.out.println("Opened database successfully");

				stmt = c.createStatement();
				String sql = "INSERT INTO TrackingSystem (Fehlerbeschreibung) "
						+ "VALUES ('vin');"; // Hier wird Variable "vin" in db geschrieben
				System.out.println("fzgIntNr" + " = " + vin); // hier wird Inhalt aus der xml-Dat. angezeigt
				stmt.executeUpdate(sql);

stmt.close();
				c.commit();
				c.close();
			} catch (Exception e) {
				System.err.println(e.getClass().getName() + ": "
						+ e.getMessage());
				System.exit(0);
			}
			System.out.println("Records created successfully");

		}
	}
}
 

Joose

Top Contributor
Wenn ich aber diese Inhalte in DB (sqlite) abspeichern möchte, werden nur die Variablen gespeichert und nicht die Inhalte.
Da kann mir bestimmt jemand helfen.

Java:
				String sql = "INSERT INTO TrackingSystem (Fehlerbeschreibung) "
						+ "VALUES ('vin');"; // Hier wird Variable "vin" in db geschrieben

Da du hier vin unter Hochkomma stehen hast wird das als Wert interpretiert, außerdem steht vin innerhalb eines Strings und kann dort nicht als Variable gesehen werden! Somit kann nur "vin" inder DB stehen.
Du musst natürlich den String richtig zusammensetzen mit dem + Operator.

Noch besser wäre es natürlich du verwendest PreparedStatements :)
 
Zuletzt bearbeitet:

uppss

Aktives Mitglied
Vielen Dank, hab's hinbekommen!

Java:
try {
			String query = "INSERT INTO TrackingSystem (Fehlerbeschreibung) values(?)";
			PreparedStatement pst = connection.prepareStatement(query);
			pst.setString(1, vin);
			pst.execute();
			JOptionPane.showMessageDialog(null, "Data Saved");
			pst.close();

		} catch (Exception x) {
			x.printStackTrace();
		}
 
Zuletzt bearbeitet:

dzim

Top Contributor
Btw. Klassnamen werden in CamelCase-Schreibweise geschrieben - als beginnen immer mit einem grossen Buchstaben. Reguläre Variablen werden in der mit einem kleinen Buchstaben beginnenden camelCase-Schreibweise benannt

(Ausnahmen sind static finals (immer Gross und Worte mit "_" getrennt) und - wenn man mag auch statics (manche verwenden hier kleine Worte und Underscores - ich verwende dort eigentlich immer die reguläre Schreibweise)).
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
G SQL Parser Datenbankprogrammierung 2
T SQL-Statement parser? Datenbankprogrammierung 11
T SQLite Alternativen zu SQlite, dateibasiert, leicht verschlüsselbar, Nutzerverwaltung Datenbankprogrammierung 21
B SQLite + jdbc + IntelliJ-Consumer = "No suitable driver found..." Datenbankprogrammierung 15
Maxim6394 JPA 3.2 & SQLite - LocalDateTime wird falsch geladen Datenbankprogrammierung 1
Maxim6394 EclipseLink + SQLite | Unable to acquire a connection from driver [null] Datenbankprogrammierung 6
J SQLite Abfrage fehlerhaft - komme nicht weiter - please help. Datenbankprogrammierung 3
thor_norsk SQLite Fehlermeldung Datenbankprogrammierung 4
N JDBC SQLITE und Cascading Datenbankprogrammierung 2
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
B SQLite Befehl bauen? Datenbankprogrammierung 4
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
thobren Projekt SQlite! Wie kann ich auf auf SQlite Daten zugreifen? Datenbankprogrammierung 4
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
D SQLite Collections oder Arrays in SQLite abbilden Datenbankprogrammierung 7
N ORM für Sqlite Datenbankprogrammierung 4
M SQLite Datenbank mit SQLite Datenbankprogrammierung 7
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
N SQLite Datenbankprogrammierung 2
S Daten von SQLite Datenbank nutzen Datenbankprogrammierung 5
B SQLite Frage zu SQLite Datenbankverbindung Datenbankprogrammierung 7
E Sqlite-jdbc Mitliefern Datenbankprogrammierung 4
X Sqlite Fks Datenbankprogrammierung 4
C JDBC und SQLite Datenbank Datenbankprogrammierung 8
X SQLite SQLite Programm beendet/führt nicht weiter aus Datenbankprogrammierung 12
Sam96 SQLite mit JavaFX Datenbankprogrammierung 1
T sqlite select Datenbankprogrammierung 12
V SQLite Performance: 1 Datei mit einzelnen Einträgen gegenüber SQLite Datenbankprogrammierung 7
F Java SQLite Error Datenbankprogrammierung 19
F Sqlite cannot commit Datenbankprogrammierung 2
H SQLite Sqlite Datenbank direkt einbinden. Datenbankprogrammierung 5
D SQLite Datenkbank auf WebServer möglich? Datenbankprogrammierung 4
M Datenbankausgabe .jsp per SQLite Datenbankprogrammierung 7
J SQLite Login Datenbank Datenbankprogrammierung 2
M SQLite Einstieg mit SQLite, wohin mit der DLL? Datenbankprogrammierung 7
M SQLite Speicherpfad Datenbankprogrammierung 0
G SQLite SQLite Select für View vereinfachen/optimieren Datenbankprogrammierung 4
G sqlite innerjoin Datenbankprogrammierung 5
G SQLite Daten aus SQLite DB in andere SQLite DB importieren Datenbankprogrammierung 4
R sqlite UPDATE wirkt nicht aus Java Datenbankprogrammierung 7
G SQLite SQLite Abfrage Datenbankprogrammierung 4
F SQLite-Extensions unter Java Datenbankprogrammierung 2
H SQLite mit DefaultTableModel synchronisieren Datenbankprogrammierung 5
D SQLite Statement nimmt keine Namen aus getter-Methoden Datenbankprogrammierung 11
L SQLite fügt nur den ersten Datensatz ein Datenbankprogrammierung 2
S SQLite Ausführbares Jar mit SQLite DB Datenbankprogrammierung 4
F [SQLite] Mehrere Datensätze einfügen Datenbankprogrammierung 12
H SQLite Datenkbank erstellen Datenbankprogrammierung 3
S Abfrage auf SQLite-DB Datenbankprogrammierung 2
Kasoki SQLite SQLite oder doch XML!? Datenbankprogrammierung 2
G SQLite Abfrage, ob in Tabelle X Spalte Y existiert Datenbankprogrammierung 4
G SQLJet (SQLite) - Mehrbenutzerzugriff auf Datenbank handhaben Datenbankprogrammierung 1
S SQLite in JAR Datenbankprogrammierung 8
J SQLite --> Java SDK Datenbankprogrammierung 7
P Datenbank für Java Anwendung wie SQLite ohne Installation Datenbankprogrammierung 4
P Sqlite API für JAVA ? Datenbankprogrammierung 9
feuervogel SQLite unter Linux mit Eclipse einrichten Datenbankprogrammierung 8
K SQLite Datenbankprogrammierung 5
S SQLite oder RDBMS als Datei(nicht Client/Server) Datenbankprogrammierung 5
B Wie kann ich eine Jtable mit Inhalt einer SQL Abfrage füllen Datenbankprogrammierung 14
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
M Derby/JavaDB Datenbank füllen Datenbankprogrammierung 7
L Tabelle mit Inhalt füllen Datenbankprogrammierung 2
G ArrayList aus Verschiedenen klasse füllen Datenbankprogrammierung 5
C datenbank füllen Datenbankprogrammierung 4
D von Datenbank in JTable füllen Datenbankprogrammierung 16
M DropDownBoxen mit MySQL Daten füllen Datenbankprogrammierung 3
D Vector mit Daten aus der Datenbank füllen Datenbankprogrammierung 7
M MySQL: Spalte auf einmal füllen, ohne iterieren zu müssen Datenbankprogrammierung 4
M JComboBox mit SQL-Ergebnis füllen. Wie? Datenbankprogrammierung 11
W JComboBox mit Access DB Werten füllen Datenbankprogrammierung 5
A Textfelder füllen Datenbankprogrammierung 4
G JComboBox füllen Datenbankprogrammierung 4
D Daten von Datenbank in JTable füllen... Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben