Implementierung von Data Access Object in Java
- Datenzugriffsobjekt in Java verstehen
- Verbindung zum MySQL-Server in Java
- Implementierung des Datenzugriffsobjekts in der MySQL-Datenbank 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:
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.
Keine Sorge! Denn wir zeigen Ihnen auch, wie Sie die Datenbank per CLI erstellen.
Wenn Sie ein Windows-Betriebssystem verwenden:
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.
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:
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 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