viernes, 29 de septiembre de 2017

Java con Base de Datos


Laboratorio de Programación II – JAVA



I. Tema: Java con Base de  Datos




1. Contenido
 Definición
¿Que es JDBC?


  JDBC es el acrónimo de Java Database Connectivity, 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 lenguaje SQL del móldelo de base de datos que se utilice.

      Esta conformada por diversas clases e interfaces ubicadas en el paquete java.sql.

El driver JDBC (Java DataBase Connectivity) es el más básico de que dispone Java para acceder a la base de datos, las bases de datos que deseemos conectar deberán proveerse el driver JDBC en un empaquetado JAR para añadirlo a las librerías del proyecto.
La API JDBC es una parte integral de la plataforma Java, por lo tanto no es necesario descargar ningún paquete adicional para usarla.
JDBC provee una interfaz única, que independiza a las aplicaciones del motor de la base de datos.

Conectar tus aplicaciones Java a un servidor de bases de datos es imprescindible para la funcionalidad de una solución de Software. Al igual que Sql server y C#, Mysql y Java necesitan de una interfaz que proporcione las clases necesarias para gestionar una conexión.




La necesidad de una librería

      Al trabajar con JDBC resulta necesario agregar un jar al proyecto que contiene las clases necesarias que se utilizan para “dialogar” con un DBMS. Cada DBMS tiene su propio archivo jar. Estos archivos se pueden obtener de:
También es posible conseguir estos archivos jar en la página web correspondiente a cada DBMS, por ejemplo, en caso de usar DMBS Oracle es posible buscarlo en la página de Oracle: www.oracle.com. En nuestro caso vamos a usar el jar de MySQL, el MySQL connector y lo podemos descargar desde acá:
Dentro del zip que se descarga se encuentra el jar.


Add Library:

Add JAR/Folder:


 Objetos Connection, Statement y ResultSet

-Connection

 La clase connection proporciona un interfaz eficiente para el acceso a datos y metadatos de una base de datos. Conocer los recursos de gambas para acceso a base de datos es fundamental a la hora de obtener un código transparente al motor de base de datos que utilice la aplicación.


      Para poder trabajar con una base de datos, el punto de partida siempre es conseguir una conexión, es decir un objeto de tipo Connection (este objeto pertenece a una clase que implementa la interfaz Connection).


-Construcción de un Administrador de Conexiones


      Para poder obtener una conexión, una forma simple y comoda de trabajar es armar una clase llamada, por ejemplo, AdministradorDeConexiones, que contenga dentro de un método (obtenerConexion()) el código necesario para obtenerla.

 Statment


 El método createStatement() se utiliza para crear un objeto que modela a una sentencia SQL. Es un objeto del tipo de una clase que implementa la interfaz Statement, y provee la infraestructura para ejecutar sentencias SQL sobre una conexión con una base de datos.

      La forma de construir un objeto de este tipo es:
      
      Statement stmtConsulta = laconexion.createStatement();

ResultSet

El método executeQuery()


      El método executeQuery() se utiliza para ejecutar una sentencia SQL y obtener el resultado correspondiente dentro de un objeto del tipo ResulSet. Este objeto representa un conjunto de resultados que se obtienen como consecuencia de ejecutar la sentencia SQL del tipo SELECT a través de la conexión.
      La forma de generar un objeto de este tipo es:
      
      ResulSet rs = stmConsulta.executeQuery(laConsulta);



 Ejemplos
COMO CREAR UNA CONEXION: aqui ay unjemplo.


package ar.com.et3.lab8.ejercicio1.administrador;
import java.sql.Connection;
import java.sql.DriverManager;
/**
* @author Martin
 */
public abstract class AdministradorDeConexiones {   
    public AdministradorDeConexiones() {
    }
    public static Connection getConnection() throws Exception
    {
        // Establece el nombre del driver a utilizar
        String dbDriver = "com.mysql.jdbc.Driver";       
        // Establece la conexion a utilizar contra la base de datos
        String dbConnString = "jdbc:mysql://localhost/6to_ET3";       
        // Establece el usuario de la base de datos
        String dbUser = "root";       
        // Establece la contraseña de la base de datos
        String dbPassword = "";       
        // Establece el driver de conexión
        Class.forName(dbDriver).newInstance();       
        // Retorna la conexión
        return DriverManager.getConnection(dbConnString, dbUser, dbPassword);
    }        
}

UN EJEMPLO GENERAL:
 Usamos la Función cuando usemos Sentencias DML SELECT incluyendo las Funciones y usar el Procedimiento cuando usemos INSERT, DELETE O UPDATE.

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

2. Resumen
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.

3. Summary

 Is  an API that allows the execution of operations on databases from the Java programming language, regardless of the operating system where it is executed or the database to which it is accessed, using the SQL dialect of the database model that is used.

The JDBC API is presented as a collection of Java interfaces and methods of managing connection handlers to each specific database model. A connection handler to a particular database model is a set of classes that implement Java interfaces and that use the registration methods to declare the types of database locators (URLs) they can handle. To use a particular database, the user runs his program together with the appropriate connection library to the model of his database, and accesses it by establishing a connection; for this it provides the locator to the database and the specific connection parameters. From there you can perform any type of task with the database to which you have permission: query, update, creation, modification and deletion of tables, execution of stored procedures in the database, etc.


4. Recomendaciones
A diferencia de la optimización de una infraestructura, optimizar una aplicación consiste en revisar los detalles de implementación y aplicar un montón de pequeños cambios donde generalmente cada uno tiene un pequeño impacto sobre el consumo de recursos y/o tiempo de respuesta. En este proyecto no se trata el tema forma genérica, ni es una introducción sobre el proceso de búsqueda y corrección de bugs.
Se debe tener en cuenta la existencia de fragmentación más complejas y eficientes, ya sea las técnicas de fragmentación vertical que se basa en grafos, que genera en un solo paso fragmentos verticales.
 • Si una base de datos es demasiado grande, se debe hacer un rediseño de base de datos centralizada, para que esta sea una base de datos distribuida ya que se pueden almacenar los datos en localidades donde son utilizados con mayor frecuencia, de tal manera que la mayor parte de las operaciones sean sólo locales lo cual reduce el tráfico en la red.
5. Conclusiones

Durante la realización de este trabajo, aprendimos acerca del, lenguaje SQL, de los sistemas de gestión de bases de datos, y su importancia y utilidad a la hora de almacenar, clasificar y manejar información, de cualquier tipo.
Desde usuarios particulares, hasta grandes empresas, gozan de las ventajas que brindan los SGBD, desde clasificar la información según el criterio deseado por el usuario, modificar la información que contiene una base de datos, entre otras
MySQL ha sido un gestor de bases de datos muy útil desde que fue creado, y con el tiempo, nuevas funciones se le añadieron, expandiéndolo y volviéndolo mas útil, y convirtiéndose así en uno de los gestores de bases de datos mas utilizados a nivel mundial, junto a Oracle. Por otro lado, PostgreSQL es un SGBD continuamente modificado y actualizado por un grupo de desarrolladores a nivel mundial (PostgreSQL Global Development Group), también basado en el lenguaje SQL.
SQL significó un gran avance para este fin, almacenar y clasificar información, además de que gracias a su aparición, hoy en día existe una gran variedad de SGBD basados en el lenguaje SQL, como MySQL, PostgreSQL, Oracle, entre otros. Desde su estandarización, casi todos los programas que trabajan con bases de datos, utilizan este lenguaje, con diferentes variaciones y funciones, según el tipo de software y su objetivo.
6. Apreciación del Equipo


Durante la realización de este trabajo, aprendimos acerca del, lenguaje SQL, de los sistemas de gestión de bases de datos, y su importancia y utilidad a la hora de almacenar, clasificar y manejar información, de cualquier tipo.







7. Glosario de Términos
API: Una API nos permite implementar las funciones y procedimientos que engloba en nuestro proyecto sin la necesidad de programarlas de nuevo. En términos de programación, es una capa de abstracción.

GLP: Es la licencia más ampliamente usada en el mundo del software y garantiza a los usuarios finales (personas, organizaciones, compañías) la libertad de usar, estudiar, compartir (copiar) y modificar el software.

Cliente/Servidor: Modelo de aplicación en la que un equipo actúa como servidor y procesa las peticiones que llegan de los clientes. En SQL el ordenador en el que se ejecuta la aplicación es el servidor y los ordenadores con las aplicaciones que usan las bases de datos son los clientes. (Aunque también es posible que ambos estén en un mismo computador).

DBO: Siglas de Database Owner, se refiere al propietario de una base de datos, al usuario que la creó.

DDL: Data Definition Language, dentro del SQL es un vocabulario usado para crear y modificar la estructura de las tablas, ejemplos: CREATE, ALTER o DROP.

DML: Data Manipulation Language, igualmente dentro del SQL es un vocabulario usado para gestionar los datos, ejemplos: SELECT, INSERT, UPDATE.

HTML: Siglas de Hypertext Markup Language, lenguaje usado para realizar páginas web.

NULL: Valor que se muestra ante un valor desconocido en una base de datos.

SQL: Structured Query Language, lenguaje informático para el tratamiento de base de datos.


 XML: eXtensible Markup Language, lenguaje informático usado para almacenar datos, soporta acceso a base de datos. (Término relacionado XBRL).

8. Bibliografía o Linografía









LINK DE DIAPOSITIVAS CORRESPONDIENTES AL TEMA PUBLICADO EN SLIDESHARE:

DIAPOSITIVAS JAVA BASE DE DATOS


No hay comentarios:

Publicar un comentario

Android Estudio

"Año  del Diálogo y la Reconciliación Nacional" Integrantes Percy Zelada Rojas J oe Norbil Gonzales Rafael C...