domingo, 25 de septiembre de 2016

JAVA CON BASE DE DATOS



DESARROLLO DE SOFTWARE I




1 1.   JAVA CON BASE DE DATOS

1 1.1  DEFINICIÓN

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.

1 1.2  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. 
Crear conexión     
Las propiedades fundamentales para crear una conexión son:     
Name 
Es el nombre de la base de datos que queremos abrir. Si no se especifica se creará una base de datos EN MEMORIA.         
En Mysql si deseamos crear usuarios, cambiar privilegios, que afecten al gestor de base de datos deberemos acceder a la base de datos "mysql".         
Host 
Es la ubicación del servidor de base de datos. En muchas ocasiones será "localhost", pero puede ser también un nombre o una dirección IP. 
Login y Password  
Usuario y clave que definan al usuario que intenta crear la base. 
Type 
Indica el tipo de base de datos al que queremos acceder (mysql, sqlite,etc). 
Port 
El puerto por el que accederemos a la base de datos. En el caso de mysql el puerto por defecto es 3306. 


A continuación se presenta un ejemplo de la clase con su correspondiente método:


package ar.com.et3.lab8.ejercicio1.administrador;
import java.sql.Connection;
import java.sql.DriverManager;
/**
* @author Window8
 */
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);

    }     }


   Ø  Statement
Creada por el método createStatement().
Un objeto Statement se usa para enviar sentencias SQL simples.
La interfaz Statement nos suministra tres métodos diferentes para ejecutar sentencias SQL, executeQuery, executeUpdate y execute. El método a usar está determinado por el producto de la sentencia SQL.
. El método executeQuery está diseñado para sentencias que producen como resultado un único ResultSet tal como las sentencias SELECT.
 . El método executeUpdate se usa para ejecutar sentencias INSERT, UPDATE y DELETE así como sentencias SQL DDL (Data Definition Language) como CREATE TABLE o DROP TABLE.
El efecto de una sentencia INSERT, UPDATE y DELETE es una modificación de una o más columnas en cero o más filas de una tabla. El valor devuelto de executeUpdate es un entero que indica el número de filas que han sido afectadas (referidos como update count).
Para sentencias tales como CREATE TABLE o DROP TABLE, que no operan sobre filas, el valor devuelto por executeUpdate es siempre cero.

. El método execute se usa solamente para ejecutar sentencias que devuelven más de un Resultset, más que un update count o una combinación de ambos.

         // Define la conexión
        Connection laConexion = AdministradorDeConexiones.getConnection();      
        // Arma la consulta y la ejecuta
        String laConsulta = "SELECT * FROM alumnos";
        Statement stmtConsulta = laConexion.createStatement();
        ResultSet rs = stmtConsulta.executeQuery(laConsulta);      
        // Muestra los datos
        while( rs.next() )
   System.out.println( "ID: " + rs.getInt("alu_id") + " -- " + "Nombre: " +            rs.getString("alu_nombre") + " -- " + "Apellido: " + rs.getString("alu_apellido") );      
        // Cierra el Statement y la Connection
        stmtConsulta.close();
       laConexion.close();

        

   Ø  ResultSet

Es la representación en memoria de las tablas de la base de datos en disco, se puede entender como una tabla virtual, recordar que generalmente todos los procesos que se realicen con la tabla (insertar registros, eliminar registros, etc.) se realizarán realmente contra un ResultSet y no provocarán ningún cambio en la tabla física en disco, ResultSet tiene un conjunto de métodos muy útiles y muy usados para el proceso de los renglones de la tabla virtual.


// Declarando y creando objetos globales
Connection canal = null;
ResultSet tabla= null;
Statement instruccion=null;
String strcon = "jdbc:mysql://localhost/mibase?user=lauro&password=laurosoto";
// Abriendo canal o enlace en su propio try-catch
Try {
Class.forName ("com.mysql.jdbc.Driver").newInstance ( );
Canal=DriverManager.getConnection (strcon);
instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
} catch (java.lang.ClassNotFoundException e) { } catch (SQLException e) {};





   1.3 EJEMPLO

Import java.sql.*;
/**
ResultSetExample.java
**/
public class ResultSetExample {
public static void main(java.lang.String[] args)                       
{
if (args.length != 2) {
System.out.println("Uso:  java ResultSetExample <biblioteca> <tabla>");
System.out.println(" siendo <biblioteca> la biblioteca que contiene la <tabla>");
System.exit(0);}
Connection con = null;
Statement s = null;
 ResultSet rs = null;
ResultSetMetaData rsmd = null;
try {
// Obtener una conexión a base de datos y preparar una sentencia.
Class.forName("com.ibm.db2.jdbc.app.DB2Driver");
con = DriverManager.getConnection("jdbc:db2:*local");
s = con.createStatement();
rs = s.executeQuery("SELECT * FROM " + args[0] + "." + args[1]);
rsmd = rs.getMetaData();
int colCount = rsmd.getColumnCount();
int rowCount = 0;
while (rs.next()) {
rowCount++;
System.out.println("Datos para la fila " + rowCount);
for (int i = 1; i <= colCount; i++)
System.out.println("   Fila " + i + ": " + rs.getString(i));
}
} catch (Exception e) {
// Manejar los errores.
System.out.println("Tenemos un error... ");
e.printStackTrace();
} finally {
 // Asegurarse de limpiar siempre.  Si la conexión se cierra, la sentencia que hay debajo de ella también se cerrará.
if (con != null) {
try {
con.close();
} catch (SQLException e) {
System.out.println("Error grave: no se puede cerrar el objeto conexión");
     }
    }
  }
 }

}


   2.   RESUMEN
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. 
Está conformada por diversas clases e interfaces ubicadas en el paquete java.sql.
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente.
Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.
Entre los diferentes tipos de base de datos, podemos encontrar los siguientes:

  • MySql: es una base de datos con licencia GPL basada en un servidor. Se caracteriza por su rapidez. No es recomendable usar para grandes volúmenes de datos.
  • PostgreSql y Oracle: Son sistemas de base de datos poderosos. Administra muy bien grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre.
  • Access: Es una base de datos desarrollada por Microsoft. Esta base de datos, debe ser creada bajo el programa access, el cual crea un archivo .mdb con la estructura ya explicada.
  • Microsoft SQL Server: es una base de datos más potente que access desarrollada por Microsoft. Se utiliza para manejar grandes volúmenes de informaciones.

   3.   SUMMARY
JDBC stands for Java Database Connectivity, an API that allows the execution of operations on databases from the programming language JAVA, regardless of operating system you are running or the database which is accessed using the SQL language the móldelo database used.
It consists of various classes and interfaces located in the java.sql package.
A database is a "store" that allows us to store large amounts of information in an organized way so that we can then easily find and use.
Each database consists of one or more tables that stores a data set. Each table has one or more columns and rows. The columns bear a part of the information about each item you want to save in the table, each row of the table forms a record.
Among the different types of database, we can find the following:
• MySql: database is a GPL licensed based on a server. It is characterized by its speed. It is not recommended to use for large data volumes.
• PostgreSQL and Oracle database systems are powerful data. It manages fine large amounts of data, and are often used in intranets and large caliber systems.
Access: A database developed by Microsoft. This database must be created under the access program, which creates an .mdb file with the already explained structure.
Microsoft SQL Server: is a more powerful database access developed by Microsoft. It is used to handle large volumes of information.

   4.   RECOMENDACIONES
Los sistemas de bases de datos libres o gratuitos recomendados para su uso son:














Otras bases de datos que se requieren pagar para poder utilizarlas son:



















Se recomienda que a la hora de aprender a programar con bases de datos, una buena opción es aprender con Oracle y su lenguaje SQL, ya que Oracle facilita versiones de prueba (académicas o de estudio) gratuitas que pueden servir para aprender y es que una vez que hayamos aprendido con Oracle la adaptación a cualquier otra base de datos es relativamente sencilla.

Finalmente, indicar que antes de aprender programación con bases de datos, es conveniente conocer los fundamentos de programación (algoritmia) así como uno o varios lenguajes de programación.

   5.   CONCLUSIONES
Al finalizar este trabajo de investigación podemos concluir que:
El propósito de una base de datos es responder a consultas y ejecutar transacciones de datos, también se entiende que tiene una elevada capacidad y solidez para administrar la información sin fallos ni errores.
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éndose y volviéndolo más útil, y convirtiéndose así en uno de los gestores de bases de datos más utilizados a nivel mundial, junto a Oracle.
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.   APRECIACIONES 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.   LINKOGRAFÍA



















No hay comentarios.:

Publicar un comentario