Implementación del objeto de acceso a datos en Java
- Comprender el objeto de acceso a datos en Java
- Conéctese al servidor MySQL en Java
- Implementación del objeto de acceso a datos en la base de datos MySQL 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:
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.
¡No te preocupes! Porque también le mostraremos cómo crear la base de datos usando CLI.
Si está utilizando el sistema operativo Windows:
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.
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:
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 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