(24.10.2010 15:05)
Beispiel wie man Strings für ein SQL Query escapen kann.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
package javatest; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; /** * * @author sim4000 */ public class Main { private String user = "root"; private String pass = ""; private String db = "mysql"; private String host = "dev.lokal"; private String port = "3306"; Main() { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); // JDBC-Treiber einbinden String conn = "jdbc:mysql://"+this.host+":"+this.port+"/"+this.db; // Verbindung Connection connection = DriverManager.getConnection(conn, this.user, this.pass); // Verbinden // Query mit Platzhalter PreparedStatement pre = connection.prepareStatement("select * from user where user = ?"); // Platzhalter fuellen und "boese" Zeichen escapen pre.setString(1, "Just 'a\"test'''"); // Debugausgabe des Querys System.out.println(pre.toString()); // Query ausfuehren ResultSet result = pre.executeQuery(); ResultSetMetaData meta = result.getMetaData(); // Daten auslesen result.first(); do { for(int i=1; i<=meta.getColumnCount(); i++) { System.out.print(" - "+result.getString(i)+" - "); } System.out.println(); } while(result.next()); // Verbindung trennen result.close(); pre.close(); connection.close(); } catch(Exception e) { System.out.println("\n\nFehler: "+e.getMessage()+"\n\n"); // Fehlerausgabe } } public static void main(String[] args) { new Main(); } } |