JDBC


CARRERA PROFESIONAL DEINGENIERIA DE SISTEMAS Y TELEMÁTICA

TEMA                                      :  JDBC

DOCENTE                               : PORRO CHULLI, Marco Aurelio

ASIGNATURA                         : Laboratorio Programación III

INTEGRANTES  :
üCHUQUIZUTA RAMOS, Marleni
üHERRERA SILVA, Carlos Jhonatan


Tema: JDBC
1.     Contenido
ü  Capa de Acceso de datos, creación.

Una capa de acceso a datos o DAL (del inglés data Access layer) en los programas informáticos, es una capa de un programa informático que proporciona acceso simplificado a los datos almacenados en el almacenamiento persistente de algún tipo, tal como una entidad-relación de base de datos. Este acrónimo se usa predominantemente en entornos Microsoft ASP.NET.
Por ejemplo, el DAL podría devolver una referencia al objeto (en términos de programación orientada a objetos) completo con sus atributos en lugar de un registro de campos de una tabla de la base de datos. Esto permite que los módulos del cliente (o usuario) se crearan con un mayor nivel de abstracción. Este tipo de modelo puede ser implementado mediante la creación de una clase de métodos de acceso a datos que hacen referencia directamente a un conjunto correspondiente de procedimientos almacenados de base de datos. Otra aplicación potencial podría recuperar o escribir registros hacia o desde un sistema de archivos. El DAL esconde esa complejidad del almacén de datos subyacente del mundo externo.
Por ejemplo, en lugar de utilizar comandos tales como insertar, eliminar y actualizar para acceder a una tabla específica en una base de datos, una clase y unos procedimientos almacenados se podrían crear en la base de datos. Los procedimientos se han llamado de un método dentro de la clase, lo que devolvería un objeto que contiene los valores solicitados. O bien los comandos inserción, eliminación y actualización podría ser ejecutado en funciones simples como registerUser o loginUser almacenada dentro de la capa de acceso a datos.
Además, los métodos de la lógica de negocio de una aplicación se pueden asignar a la capa de acceso a datos. Así, por ejemplo, en vez de hacer una consulta en una base de datos en busca de todos los usuarios de varias tablas de la aplicación puede llamar a un solo método de una DAL que abstrae las llamadas bases de datos.
Las aplicaciones que utilizan una capa de acceso a datos puede ser cualquiera de los servidores de base de datos dependiente o independiente. Si la capa de acceso a datos es compatible con varios tipos de bases de datos, la aplicación se vuelve capaz de utilizar lo que las bases de datos de la CHA pueden hablar. En cualquier circunstancia, que tiene una capa de acceso de datos proporciona una ubicación centralizada para todas las llamadas en la base de datos, y por lo tanto hace que sea más fácil de puerto de la aplicación a otros sistemas de bases de datos (suponiendo que el 100% de la interacción de base de datos se hace en la CHA para un dado aplicación).

ü  Configuración de conexión BD con NetBeans.
Conectar Java con SQL Server: una vez hayamos creado nuestra base de datos, seguramente necesitamos conectarla con una aplicación que realizaremos en un lenguaje de nuestra preferencia, si elegimos Java para conectar la base de datos debemos hacer lo siguientes pasos para conectarnos a la base de datos:




Para realizar la conexión con una base de datos MySQL visita: Conectar Java con MySQL.
Primero descargamos el controlador JDBC para SQL Server, nos dirigimos al siguiente enlace: descargar JDBC. Una vez ingresemos a la página indicada, tenemos dos versiones para descargar, una .exe y otro .tar.gz, ambos son iguales solo que el archivo .exe se extraerá automáticamente al darle doble clic. Una vez lo tengamos descargado, los descomprimimos y guardamos en una carpeta de nuestra preferencia. Creamos nuestra aplicación Java, en mi caso usaré el IDE Netbeans 8.x. Para conectarnos necesitaremos en siguiente código java:
try{
       String connectionUrl ="jdbc:sqlserver://;database=DB_Name;integratedSecurity=true;";
       conect = DriverManager.getConnection(connectionUrl);
       System.out.println ("Conectado.");
     }
     catch (SQLException ex)
     {
       System.out.println ("Error.");
     }
v  DB_Name: es el nombre de la base de datos a la que deseamos conectarnos, la cual hemos creado previamente con SQL Server.

v  integratedSecurity=true: establece que usaremos la autenticación integrada de Windows, si lo deseamos podemos conectarnos a la base de datos con el nombre y contraseña de un usuario válido.
Para que el código que acabamos de agregar funcione debemos añadir el JDBC que descargamos a nuestro proyecto java, hacemos lo siguiente:



Hecho esto solo nos falta un paso, debemos habilitar la DLL sqljdbc_auth que se encuentra en la carpeta auth/x86 o auth/x64 elegimos la opción que corresponda a nuestro sistema operativo.
Lo que debemos hacer es colocar esta DLL en la ruta del sistema para que pueda ser utilizada, hay varias formas para hacer esto pero la más rápida y sencilla es copiar la DLL y pegarla en el directorio raíz de nuestro proyecto. Otra opción para el proyecto pueda usar la DLL es agregar la ruta donde se encuentra la misma a la variable de entorno PATH. Para que esté listo todo debemos configurar SQL Server para que admita conexiones remotas, para ello ejecutamos el administrador de configuraciones de SQL Server, habilitamos TPC/IP y en las propiedades cambiamos el puerto a 1433, deshabilitamos los puertos dinámicos.



Con esto al ejecutar el programa veremos el mensaje: "conectado", si todo ha salido bien.

ü  Definición de JDBC. Tipos. Aplicaciones

§  Definición
JDBC es usado para enviar comandos SQL hacia una base de datos relacional, que puede ser Oracle, Infomix, SyBase, etc.

JDBC ofrece el paquete java.sql, en el que existen clases muy útiles para trabajar con bases de datos.

Connection con = DriverManager.getConnection ( "jdbc:odbc:wombat", "login", "password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1");
while (rs.next()) { int x = rs.getInt("a"); String s = rs.getString("b"); float f = rs.getFloat("c"); }

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 lenguaje 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 con cualquier tipo de tareas con la base de datos a las 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. JDBC ofrece el paquete java.sql, en el que existen clases muy útiles para trabajar con bases de datos.

§  Tipos
En este tema se definen los tipos de controladores JDBC (Java™ Database Connectivity). Los tipos de controladores se definen en categorías según la tecnología utilizada para conectarse a la base de datos. Los proveedores de controladores JDBC utilizan estos tipos para describir cómo operan sus productos. Algunos tipos de controladores JDBC son más adecuados que otros para algunas aplicaciones.

·         Tipo 1: Los controladores de tipo 1 son controladores "puente". Utilizan otra tecnología, como por ejemplo, ODBC (Open Database Connectivity), para comunicarse con la base de datos. Esto representa una ventaja, ya que existen controladores ODBC para muchas plataformas RDBMS (sistemas de gestión de bases de datos relacionales). Se emplea la interfaz Java nativa (JNI) para llamar a funciones ODBC desde el controlador JDBC. Un controlador de tipo 1 debe tener el controlador puente instalado y configurado para poder utilizar JDBC con él. Esto puede representar un grave inconveniente para una aplicación de producción. Los controladores de tipo 1 no pueden utilizarse en un applet, ya que los applets no pueden cargar código nativo.


·         Tipo 2: Los controladores de tipo 2 utilizan una API nativa para comunicarse con un sistema de base de datos. Se utilizan métodos Java nativos para invocar las funciones de API que realizan operaciones de base de datos. Los controladores de tipo 2 son generalmente más rápidos que los controladores de tipo 1. Los controladores de tipo 2 necesitan tener instalado y configurado código binario nativo para funcionar. Un controlador de tipo 2 siempre utiliza JNI. Los controladores de tipo 2 no pueden utilizarse en un applet, ya que los applets no pueden cargar código nativo. Un controlador JDBC de tipo 2 puede requerir la instalación de algún software de red DBMS (sistema de gestión de bases de datos). El controlador JDBC de Developer Kit para Java es de tipo 2.

·         Tipo 3: Estos controladores utilizan un protocolo de red y middleware para comunicarse con un servidor. A continuación, el servidor convierte el protocolo a llamadas de función DBMS específicas de DBMS. Los controladores de tipo 3 son la solución JDBC más flexible, ya que no requieren ningún código binario nativo en el cliente. Un controlador de tipo 3 no necesita ninguna instalación de cliente.


·         Tipo 4: El controlador de tipo 4 utiliza Java para implementar un protocolo de red de proveedores de DBMS. Puesto que los protocolos son generalmente de propiedad, los proveedores DBMS son generalmente las únicas empresas que suministran un controlador JDBC de tipo 4.

Los controladores de tipo 4 son todos ellos controladores Java. Esto significa que no existe ninguna instalación ni configuración de cliente. Sin embargo, un controlador de tipo 4 puede no ser adecuado para algunas aplicaciones si el protocolo subyacente no maneja adecuadamente cuestiones tales como la seguridad y la conectividad de red.

§  Aplicaciones
En esta sección se presentarán una serie de aplicaciones para ejemplificar los conceptos vistos en el presente trabajo. La base de datos con la cual se va a trabajar se llama arg_musiteca y se encuentra en el servidor Aragorn (aragorn.elo.utfsm.cl). La base de datos se encuentra alojada en un servidor MySQL.
Para poder usar el driver se debe configurar la variable de entorno CLASSPATH de la siguiente forma export CLASSPATH=$HOME/directorio/mysql-connector-java.jar
·         TestConnection.java : Aplicación que permite comprobar si se puede establecer una conexión exitosa con la base de datos
·         Appl_01.java : Aplicación que permite visualizar las tablas existentes dentro de la base de datos.
·         Appl_02.java : Aplicación que visualiza los discos e intérpretes dentro de la base de datos.

·         Appl_03.java : Aplicación que permite crear una tabla con tres campos en la base de datos.

·         Appl_04.java : Aplicación que permite agregar nuevo registro a la nueva tabla creada anteriormente con Appl_03.java

ü  Uso de JDBC en aplicaciones java

·         Clase DriverManager
Permite establecer y gestionar conexiones a las BD

·         Clase SQL Permission
Proporciona los permisos para poder usar el DriverManager a código en ejecución dentro de un Security Manager (por ejemplo applets)

·         Interfaz Driver
Métodos para registrar y conectar controladores basados en tecnología JDBC

·         Clase DriverPropertyInfo
Propiedades de un controlador

INTERFAZ CON LA APLICACIÓN
Envío de instrucciones SQL a la BD

·         Connection
Métodos para crear instrucciones y para gestionar conexiones y sus propiedades

·         Statement
Permite enviar instrucciones a la BD

·         PreparedStatement
Permite usar instrucciones preparadas o SQL básicas

·         CallableStatement
Llamada a procedimientos almacenados en la BD

·         Savepoint
Puntos de recuperación en una transacción
Recuperación de los resultados de la consulta a la BD

·         ResultSet
Conjunto de resultados que se devuelven de una query

·         ResultSetMetaData
Información sobre las columnas del objeto ResultSet
Una conexión a bases de datos Java (JDBC) es un controlador de bases de datos que permite la conexión mediante programación a una base de datos. Debe utilizar la conexión como un puente entre la aplicación y la base de datos real. Visual J# incluye una implementación de JDBC sobre ODBC [puente JDBC-ODBC]. Este puente puede permitir a la aplicación conectarse con cualquier servidor de bases de datos que tenga instalado el controlador ODBC en el equipo cliente con Visual J#.
El primer paso establece un nombre de origen de datos (DSN) para administrar las credenciales de contraseña e identificador de usuario en la base de datos de Access denominada Northwind. El segundo paso utiliza el DSN y JdbcOdbcDriver para conectarse a la base de datos y devolver datos. El código denomina al controlador, Class.forName("com.ms.jdbc.odbc.JdbcOdbcDriver"), y genera una cadena de conexión que denomina al DSN con las credenciales de servidor y de autenticación, del siguiente modo: String url = "jdbc:odbc:vbuetools"; En el último ejemplo se ejecuta la consulta. Si se utiliza la instrucción while (rs.next()), el código recorre los conjuntos de resultados y obtiene los datos. Una vez imprimidos los datos en la consola, la instrucción con.close () cierra el conjunto de registros así como la conexión con la base de datos.

Para establecer un nombre de origen de datos

1)    Haga clic en Inicio, elija Panel de control, seleccione Herramientas administrativas y, a continuación, haga clic en Orígenes de datos (ODBC).
2)    En la pantalla Herramientas administrativas, seleccione Orígenes de datos.
3)    En la página Administrador de orígenes de datos ODBC, haga clic en la ficha DSN de sistema y haga clic en Agregar.
4)    En la página Crear nuevo origen de datos, seleccione Controlador de Microsoft Access (*.mdb) y haga clic en Finalizar.
5)    Esto indica el tipo de base de datos. En las aplicaciones propias, asegúrese de elegir el controlador que coincida con la base de datos. En el caso de SQL Server, desplácese por la lista y elija el controlador correspondiente a la versión de SQL Server.
6)    En la página Configuración de Microsoft Access ODBC, en el cuadro Nombre de origen de datos, escriba JDBCdsn y haga clic en Seleccionar.
7)    Seleccione Northwind.mdb y haga clic en Aceptar.
8)    En la página Configuración de DSN de Microsoft SQL Server, haga clic en Con autenticación de Windows NT mediante el id. de inicio de sesión en red.
9)    Esta opción permite el acceso a los datos utilizando el identificador de usuario y la contraseña de NT.
10) Haga clic en Siguiente.
11) Compruebe la conexión y haga clic en Aceptar.
12) La Herramienta administrativa de ODBC almacena el nombre del servidor y las credenciales en el archivo binario JDBCdsn.dsn. En tiempo de ejecución, el código de J# obtiene acceso a esta información para establecer conexión con la base de datos.

Para obtener acceso a los datos

1)    En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto.
2)    Haga clic en Aplicación de consola y escriba JDBC2 en el cuadro Nombre.
3)    Reemplace el contenido de Program.jsl por el código siguiente:

import java.*;
import java.sql.*;
import java.util.*;
import com.ms.jdbc.odbc.JdbcOdbcDriver;
public class Connect{

    private java.sql.Connection  con = null;
    private ResultSet rs;
   
     // Constructor:
     public Connect(){}

    private void FindEmployee() throws SQLException, ClassNotFoundException
    {
        try
        {
            Class.forName ("com.ms.jdbc.odbc.JdbcOdbcDriver");
            String url = "jdbc:odbc:JDBCdsn";
            con = DriverManager.getConnection(url, "", "");
            Statement stmt = con.createStatement ();
            rs = stmt.executeQuery("Select EmployeeID, LastName,  Title from Employees");
            while (rs.next())
            {
                //Column names:
                System.out.println(rs.getInt("EmployeeID") + " " + rs.getString("LastName") + " " + rs.getString("Title"));
            }
            if(con != null)
                con.close();
            con = null;
        }
        catch (SQLException ex)
        {
            throw ex;
        }
        catch (ClassNotFoundException clex)
        {
            throw clex;
        }
    }

     private void closeConnection(){
          try{
               if(con != null)
                    con.close();
               con = null;
          }catch(Exception ex){
               ex.printStackTrace();
          }
     }
  
     public static void main(String[] args) throws Exception
       {
          Connect myDbTest = new Connect();
          try
          {
              myDbTest.FindEmployee();
          }
          catch (Exception ex)
          {
            ex.printStackTrace();
            System.out.println("Error Trace in getConnection() : " + ex.getMessage());
        
}    
}
}
ü  Ejemplos
Cuando una aplicación Java necesita una conexión de base de datos, uno de los métodos DriverManager.getConnection () se utiliza para crear una conexión JDBC. La URL utilizada depende de la base de datos particular y del controlador JDBC. Siempre comenzará con el protocolo "jdbc:", pero el resto dependerá del proveedor en particular.
Connection conn = DriverManager.getConnection(
     "jdbc:somejdbcvendor:other data needed by some jdbc vendor",
     "myLogin",
     "myPassword" );
try {
     /* you use the connection here */
} finally {
    //It's important to close the connection when you are done with it
    try { conn.close(); } catch (Throwable e) { /* Propagate the original exception
instead of this one that you want just logged */ logger.warn("Could not close JDBC Connection",e); }
}

A partir de Java SE 7 puede usar la declaración try-with-resources de Java para limpiar el código anterior:
Una vez que se establece una conexión, se puede crear una declaración.
try (Statement stmt = conn.createStatement()) {
    stmt.executeUpdate( "INSERT INTO MyTable( name ) VALUES ( 'my name' ) " );
}
Tenga en cuenta que Connections, Statements y ResultSets a menudo vinculan los recursos del sistema operativo, como sockets o descriptores de archivos. En el caso de las conexiones a servidores de bases de datos remotas, se atan recursos adicionales en el servidor, por ejemplo, cursores para los ResultSets actualmente abiertos. Es vital cerrar () cualquier objeto JDBC tan pronto como haya jugado su parte; no se debe confiar en la recolección de basura. La construcción de try-with-resources anterior es un patrón de código que evita esto.

Los datos se recuperan de la base de datos utilizando un mecanismo de consulta de base de datos. El ejemplo a continuación muestra la creación de una instrucción y la ejecución de una consulta.
try (Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery( "SELECT * FROM MyTable" )
) {
    while ( rs.next() ) {
        int numColumns = rs.getMetaData().getColumnCount();
        for ( int i = 1 ; i <= numColumns ; i++ ) {
           // Column numbers start at 1.
           // Also there are many methods on the result set to return
           //  the column as a particular type. Refer to the Sun documentation
           //  for the list of valid conversions.
           System.out.println( "COLUMN " + i + " = " + rs.getObject(i) );
        }
    }
}

Crear una tabla e insertar datos.
Crearemos la tabla contactos dentro de la base de datos prueba.
import java.sql.*;
public class EjemploAccesoBD2 {
    public static void main(String[] args) {
        Connection conexion = null;
        try {
            // Cargar el driver
            Class.forName("com.mysql.jdbc.Driver");

            // Se obtiene una conexión con la base de datos.
    conexion = DriverManager.getConnection("jdbc:mysql://localhost/prueba", "root", "1daw");

            // Se crea un Statement, para realizar el query
            Statement s = conexion.createStatement();

            //se crea una tabla nueva
            s.executeUpdate("CREATE TABLE contacto (id INT AUTO_INCREMENT,
                                      PRIMARY KEY(id), nombre VARCHAR(20),
                                      apellidos VARCHAR(20), telefono VARCHAR(20))");

            //Los datos que vamos a insertar los tenemos en 3 arrays
            String nombres[] = {"Juan", "Pedro", "Antonio"};
            String apellidos[] = {"Gomez", "Lopez", "Alvarez"};
            String telefonos[] = {"987452154", "989654125", "985321478"};

            //se insertan datos en la tabla
            for (int i = 0; i < nombres.length; i++) {
                s.executeUpdate("INSERT INTO contacto (nombre, apellidos, telefono)
                     VALUES ('" + nombres[i] + "','" + apellidos[i] + "','" + telefonos[i] + "' )");
            }

            // Se realiza una consulta sobre la tabla contacto.
            ResultSet rs = s.executeQuery("select * from contacto");

            // Se recorre el ResultSet, mostrando por pantalla los resultados.
            while (rs.next()) {
                System.out.println(rs.getInt(1) + " " + rs.getString(2) + " " +
                                            rs.getString(3) + " " + rs.getString(4));
            }
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } catch (ClassNotFoundException e) {
            System.out.println(e.getMessage());
        } finally { // Se cierra la conexión con la base de datos.
            try {
                if (conexion != null) {
                    conexion.close();
                }
            } catch (SQLException ex) {
                System.out.println(ex.getMessage());
            }
        }
    }
}
En la instrucción:
s.executeUpdate("INSERT INTO contacto (nombre, apellidos, telefono)
                          VALUES ('" + nombres[i] + "','" + apellidos[i] + "','" + telefonos[i] + "' )");


2.    Resumen

JDBC
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 lenguaje SQL del modelo de base de datos que se utilice.
ü  Tipos
·         Tipo 1: Los controladores de tipo 1 son controladores "puente". Utilizan otra tecnología, como por ejemplo, ODBC (Open Database Connectivity), para comunicarse con la base de datos.

·         Tipo 2: Los controladores de tipo 2 utilizan una API nativa para comunicarse con un sistema de base de datos. Se utilizan métodos Java nativos para invocar las funciones de API que realizan operaciones de base de datos.

·         Tipo 3: Estos controladores utilizan un protocolo de red y middleware para comunicarse con un servidor. A continuación, el servidor convierte el protocolo a llamadas de función DBMS específicas de DBMS.

·         Tipo 4: El controlador de tipo 4 utiliza Java para implementar un protocolo de red de proveedores de DBMS. Puesto que los protocolos son generalmente de propiedad, los proveedores DBMS son generalmente las únicas empresas que suministran un controlador JDBC de tipo 4.

ü  Uso de JDBC en aplicaciones java
·         Clase DriverManager
Permite establecer y gestionar conexiones a las BD

·         Clase SQL Permission
Proporciona los permisos para poder usar el DriverManager a código en ejecución dentro de un Security Manager (por ejemplo applets)

·         Interfaz Driver
Métodos para registrar y conectar controladores basados en tecnología JDBC

·         Clase DriverPropertyInfo
Propiedades de un controlador


3.    Summary

JDBC

JDBC, is an API that allows the execution of operations on databases from the Java programming language, independently of the operating system where it is executed or of the database to which it is accessed, using the SQL language of the base model of data that is used.
ü  Types
o   Type 1: Type 1 controllers are "bridge" controllers. They use other technology, such as ODBC (Open Database Connectivity), to communicate with the database.
o   Type 2: Type 2 drivers use a native API to communicate with a database system. Native Java methods are used to invoke the API functions that perform database operations.
o   Type 3: These controllers use a network protocol and middleware to communicate with a server. The server then converts the protocol to DBMS-specific DBMS function calls.
o   Type 4: The type 4 controller uses Java to implement a network protocol of DBMS providers. Since protocols are generally proprietary, DBMS providers are usually the only companies that supply a JDBC Type 4 driver.

Using JDBC in java applications

• DriverManager class
Allows to establish and manage connections to the BD
• SQL Permission class
Provides the permissions to be able to use the DriverManager to execute code inside a Security Manager (for example applets)
• Driver Interface
Methods to register and connect drivers based on JDBC technology
• Class DriverPropertyInfo
Properties of a controller

4.    Recomendaciones
*      Para obtener el mejor rendimiento posible, es necesario crear las aplicaciones de manera que aprovechen el potencial que puede ofrecer el controlador JDBC nativo. Las siguientes recomendaciones pretenden llevar a la práctica las mejores técnicas de programación JDBC: Evitar consultas SQL SELECT *: SELECT * FROM... es una forma muy habitual de establecer una consulta en SQL. Sin embargo, muchas veces no es necesario consultar todos los campos.
*      Evitar llamadas a getObject para tipos Java primitivos: Cuando de la base de datos se obtienen valores de tipos primitivos (int, long, float, etc.), es más rápido utilizar el método get específico del tipo primitivo (getInt, getLong, getFloat) que utilizar el método getObject.

5.    Conclusiones

*      En este tema vemos las facilidades que proporciona Spring para implementar nuestros objetos de la capa de acceso a datos. Veremos que nos permite simplificar el código, reduciendo el código repetitivo, y uniformizar el tratamiento independientemente de la implementación subyacente (JPA, JDBC ). Finalmente abordaremos la transaccionalidad, que es un aspecto íntimamente ligado con el acceso a datos, aunque su gestión no suele estar localizada en el código de los DAOs sino en la capa de negocio.
*      JDBC tiene la habilidad de Java para integrarse con DBMS comerciales y su naturaleza orientada al manejo de red, es posible crear un ambiente ideal tipo Cliente-Servidor. Al combinar Java con JDBC, se presentan nuevas expectativas para comunicarse con las bases de datos. Se puede entonces tener acceso de una maquina Cliente con tecnología Sun Microsystem a un servidor con tecnología Microsoft en donde se estará almacenada la base de datos a la cual el cliente desea accesar, por medio de Servlets.

6.    Apreciación del Equipo

*      JDBC permite que cualquier comando SQL pueda ser pasado al driver directamente, con lo que una aplicación Java puede hacer uso de toda la funcionalidad que provea el motor de Base de Datos, con el riesgo de que esto pueda producir errores o no en función del motor de Base de Datos.

*      Elija controlador adecuado para su aplicación: Hay cuatro tipos de controlador JDBC en java y puede afectar directamente al rendimiento de la capa DAO. Utilizar siempre el ultimo controlador JDBC si está disponible y prefieren Tipo 4 JDBC nativos.

7.    Glosario de Términos

·      Controlador: un controlador o driver es un programa informático que posibilita la interacción entre el sistema operativo de una computadora y un periférico o hardware. El controlador ofrece una interfaz que permite el uso del periférico. ... Por eso existen tantos controladores como periféricos.
·         API: Una API es un conjunto de funciones y procedimientos que cumplen una o muchas funciones con el fin de ser utilizadas por otro software. Las siglas API vienen del inglés Application Programming Interface.
·         Aplets: Un applet es un componente de una aplicación que se ejecuta en el contexto de otro programa, por ejemplo, en un navegador web.
·         Drivers: es un programa que controla un dispositivo. Cada dispositivo, ya sea una impresora, un teclado, etc., debe tener un programa controlador.
·         Servidor: es una aplicación en ejecución (software) capaz de atender las peticiones de un cliente y devolverle una respuesta en concordancia. Los servidores se pueden ejecutar en cualquier tipo de computadora, incluso en computadoras dedicadas a las cuales se les conoce individualmente como «el servidor».
·         Classpath: una opción admitida en la línea de órdenes o mediante variable de entorno que indica a la Máquina Virtual de Java dónde buscar paquetes y clases definidas por el usuario a la hora de ejecutar programas.
·         JAR: (por sus siglas en inglés, Java Archive) es un tipo de archivo que permite ejecutar aplicaciones escritas en el lenguaje Java.
·         DBMS: Sistema de administración de bases de datos. Software que controla la organización, almacenamiento, recuperación, seguridad e integridad de los datos en una base de datos. Acepta solicitudes de la aplicación y ordena al sistema operativo transferir los datos apropiados.

·         Host: es usado en informática para referirse a las computadoras conectadas a una red, que proveen y utilizan servicios de ella. Los usuarios deben utilizar anfitriones para tener acceso a la red.
·         Directorio del Sistema: es un contenedor virtual en el que se almacenan una agrupación de archivos informáticos y otros subdirectorios, atendiendo a su contenido, a su propósito o a cualquier criterio que decida el usuario. ... A partir de Windows 3.0, también se los denomina carpetas de archivos.
·         Conection pool: manejo de una colección de conexiones abiertas a una base de datos de manera que puedan ser reutilizadas al realizar múltiples consultas o actualizaciones.

8.    Bibliografía o Linkografia


9.    Link de SlideShare
https://www.slideshare.net/MarleniChuquizutaRam/jdbc-82253123

Comentarios