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...