mysql DB mit Java: Links abspeichern

S-Force

Ensign
Registriert
Nov. 2007
Beiträge
238
Hallo CB'ler;

ich schreibe gerade ein Java Programm in welchem ich Links aus HTML Dokumente auslese und abspeichere.
Danach möchte ich die Daten mittels eines nachgebauten PageRank Algorithmus auswerten lassen.
Das Auslesen und abspeichern funktioniert auch soweit nur leider wird bei der Abfrage der Link
zum HTML Dokument ohne / oder \ ausgegeben. Da ich logischerweiße für weitere Vorgänge die Slashs benötige
funktioniert dies nun nicht mehr...

Sieht dann ca. so aus:
WebsitesHtml1lukeskywalker.html

mit einer schleife werden die Dokumente eingetragen.
Statement stmt = conn.createStatement() ;
String query = "INSERT INTO htmlAdresse (PageName, Pfad) values ('" +temp +"','"+temp2+"');" ;
stmt.execute(query) ;
conn.close();

Ausgelesen mit folgendem Befehl:
String ID_Adresse = rs.getString("ID_Adresse");
String PageName = rs.getString("PageName");
String AnzahlLinks = rs.getString("AnzahlLinks");
String Pfad=rs.getString("Pfad");
System.out.println("ID_Adresse: " + ID_Adresse + ", PageName: " + PageName
+ ", AnzahlLinks: " + AnzahlLinks +", Pfad: " +Pfad);

Ich hoffe jemand hat einen Tipp.

Gruß
 
S-Force schrieb:
[..]
Statement stmt = conn.createStatement() ;
String query = "INSERT INTO htmlAdresse (PageName, Pfad) values ('" +temp +"','"+temp2+"');" ;
stmt.execute(query) ;
conn.close();
[..]

Bitte immer Prepared Statements verwenden - sollte temp oder temp2 aus welchen Gründen auch immer ein \ oder ein ' enthalten gibt es Probleme. (Auch sollte man das Stmt vor der Verbindung schließen - schaden tut es auf keinen Fall und je nach verwendeten Datenbank und oder JDBC Treiber kann es zu Problemen kommen). (Und für jedes Insert eine Verbindung auf und wieder zuzumachen (wenn kein Connectionpool verwendet wird) ist auch langsam).

Dein Problem besteht darin dass du zu bei temp2 z.B. https://www.computerbase.de/forum/ reinschickst aber beim System out kommt was dabei heraus?
 
Danke für deine Antwort!

ich habe das Problem gelöst.

Zu deiner Frage was dabei Rauskam.
ich habe lokale links von meinem PC eingelesen für den Test also z.b.
C:\Users\XXXXXXX\Documents\dv\Websites\Html1\XXXXXXXX.html

Herauskam bei der Ausgabe
CUSERSXXXXXXXDOCUMENTDVWEBSITESHTMLSXXXXXX.html

Meine Lösung:
String temp2=f.getAbsolutePath();
temp2=temp2.replaceAll("\\\\", "/");

Ich ersetze alle Backslashs durch slashs und speichere den neuen String danach in die Datenbank als Pfad ab.
Ausgabe ist nun Korrekt:
Pfad: C:/Users/XXXXXX/Documents/XXXXXX/Websites/Html1/XXXXXXXXXX.html

Trotzdem vielen Dank für die Hilfe :)
 
Zurück
Oben