JDBC

UNIVERSIDAD POLITÉCNICA AMAZÓNICA
INTEGRANTES: 

  • DELGADO BUSTAMANTE CRISTHEL EDITH
  • ESPINAL CRUZ HANS
  • FLORES SUAREZ MARIO 

BAGUA GRANDE 2018

  1. Capa de Acceso de datos, creación. Configuración de conexión BD con NetBeans.

En la capa de datos se gestiona el acceso a los datos de la aplicación. Se emplean gestores de bases de datos que realizan la recuperación y el almacenamiento físico de los datos a partir de solicitudes de la capa de negocio.
En esta capa se puede hacer uso de una propiedad denomina  da persistencia de objetos, que permite vincular objetos de bases de datos relacionales a objetos de lenguajes de programación como Java, para aumentar el nivel de abstracción y facilitar el acceso a los datos desde la capa de negocio. Existen varias implementaciones tecnológicas sobre persistencia que deberán emplearse atendiendo a las necesidades de cada aplicación.
2.Configuración de conexión BD con NetBeans.

·         Primero necesitamos tener instalado en nuestra PC el Netbeans, java y MySQL por supuesto.
·         Descargar el MySQL Java Conector, descomprimirlo y ubicarlo en una carpeta de fácil acceso.
·         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.
·         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.
·         Ahora vamos a escribir el código de nuestra función de conexión a la base de datos:
1
2
3
4
5
6
7
8
9
10
11
12
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());
}
}
En tu caso debes modificar el valor de las variables url, user y password.
La variable url equivale a la ubicacion del servidor de la base de datos, en este caso en localhost en el puerto 3306 y despues una diagonal separando el nombre de la base de datos.
·         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.
1
2
3
4
5
6
7
8
9
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
);


  •          Despues de la linea donde mandamos a imprimir el texto “Conectado!” podemos usar el codigo siguiente para agregar un usuario:
1
2
3
4
System.out.println("Insertando ...");
Statement s = connection.createStatement();
String query1 = "insert into user (username,password,created_at) value (\"user1\",\"mypassword\",NOW())";
s.executeUpdate(query1);
Y seguido de ese podemos usar el siguiente para mostrar o hacer un recorrido de todos los registros de la tabla user.
1
2
3
// vamos a recorrer
String query2 = "select * from user";
ResultSet r = s.executeQuery(query2);
                                                  

3. Definición de JDBC. Tipos. Aplicaciones

JDBC es usado para enviar comandos SQL hacia una base de datos relacional, que puede ser Oracle, Infomix, SyBase, etc. Una integración de SQL hacia Java, es decir que las sentencias SQL se puedan mezclar con Java, por ejemplo, que una variable de Java pueda ser usada en una sentencia SQL para recibir o dar valores.
TIPOS
Los driver JDBC se clasifican en cuatro tipos o niveles:
  • Tipo 1: Puente JDBC-ODBC.
  • Tipo 2: Driver API nativo/parte Java.
  • Tipo 3: Driver protocolo de red/todo Java.
  • Tipo 4: Driver protocolo nativo/todo Java.
APLICACIONES
Tema
Descripción
Estas aplicaciones de ejemplo demuestran cómo conectarse a una base de datos de SQL Server. Además, explican los distintos modos en los que se pueden recuperar datos de una base de datos de SQL Server.
Estas aplicaciones de ejemplo demuestran cómo usar los métodos de tipos de datos del controlador JDBC para trabajar con los datos de una base de datos de SQL Server.
Estas aplicaciones de ejemplo demuestran cómo usar los conjuntos de resultados para procesar los datos de una base de datos de SQL Server.
Estas aplicaciones de ejemplo demuestran cómo usar el almacenamiento en búfer adaptable para recuperar datos de valores grandes de una base de datos de SQL Serversin la sobrecarga que suponen los cursores de servidor.
Esta aplicación de ejemplo muestra cómo recuperar información de clasificación y detección de datos contenida en un SQL Server base de datos de un objeto de conjunto de resultados mediante el controlador JDBC.

4.Uso de JDBC en aplicaciones java
Java Database Connectivity, más conocida por sus siglas JDBC,es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java, independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el dialecto SQL del modelo de base de datos que se utilice.
El API JDBC se presenta como una colección de interfaces Java y métodos de gestión de manejadores de conexión hacia cada modelo específico de base de datos. Un manejador de conexiones hacia un modelo de base de datos en particular es un conjunto de clases que implementan las interfaces Java y que utilizan los métodos de registro para declarar los tipos de localizadores a base de datos (URL) que pueden manejar. Para utilizar una base de datos particular, el usuario ejecuta su programa junto con la biblioteca de conexión apropiada al modelo de su base de datos, y accede a ella estableciendo una conexión; para ello provee el localizador a la base de datos y los parámetros de conexión específicos. A partir de allí puede realizar cualquier tipo de tarea con la base de datos a la que tenga permiso: consulta, actualización, creación, modificación y borrado de tablas, ejecución de procedimientos almacenados en la base de datos, etc.

5.Ejemplo

Para realizar la conexión a base de datos desde java necesitamos hacer uso de JDBC. Las bases de datos que deseemos conectar deberán proveernos el driver JDBC en un empaquetado JAR para añadirlo a las librerías del proyecto.
Deberemos conseguir la librería de acuerdo a la versión de la Base de Datos al cual deseemos conectarnos. Es posible que su IDE reconozca la existencia del driver si la base de datos ha sido instalada en el mismo ordenador junto con sus librerías, solo haría falta añadirlo a la lista de librerías que se usarán en el proyecto, por ejemplo en NetBeans se podría ir al directorio Libraries del Proyecto, hacer clic derecho sobre el y elegir Add Library y en la lista podría encontrase la que necesitemos, o si queremos agregarla manualmente Add JAR/Folder y seleccionar desde la dirección donde lo tenemos almacenado.
Una vez agregada la librería, vamos a realizar el código de conexión, el cual nos debe presentar una clase con 2 métodos que a mi parecer no deberían faltar. Debería existir una función(Las funciones retornan datos) que nos retorne un CachedRowSet que es algo similar al ResultSet que no podemos retornar mientras el Statement esté sin cerrar, pero es obvio que por seguridad deberemos tener todas las conexiones cerradas, por eso no retornamos directamente el  almacena todos los registros y podemos manipularla con las conexiones cerradaResultSet y hacerlo sin cerrar las conexiones sería de muy mala práctica. En cambio, el CachedRowSets, cosa que no podemos hacer con los ResultSets, ya que éstos necesitan al Statement Abierto, y el Statement a su vez necesita la conexión abierta. Por otro lado deberíamos tener un procedimiento(No retorna ningún dato), no retorna nada ya que se encargará de realizar operaciones unidireccionales.
En conclusión, usamos la Función cuando usemos Sentencias DML SELECT incluyendo las Funciones y usar el Procedimiento cuando usemos INSERT, DELETE O UPDATE, incluyendo los StoreProcedures(Procedimientos Almacenados); aunque podemos conocer algunas bases de datos que permitan retornar datos desde StoreProcedures, lo ideal seria hacerlo desde funciones, manteniendo cada uno para su propósito. Del mismo modo, habrán podido darse cuenta que ambos métodos reciben una variable String como parámetro, ésta es nada menos que la Sentencia DML que deseamos ejecutar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package beastieux.gui;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
/**
 *
 * @author beastieux
 */
public class Ejm12_ConectarDataBase {
    public CachedRowSet Function(String sql)
    {
            try
            {
                    Class.forName("Driver");
                    String url = "jdbc:motor:servidor:puerto/basededatos";
                    Connection con = DriverManager.getConnection(url, "usuario","contraseña");
                    Statement s = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                                      ResultSet.CONCUR_READ_ONLY);
                    ResultSet rs= s.executeQuery(sql);
                    CachedRowSet crs = new CachedRowSetImpl();
                    crs.populate(rs);
                    rs.close();
                    s.close();
                    con.close();
                    return crs;
            }
            catch(Exception e)
            {
                   System.out.println(e.getMessage());
            }
            return null;
    }
    public void StoreProcedure(String sql)
    {
            try
            {
                    Class.forName("Driver");
                    String url = "jdbc:motor:servidor:puerto/basededatos";
                    Connection con = DriverManager.getConnection(url, "usuario","contraseña");
                    Statement s = con.createStatement();
                    s.execute(sql);
                    s.close();
                    con.close();
            }
            catch(Exception e)
            {
                   System.out.println(e.getMessage());
            }
    }
}
Como habrán podido apreciar en el código, el manejo de excepciones es relativamente sencilla, lo ideal sería especificar las excepciones por cada conexion, statement y resultset para de esa manera asegurarnos que permanezcan cerradas al finalizar la ejecución o aun cuando existieran errores; de igual manera sería muy útil obligar a cerrar las conexiones desde dentro de una clausula finally anexada al try – catch.
Por último la url de conexión “jdbc:motor:servidor:puerto/basededatos”, variará a continuación de jdbc, según el motor de base de datos al que deseemos conectarnos (PostgreSQL, MySQL, Oracle, Derby, etc) , la dirección IP del servidor, el puerto y finalmente el nombre de la base de datos al que queramos acceder.
En los próximos posts se presentará las conexiones a las diversas bases de datos y la explicación de como usar la clase creada.

RESUMEN


Configuración de conexión BD con NetBeans. Primero necesitamos tener instalado en nuestra PC el Netbeans, java y MySQL por supuesto. · Descargar el MySQL Java Conector, descomprimirlo y ubicarlo en una carpeta de fácil acceso. · Ahora vamos al Netbeans y creamos un nuevo proyecto, le ponemos un nombre y seleccionamos para crear la clase principal por defecto. · 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. String url = " jdbc:mysql://localhost:3306/myjavaapp1 " ; String user = " root " ; La variable url equivale a la ubicacion del servidor de la base de datos, en este caso en localhost en el puerto 3306 y despues una diagonal separando el nombre de la base de datos. El codigo SQL de la base de datos en cuestión es el siguiente. create table user ( JDBC es usado para enviar comandos SQL hacia una base de datos relacional, que puede ser Oracle, Infomix, SyBase, etc. Una integración de SQL hacia Java, es decir que las sentencias SQL se puedan mezclar con Java, por ejemplo, que una variable de Java pueda ser usada en una sentencia SQL para recibir o dar valores. Los driver JDBC se clasifican en cuatro tipos o niveles : Tipo 1 : Puente JDBC - ODBC. Estas aplicaciones de ejemplo demuestran cómo conectarse a una base de datos de SQL Server. Trabajar con tipos de datos ( JDBC ) Estas aplicaciones de ejemplo demuestran cómo usar los métodos de tipos de datos del controlador JDBC para trabajar con los datos de una base de datos de SQL Server. Estas aplicaciones de ejemplo demuestran cómo usar los conjuntos de resultados para procesar los datos de una base de datos de SQL Server. Estas aplicaciones de ejemplo demuestran cómo usar el almacenamiento en búfer adaptable para recuperar datos de valores grandes de una base de datos de SQL Serversin la sobrecarga que suponen los cursores de servidor. Clasificación y detección de datos de SQL Esta aplicación de ejemplo muestra cómo recuperar información de clasificación y detección de datos contenida en un SQL Server base de datos d.


SUMMARY
Configuration of BD connection with NetBeans. First we need to have Netbeans, java and MySQL installed on our PC of course. · Download the MySQL Java Connector, unzip it and place it in an easily accessible folder. · Now we go to the Netbeans and create a new project, we put a name and select it to create the main class by default. · In the menu on the right of the Netbeans we look in the project tree, select the current project and go to the library folder, right click it and look for the MySQL Java Connector where we saved it in step 2, select the file . String url = "jdbc: mysql: // localhost: 3306 / myjavaapp1"; String user = "root"; The variable url is equivalent to the location of the database server, in this case localhost on port 3306 and then a diagonal separating the name of the database. The SQL code of the database in question is as follows. create table user (JDBC is used to send SQL commands to a relational database, which can be Oracle, Infomix, SyBase, etc. An integration of SQL to Java, that is, SQL statements can be mixed with Java, for example , that a Java variable can be used in an SQL statement to receive or give values ​​JDBC drivers are classified into four types or levels: Type 1: JDBC - ODBC Bridge These sample applications demonstrate how to connect to a database SQL Server: Working with Data Types (JDBC) These sample applications demonstrate how to use the data type methods of the JDBC driver to work with data from a SQL Server database. result sets to process data from a SQL Server database These sample applications demonstrate how to use adaptive buffering to retrieve data from large values ​​in a SQL database Serversin the overhead that server cursors pose. Classification and detection of SQL data This sample application shows how to retrieve classification information and data detection contained in a SQL Server database d.


RECOMENDACIONES:
·         Los gestores de bases de datos que realizan la recuperación y el almacenamiento físico de los datos a partir de solicitudes de la capa de negocio.
·         Se recomienda utilizar los JDBC  para enviar comandos SQL hacia una base de datos relacional, que puede ser Oracle, Infomix, SyBase, etc.
·   En general, no almacenes imágenes en la base de datos. 

CONCLUSIONES:
·         Se concluye que con esta investigación los estudiantes de sistemas conozcan acerca de las conexiones  que se puede utilizar para organizar un sistema.
·         Que las bases de datos forman el nucleó de las principales aplicaciones, sitio web y servicios corporativos. Que en todos los casos hay herramientas de gestión y control que permiten verificar su funcionamiento y eventualmente

APRECIACIÓN DEL EQUIPO


·         CRISTHEL DELGADO
 Que las bases de datos forman el nucleó de las principales aplicaciones, sitio web y servicios corporativos. Que en todos los casos hay herramientas de gestión y control que permiten verificar su funcionamiento y eventualmente corregirlo.

·         ESPINAL CRUZ
Que el propósito de una base de datos es responder a consultas y ejecutar transacciones de datos

GLOSARIO DE PALABRAS
  1.  Interfases:En informática, se utiliza para nombrar a la conexión funcional entre dos sistemas, programas, dispositivos 
  2. Comandos: Es una instrucción u orden que el usuario proporciona a un sistema informático
  3. SQL:Es un lenguaje específico del dominio utilizado en programación; y diseñado para administrar sistemas de gestión de bases de datos relacionales.
  4. Driver:Son programas que sirven de intermediarios entre Windows (u otro sistema operativo) y los dispositivos o componentes de hardware del PC.
  5. Protocolo:Es un sistema de reglas que permiten que dos o más entidades de un sistema de comunicación 
  6. Oracle :es una compañía especializada en el desarrollo de soluciones de nube y locales.
  7. Servidores:Es una aplicación en ejecución (software) capaz de atender las peticiones de un cliente y devolverle una respuesta en concordancia.

LINKOGRAFIA:

https://evilnapsis.com/2016/03/29/conectar-una-base-de-datos-mysql-con-java-y-netbeans/
https://beastieux.com/2011/01/17/codigo-java-establecer-conexion-a-base-de-datos-con-jdbc/
https://users.dcc.uchile.cl/~lmateu/CC60H/Trabajos/jfernand/
https://www.ibm.com/support/knowledgecenter/es/ssw_ibm_i_61/rzaha/jdbctydr.htm
https://docs.microsoft.com/es-es/sql/connect/jdbc/sample-jdbc-driver-applications?view=sql-server-2017










Comentarios