SQL Schnittstellen

maydonoz

Mitglied
Ich habe eine Frage bezüglich unterstehendes Programm
Man benutzt hier die Schnittstellen ResultSet ,Statement und Connection , sollten wir ihre methoden normalerweise nicht selber implementieren , und die Methodenrümpfe von dieser Schnittstellen sollten nicht leer sein ? Wieso funktionieren diese Metheden , obwohl die nicht implementiert sind ?

Gib es auch andere Schnittstellen ?



Java:
import java.sql.*;

public class Anmelden_a {

  public static void main (String args[]) {

    if (args.length == 3){
      try {
        Class.forName("com.mysql.jdbc.Driver");

        Connection c = DriverManager.getConnection(
         "jdbc:mysql://137.250.125.91:3306/theDatabase","user","password");

        Statement abfrage = c.createStatement();

        String befehl = 
        "INSERT INTO Student VALUES (
         args[0],     
        args[1],
         args[2]
        )";
        abfrage.executeUpdate(befehl);

        befehl = 
        	"SELECT * FROM Student"
        	+ " WHERE Matrikelnummer = 24248495";
        ResultSet ergebnis = abfrage.executeQuery(befehl);
        while (ergebnis.next()){
        	System.out.println("Name: "+ergebnis.getString(2));	
        	System.out.println("Vorname: "+ergebnis.getString(1));	
        	System.out.println("Matrikelnummer: "+ergebnis.getString(3));	
        }
        
        befehl = "UPDATE Student SET Vorname = markus WHERE Matrikelnummer = 24248495"; 
        abfrage.executeUpdate(befehl);
      } 
      catch(Exception e){
          System.out.println("Datenbankzugriffsfehler: "+ e.getMessage());
      }
    }
    else {
      System.out.println("benutzen Sie 3 Parameter!");
    }
  }
}
 

Eldorado

Bekanntes Mitglied
Du willst hier:
Java:
 String befehl = 
        "INSERT INTO Student VALUES (
         args[0],     
        args[1],
         args[2]
        )";
doch bestimmt nicht args[0] ... als Namen, sondern den Inhalt der Variablen in die Datenbank stecken, oder?
 

agentone

Bekanntes Mitglied
und die Methodenrümpfe von dieser Schnittstellen sollten nicht leer sein ?
Methoden von Interfaces haben nicht mal Rümpfe.
obwohl die nicht implementiert sind ?
Diese Interfaces werden implementiert, und zwar von den verschiedenen Datenbank-Treibern. Beispielsweise installierst du mit
Java:
Class.forName("com.mysql.jdbc.Driver");
den MySQL-Treiber. Ja, und was bringt das? Das hat den Vorteil, dass du jede Datenbank, die SQL-fähig ist, mit demselbem Java-Code ansprechen kannst. Du bist also nicht an die Datenbank (bzw. an das DBMS) gebunden.
 

agentone

Bekanntes Mitglied
Die Interfaces werden automtisch von den Treibern implementiert , sodass wir man die nicht mehr implementieren muss ?

Die Treiber implementieren diese Interfaces, um konform zu java.sql, und damit auch zu JDBC zu sein. Automatisch passiert da garnichts.
 

Neue Themen


Oben