Mit der Connection - Methode prepareStatement() steht eine leistungsfähigere SQL-Abfrage zur Verfügung: Zunächst wird die Abfrage ``vorbereitet'' - konkrete Werte werden zunächst durch Fragezeichen ? ersetzt. Im Lauf des Programmes werden mit entsprechenden set - Methoden die Werte übernommen, die übermittelt werden sollen. Die Abfrage wird mit Hilfe der Methode executeUpdate() an den Server übertragen.
import java.sql.*;
public class DatenEintragen {
public static void main(String args[]) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://10.0.1.2/kurs", "tux","");
PreparedStatement pstmt = con.prepareStatement("insert into artikel values(?,?,?,?,?)");
pstmt.setInt(1,0);
pstmt.setInt(2,301);
pstmt.setString(3,"Java heavy");
pstmt.setInt(4,22);
pstmt.setDouble(5,150.0);
pstmt.executeUpdate();
pstmt.close();
con.close();
}
catch (SQLException e) {
System.out.println(e);
System.out.println(e.getSQLState());
System.out.println(e.getErrorCode());
}
catch (ClassNotFoundException e) {
System.out.println(e);
}
}
}
Um die obige Klasse praktisch verwenden zu können, wäre es beispielsweise denkbar, die Daten als Befehlszeilenargumente einzugeben...