Implementación del objeto de acceso a datos en Java

Sarwan Soomro 12 octubre 2023
  1. Comprender el objeto de acceso a datos en Java
  2. Conéctese al servidor MySQL en Java
  3. Implementación del objeto de acceso a datos en la base de datos MySQL en Java
Implementación del objeto de acceso a datos en Java

Crearemos una nueva tabla de base de datos mydb y products para mostrar una implementación en tiempo real de la inserción de datos usando DAO en Java.

Nuestro modelo DAO es capaz de utilizar aplicaciones CRUD de forma dinámica. Utiliza el controlador JDBS de mysql-connector-java-8.0.22 para la conexión a la base de datos.

Abstrae con éxito la implementación de acceso a datos subyacente del objeto para brindar un acceso transparente a los datos.

Comprender el objeto de acceso a datos en Java

Usaremos este patrón para implementar nuestra interfaz con DAO. Este modelo es una representación aproximada de un objeto de acceso a datos Java personalizado pero completamente funcional que puede administrar fuentes de datos abstractas.

Suponga que desea cambiar la operación de la base de datos. Todo lo que necesita hacer es modificar la clase principal.

En este caso, nuestra clase principal se define como la demostración de JDBC.

Patrón DAO:

modelo DAO

No te confundiremos al principio. Por lo tanto, lo mantendremos tan simple como sea necesario para construir una lógica que no copie y pegue, sino que cree sus interfaces.

Dicho esto, esta es nuestra clase Product que contiene valores de productos pasados ​​a través de un constructor lanzado en la clase principal que es una instancia de un objeto de la función que es addProduct en este ejemplo.

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

Y luego tenemos una interfaz que usa patrones de objetos de acceso a datos para administrar nuestra base de datos. Mantengámoslo esencial por el momento.

Consulte una función simple que puede agregar productos a la tabla de la base de datos.

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);
}

Esta es una demostración típica del DAO que ejecutaremos en la sección de código de implementación.

Tenga en cuenta que crearemos una base de datos en MySQL y luego usaremos el archivo jar del conector MySQL para conectarnos con el servidor SQL.

Nota
Necesitará un servidor MySQL para implementar este código en su sistema.

¡No te preocupes! Porque también le mostraremos cómo crear la base de datos usando CLI.

Si está utilizando el sistema operativo Windows:

crear nueva base de datos y tabla

Nota
Esta es una manera perfecta de comenzar con MySQL. Le permitirá comprender las consultas estructurales como se supone que deben entenderse.

Sin embargo, puede usar GUI(s) como MySQL Workbench, SQL Yog, phpMyAdmin para crear su base de datos preferida.

Conéctese al servidor MySQL en Java

Para mantener las cosas en perspectiva y evitar el código sucio. Crearemos una función de base de datos separada.

// 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);
  }
}

Puede utilizar esta conexión para sus proyectos MySQL. Y no olvide que si está utilizando una versión anterior de Java, utilice Class.forName("com.mysql.jdbc.Driver"); para cargar JDBC.

Implementación del objeto de acceso a datos en la base de datos MySQL en Java

Primero, ayudaría a construir la ruta correctamente para evitar excepciones y advertencias durante el tiempo de ejecución.

Los errores frecuentes se pueden evitar haciendo clic derecho en su proyecto Java, construyendo la ruta y configurando los archivos jar. Solo asegúrese de que su ruta de compilación sea como en la imagen a continuación.

configuración de ruta de compilación de archivos jar

Si su concepto es claro, comprenderá la siguiente implementación DAO de nuestro modelo. Sin embargo, hemos comentado cada elemento del código para usted.

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
}

Producción:

inserte un nuevo valor usando el objeto de acceso a datos

Si aún tienes dudas, te proporcionamos la carpeta zip completa de esta implementación que contiene los archivos jar y todo lo que necesitas para configurar tu primer DAO.

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

Artículo relacionado - Java Object