Implementierung von Data Access Object in Java

Sarwan Soomro 15 Februar 2024
  1. Datenzugriffsobjekt in Java verstehen
  2. Verbindung zum MySQL-Server in Java
  3. Implementierung des Datenzugriffsobjekts in der MySQL-Datenbank in Java
Implementierung von Data Access Object in Java

Wir werden eine neue Datenbank mydb und eine products-Tabelle erstellen, um eine Echtzeitimplementierung der Dateneinfügung mit DAO in Java zu zeigen.

Unser DAO-Modell ist in der Lage, CRUD-Anwendungen dynamisch zu verwenden. Es verwendet den JDBS-Treiber von mysql-connector-java-8.0.22 für die Datenbankverbindung.

Es abstrahiert erfolgreich die zugrunde liegende Datenzugriffsimplementierung des Objekts, um einen transparenten Zugriff auf die Daten bereitzustellen.

Datenzugriffsobjekt in Java verstehen

Wir werden dieses Muster verwenden, um unsere Schnittstelle mit DAO zu implementieren. Dieses Modell ist eine grobe Darstellung eines benutzerdefinierten, aber voll funktionsfähigen Java-Datenzugriffsobjekts, das abstrakte Datenquellen verwalten kann.

Angenommen, Sie möchten die Datenbankoperation ändern. Sie müssen lediglich die Hauptklasse ändern.

In diesem Fall ist unsere Hauptklasse als JDBC-Demo definiert.

DAO-Muster:

DAO-Modell

Wir werden Sie am Anfang nicht verwirren. Daher werden wir es so einfach wie nötig halten, eine Logik zu erstellen, die nicht kopiert und eingefügt wird, sondern Ihre Schnittstellen erstellt.

Das heißt, dies ist unsere product-Klasse, die Produktwerte enthält, die durch einen Konstruktor übergeben werden, der in der Hauptklasse geworfen wird, die eine Instanz eines Objekts der Funktion ist, die in diesem Beispiel addProduct ist.

// Product class
class Product {
  int id;
  String name;
  // add more values
}

Und dann haben wir eine Schnittstelle, die Datenzugriffsobjektmuster verwendet, um unsere Datenbank zu verwalten. Belassen wir es vorerst bei essentiell.

Sehen Sie sich eine einfache Funktion an, die Produkte zur Datenbanktabelle hinzufügen kann.

public static void main(String[] args) {
  // Now let us insert new product
  // constructor PDAO class
  // objects
  ProDAO dao2 = new ProDAO(); // constructor
  Product pro = new Product(); // constructor
  // values to insert
  // dynamically modify values from here later
  pro.id = 3;
  pro.name = "Oppo LOL";
  // we have created a separate function for the db connection
  dao2.Dbconnect();
  // it is set to addProduct as of now, you can run CRUD directly from here
  dao2.addProduct(pro);
}

Dies ist eine typische Demo des DAO, die wir im Abschnitt Implementierungscode ausführen werden.

Bitte beachten Sie, dass wir eine Datenbank in MySQL erstellen und dann die MySQL-Connector-JAR-Datei verwenden, um eine Verbindung mit dem SQL-Server herzustellen.

Notiz
Sie benötigen einen MySQL-Server, um diesen Code auf Ihrem System zu implementieren.

Keine Sorge! Denn wir zeigen Ihnen auch, wie Sie die Datenbank per CLI erstellen.

Wenn Sie ein Windows-Betriebssystem verwenden:

Erstellen Sie eine neue Datenbank und Tabelle

Notiz
Dies ist ein perfekter Einstieg in MySQL. Es ermöglicht Ihnen, strukturelle Abfragen so zu verstehen, wie sie verstanden werden sollen.

Sie können jedoch GUI(s) wie MySQL Workbench, SQL Yog, phpMyAdmin verwenden, um Ihre bevorzugte Datenbank zu erstellen.

Verbindung zum MySQL-Server in Java

Um die Dinge im Blick zu behalten und schmutzigen Code zu vermeiden. Wir werden eine separate Datenbankfunktion erstellen.

// Database Connection will use jdbc driver from the mysql connector jar
public void Dbconnect() {
  try {
    Class.forName("com.mysql.cj.jdbc.Driver"); // Mysql Connector's JDBC driver is loaded
    // connection to mysql
    con = DriverManager.getConnection(
        "jdbc:mysql://localhost/mydb", "root", ""); // URL, database name after
    // localhost, user name,
    // password
  } catch (Exception ex) {
    System.out.println(ex);
  }
}

Sie können diese Verbindung für Ihre MySQL-Projekte verwenden. Und vergessen Sie nicht, wenn Sie eine alte Java-Version verwenden, verwenden Sie bitte die Class.forName("com.mysql.jdbc.Driver"); zum Laden von JDBC.

Implementierung des Datenzugriffsobjekts in der MySQL-Datenbank in Java

Erstens würde es helfen, den Pfad korrekt zu erstellen, um Ausnahmen und Warnungen während der Laufzeit zu vermeiden.

Die häufigen Fehler können vermieden werden, indem Sie mit der rechten Maustaste auf Ihr Java-Projekt klicken, den Pfad erstellen und jar-Dateien konfigurieren. Stellen Sie einfach sicher, dass Ihr Build-Pfad wie im Bild unten ist.

Build-Pfad-Konfiguration von JAR-Dateien

Wenn Ihr Konzept klar ist, werden Sie die folgende DAO-Implementierung unseres Modells verstehen. Trotzdem haben wir jedes Element des Kodex für Sie kommentiert.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

// This Data Access Object DAO is a dynamic way to handle database records.

// main class
class DAOexample {
  public static void main(String[] args) {
    // Now let us insert new product
    // constructor PDAO class
    // objects
    ProDAO dao2 = new ProDAO(); // constructor
    Product pro = new Product(); // constructor
    // values to insert
    // dynamically modify values from here later
    pro.id = 3;
    pro.name = "Oppo LOL";
    // we have created a separate function for the db connection
    dao2.Dbconnect();
    // it is set to addProduct as of now, you can run CRUD directly from here
    dao2.addProduct(pro);
  }
}

class ProDAO {
  Connection con = null;

  // Database Connection will use jdbc driver from the mysql connector jar
  public void Dbconnect() {
    try {
      Class.forName("com.mysql.cj.jdbc.Driver");
      // connection to mysql
      con = DriverManager.getConnection(
          "jdbc:mysql://localhost/mydb", "root", ""); // URL, database name after
      // localhost, user name,
      // password
    } catch (Exception ex) {
      System.out.println(ex);
    }
  }

  // We will use the insert operation in this function, its conductor is already
  // declared in the main class (DAO)
  public void addProduct(Product p) { // this function will insert values
    // insert query
    // using prepared statements
    String query2 = "insert into products values (?,?)";
    try {
      PreparedStatement pst;
      pst = con.prepareStatement(query2);
      pst.setInt(1, p.id);
      pst.setString(2, p.name); //
      pst.executeUpdate(); // executeUpdate is used for the insertion of the data
      System.out.println("Inserted!");
    } catch (Exception ex) {
    }
  }
}

// Product class
class Product {
  int id;
  String name;
  // add more values
}

Ausgabe:

neuen Wert mit Datenzugriffsobjekt einfügen

Wenn Sie noch Fragen haben, stellen wir Ihnen den vollständigen ZIP-Ordner dieser Implementierung mit jar-Dateien und allem, was Sie zum Konfigurieren Ihres ersten DAO benötigen, zur Verfügung.

Sarwan Soomro avatar Sarwan Soomro avatar

Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.

LinkedIn

Verwandter Artikel - Java Object