DPO2 U3 A2 MiRC
DPO2 U3 A2 MiRC
DPO2 U3 A2 MiRC
Asignatura
Programación Orientada a Objetos 2
Unidad 3
Base de datos
Actividad 2
Programa de conexión
Alumno
ES1822037684 Miguel Angel Rodriguez Cornejo
Docente
María Elizabeth Rodriguez Góngora
Programacion orientada a objetos 2
Unidad 2
Tabla de contenido
Introducción.................................................................................................................................3
Manejador de base de datos (DBMS)...........................................................................................4
MariaDB..........................................................................................................................................................5
SQLite..............................................................................................................................................................5
PostgreSQL....................................................................................................................................................6
Microsoft SQL Server....................................................................................................................................6
Oracle..............................................................................................................................................................7
MongoDB........................................................................................................................................................8
Redis...............................................................................................................................................................8
Cassandra.......................................................................................................................................................9
Otros SGBD NoSQL......................................................................................................................................9
Librerias existentes en MySQL...................................................................................................10
Pasos para conectar formulario con base de datos....................................................................11
Diagrama de flujo.......................................................................................................................13
Captura de pantalla....................................................................................................................14
Conclusión..................................................................................................................................25
Bibliografía.................................................................................................................................26
Introducción
Para todo esto primero haremos una investigación de cuales son los sistemas manejadores
de base de datos (DBSM), también investigaremos las librerías que se ocupan en MySQL,
para posterior meten aplicarlo directamente en nuestra aplicación.
MySQL
Se ofrece bajo la GNU GPL aunque también es posible adquirir una licencia para empresas
que quieran incorporarlo en productos privativos (Desde la compra por parte de Oracle se está
orientando a este ámbito empresarial).
Las principales ventajas de este Sistema Gestor de Bases de datos son:
Facilidad de uso y gran rendimiento
Facilidad para instalar y configurar
Soporte multiplataforma
Soporte SSL
La principal desventaja es la escalabilidad, es decir, no trabaja de manera eficiente con bases
de datos muy grandes que superan un determinado tamaño .
MariaDB
SQLite
Más que un Sistema Gestor de bases de datos como tal, SQLite es una biblioteca escrita en
C que implementa un SGBD y que permite transacciones sin necesidad de un servidor ni
configuraciones.
Es una biblioteca utilizada en multitud de aplicaciones actuales ya que es open source y las
consultas son muy eficientes.
Las principales características de SQLite son:
El tamaño, al tratarse de una biblioteca, es mucho menor que cualquier SGBD
Reúne los cuatro criterios ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad)
logrando gran estabilidad
Gran portabilidad y rendimiento
La gran desventaja de SQLite es la escalabilidad ya que no soporta bases de datos que sean
muy grandes.
PostgreSQL
Sus principales características son:
Control de Concurrencias multiversión (MVCC)
Flexibilidad en cuanto a lenguajes de programación
Multiplataforma
Dispone de una herramienta (pgAdmin, https://www.pgadmin.org/) muy fácil e intuitiva
para la administración de las bases de datos.
Robustez, Eficiencia y Estabilidad.
La principal desventaja es la lentitud para la administración de bases de datos pequeñas ya
que está optimizado para gestionar grandes volúmenes de datos.
Oracle
La principal desventaja, al igual que SQL Server, es el coste del software ya que, aunque
cuenta con una versión gratuita (Express Edition o XE), sus principales opciones son de pago.
Las opciones de pago disponibles son:
o 1. Standard Edition (SE)
o 2. Standard Edition One (SE1)
o 3. Standard Edition 2 (SE2)
o 4. Personal Edition (PE)
5. Lite Edition (LE)
6. Entreprise Edition (EE)
Sistemas Gestores de bases de datos No Relacionales (NoSQL)
MongoDB
Las características principales son:
Atomicidad y persistencia
Gran velocidad
Simplicidad
Multiplataforma
Cassandra
Al igual que Redis, Cassandra también utiliza almacenamiento clave-valor. Es un
SGBD NoSQL distribuido y masivamente escalable.
Facebook, Twitter, Instagram, Spotify o Netflix utilizan Cassandra.
Dispone de un lenguaje propio para las consultas denominado CQL (Cassandra Query
Languaje).
Las principales características de este SGBD NoSQL son:
Multiplataforma
Propio lenguaje de consultas (CQL)
Escalado lineal y horizontal
Es un SGBD distribuido
Utiliza una arquitectura peer-to-peer
Azure Cosmos DB
RavenDB
ObjectDB
Apache CouchDB
Neo4j
Google BigTable
Apache Hbase
Amazon DynamoDB
Paso 2
Descargar el MySQL Java Conector, descomprimirlo y ubicarlo en una carpeta de fácil
acceso.
Paso 3
Ahora vamos al Netbeans y creamos un nuevo proyecto, le ponemos un nombre y
seleccionamos para crear la clase principal por defecto.
En mi caso el nombre de mi proyecto es mysql-con y la clase por defecto que se creo fue
MysqlCon.java.
Paso 4
En el menu de la derecha del Netbeans buscamos en el arbol de proyectos, seleccionamos el
proyecto actual y vamos a la carpeta de librerías, le damos click derecho y buscamos el
MySQL Java Conector de donde lo guardamos en el paso 2, seleccionamos el archivo .jar.
Paso 5
Ahora vamos a escribir el código de nuestra función de conexión a la base de datos:
[code language=”java”]
public static void connect(){
String url = “jdbc:mysql://localhost:3306/myjavaapp1”;
String user = “root”;
String pass = “”;
System.out.println(“Conectando…”);
try(Connection connection = DriverManager.getConnection(url, user,pass)){
System.out.println(“Conectado!!”);
}catch(SQLException e){
System.out.println(e.getMessage());
}
}
[/code]
Paso 6
Crear la base de datos.
Para ello debemos recurrir a una consola de comandos o algun gestor visual como
MySQLWordBench o el mismisimo PHPMyAdmin.
El codigo SQL de la base de datos en cuestión es el siguiente.
[code language=”sql”]
create database myjavaapp1;
use myjavaapp1;
create table user(
id int not null auto_increment primary key,
username varchar(125) unique,
password varchar(125),
created_at datetime
);
[/code]
Paso 7
Ahora que ya hemos cubierto los pasos necesarios vamos a ejecutar el proyecto.
Por cierto recuerden agregar una llamada a la funcion connect() dentro de la funcion main() …
Paso 8
Despues de la linea donde mandamos a imprimir el texto “Conectado!” podemos usar el
codigo siguiente para agregar un usuario:
[code language=”java”]
System.out.println(“Insertando …”);
Statement s = connection.createStatement();
String query1 = “insert into user (username,password,created_at) value
(\”user1\”,\”mypassword\”,NOW())”;
s.executeUpdate(query1);
[/code]
Y seguido de ese podemos usar el siguiente para mostrar o hacer un recorrido de todos los
registros de la tabla user.
[code language=”java”]
// vamos a recorrer
String query2 = “select * from user”;
ResultSet r = s.executeQuery(query2);
[/code]
Diagrama de flujo
Captura de pantalla
Captura de pantalla del formulario de Altas de inventario
Base de datos
Para hacer la conexión creamos nuestro objeto tipo connection utilizamos la librería
java.sql.Connection, con esto establecemos la conexión con mysql.
En el botón limpiar utilizamos la clase set Text para mandar en blanco los valores de nuestro
objeto así podemos limpiar nuestra caja de texto.
package dpo2_u3_a2_mirc;
Inv_Alta alta;
Inv_Bajas inv_bajas;
Inv_Modificar inv_modificar;
Per_Alta per_alta;
Per_Bajas per_bajas;
Per_Modificar per_modificar;
Nom_Personal nom_personal;
public Menu() {
initComponents();
alta=new Inv_Alta();
add(alta);
inv_bajas=new Inv_Bajas();
add(inv_bajas);
inv_modificar=new Inv_Modificar();
add(inv_modificar);
per_alta=new Per_Alta();
add(per_alta);
per_bajas=new Per_Bajas();
add(per_bajas);
per_modificar=new Per_Modificar();
add(per_modificar);
nom_personal=new Nom_Personal();
add(nom_personal);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jMenu1.setText("Inventario");
jMenuItem1.setText("Alta");
jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem1ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem1);
jMenuItem2.setText("Bajas");
jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem2ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem2);
jMenuItem3.setText("Modificar");
jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem3ActionPerformed(evt);
}
});
jMenu1.add(jMenuItem3);
jMenuBar1.add(jMenu1);
jMenu2.setText("Personal");
jMenuItem4.setText("Alta");
jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem4ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem4);
jMenuItem5.setText("Bajas");
jMenuItem5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem5ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem5);
jMenuItem6.setText("Modificar");
jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem6ActionPerformed(evt);
}
});
jMenu2.add(jMenuItem6);
jMenuBar1.add(jMenu2);
jMenu3.setText("Nomina");
jMenuItem7.setText("Personal");
jMenuItem7.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItem7ActionPerformed(evt);
}
});
jMenu3.add(jMenuItem7);
jMenuBar1.add(jMenu3);
setJMenuBar(jMenuBar1);
pack();
}// </editor-fold>
nom_personal.setVisible(false);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Menu.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Menu.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Menu.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Menu.class.getName()).log(java.util.logging.Level.S
EVERE, null, ex);
}
//</editor-fold>
Conclusión
Como parte de tu aprendizaje es importante que identifiques el lenguaje estructurado de
consultas SQL y las sentencias DDL y DML, esto nos ayudara a la hora de la construcción de
nuestras aplicaciones poder conectarlas con una base de datos y poder almacenar
correctamente la información capturada por nuestra aplicación.
Como pudimos ver la sentencia DDL nos ayuda a definir las estructuras que almacenarán los
datos así como los procedimientos o funciones que permitan consultarlos y la sentencia DML
nos permite utilizando instrucciones de SQL.
Bibliografía
Arévalo, J. (15 de 9 de 2013). Conceptos básicos de SQL. Obtenido de
https://geotalleres.readthedocs.io/es/latest/conceptos-sql/conceptos_sql.html
Escofet, C. M. (s.f.). El lenguaje SQL. Obtenido de
https://moodle2.unid.edu.mx/dts_cursos_mdl/lic/TI/FB/AM/11/El_lenguaje_sql.pdf
EVILNAPSIS. (29 de 03 de 2016). Conectar una Base de datos MySQL con Java y Netbeans.
Obtenido de https://evilnapsis.com/2016/03/29/conectar-una-base-de-datos-mysql-con-java-y-
netbeans/
MARÍN, R. (16 de 04 de 2019). Los gestores de bases de datos más usados en la actualidad. Obtenido
de https://revistadigital.inesem.es/informatica-y-tics/los-gestores-de-bases-de-datos-mas-
usados/