mysql_real_escape_string() in Java

Java  (24.10.2010 15:05) Beispiel wie man Strings für ein SQL Query escapen kann.

Quellcode (ausblenden | aufklappen)

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();
    }
 
}