MyBatis – Erste Schritte – JDBC

Inhaltsverzeichnis

Einführung in JDBC

Natur

JDBC-Beispiel


Einführung in JDBC

  • JDBC (Java DataBase Connectivity) ist eine Reihe von APIs, die die Java-Sprache verwenden, um relationale Datenbanken zu betreiben
    • Das Java-Programm verwendet den JDBC-API-Satz, um verschiedene relationale Datenbanken zu betreiben, aber auch die zugrunde liegenden Implementierungen verschiedener Datenbanken sind sehr unterschiedlich, sodass auch die Betriebsmethoden unterschiedlich sind. Jeder Hersteller stellt die Implementierung seiner eigenen Datenbank-JDBC bereit und schreibt schließlich Java Verwenden Sie für Projekte die schnittstellenorientierte Programmierung und die in JDBC bereitgestellten Schnittstellen für den Betrieb, da jeder Anbieter die Implementierung der JDBC-Spezifikation am Ende der Datenbank bereitstellt (dh den Treiber der Datenbank).

Natur

  • Eine von Sun offiziell definierte Reihe von Spezifikationen für den Betrieb aller relationalen Datenbanken, also der Schnittstelle
  • Verschiedene Datenbankanbieter implementieren diese Schnittstellen und stellen JAR-Pakete für Datenbanktreiber bereit
  • Wir können diesen Satz von Schnittstellen (JDBC) zum Programmieren verwenden, und der tatsächlich ausgeführte Code ist die Implementierungsklasse im Treiber-JAR-Paket

JDBC-Beispiel

  • spezifischer Code
  • import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class JdbcExample {
    
        public static void main(String[] args) {
            // 数据库连接信息
            String url = "jdbc:mysql://localhost:3306/mydatabase";
            String username = "your-username";
            String password = "your-password";
    
            // 声明 JDBC 对象
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
    
            try {
                // 连接到数据库
                conn = DriverManager.getConnection(url, username, password);
    
                // 创建 Statement 对象,用于执行 SQL 语句
                stmt = conn.createStatement();
    
                // 执行查询语句
                String sql = "SELECT * FROM customers";
                rs = stmt.executeQuery(sql);
    
                // 处理查询结果
                while (rs.next()) {
                    int id = rs.getInt("id");
                    String name = rs.getString("name");
                    String email = rs.getString("email");
    
                    // 输出结果
                    System.out.println("ID: " + id + ", Name: " + name + ", Email: " + email);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                // 关闭 JDBC 对象
                try {
                    if (rs != null) {
                        rs.close();
                    }
                    if (stmt != null) {
                        stmt.close();
                    }
                    if (conn != null) {
                        conn.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
  •  Probleme mit JDBC
    • Redundanter Code : Die Verwendung von JDBC für Datenbankoperationen erfordert eine Menge Boilerplate-Code, z. B. das Öffnen von Verbindungen, das Schließen von Verbindungen, die Behandlung von Ausnahmen usw. Diese wiederholten Codes führen leicht zu Redundanz und Doppelarbeit und verringern so die Entwicklungseffizienz.

    • Low-Level-Schnittstelle : JDBC ist eine relativ Low-Level-Schnittstelle, die von Entwicklern die Handhabung vieler Details erfordert, wie z. B. Datenbankverbindungsverwaltung, Transaktionsverarbeitung und SQL-Anweisungsspleißen. Dies verkompliziert den Entwicklungsprozess, insbesondere für Anfänger.

    • Sicherheitsprobleme : Das direkte Einfügen des vom Benutzer eingegebenen Werts in die SQL-Anweisung über JDBC kann leicht zu SQL-Injection-Angriffen führen. Entwickler müssen die Eingabevalidierung und parametrisierte Abfragen selbst durchführen, um die Anwendungssicherheit zu gewährleisten.

    • Leistungsprobleme : Bei jeder JDBC-Datenbankoperation muss eine Verbindung hergestellt, eine Abfrage ausgeführt, das Ergebnis verarbeitet und die Verbindung nach Abschluss geschlossen werden. Dieser Prozess zum Erstellen und Zerstören von Verbindungen hat einen gewissen Einfluss auf die Leistung, insbesondere in Szenarien mit häufigem Datenbankzugriff.

    • Fehlende Unterstützung für objektrelationales Mapping (ORM) : JDBC bietet eine zugrunde liegende Betriebsschnittstelle auf Basis relationaler Datenbanken. Für die objektorientierte Programmierung ist es erforderlich, Datenergebnisse manuell in Objekte umzuwandeln. Dies erhöht den Entwicklungsaufwand und ist anfällig für Fehler.

Guess you like

Origin blog.csdn.net/weixin_64939936/article/details/131968350