viernes, 23 de septiembre de 2016

JAVA CON BASE DE DATOS

  1.     “AÑO DE CONSOLIDACIÓN DEL MAR DE GRAU”




ESCUELA PROFESIONAL DE:
INGENIERÍA DE SISTEMA Y TELEMÁTICA

·         ·         JAVA CON BASE DE DATOS

DOCENTE: MARCO AURELIO PORRO CHULLI.

ASIGNATURA: DESARROLLO DE SOFTWARE

NOMBRE DEL GRUPO: “JAVA”

INTEGRANTES:

PÉREZ SAUCEDO YORDIN ALBERTO
·         MALDONADO IDROGO BETZABETH YAMELI    

CICLO: V

GRUPO: “B”

AÑO: 2016

                         BAGUA GRANDE-UTCUBAMBA


l.      TEMA: JAVA CON BASE DE DATOS
     1.    Contenido
    - Definición
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

    - Objetos Connection, Statement y ResultSet
Una vez obtenida la conexión a la BD, podemos utilizarla para realizar consultas, inserción y/o borrado de datos de dicha BD. Todas estas operaciones se realizarán mediante lenguaje SQL. La clase Statement es la que permite realizar todas estas operaciones. La instanciación de esta clase se realiza haciendo uso del siguiente método que proporciona el objeto Connection:
1
 Statement stmt = con.createStatement();
Podemos dividir las sentencias SQL en dos grupos: las que actualizan la BD y las que únicamente la consultan. En las siguientes secciones veremos cómo podemos realizar estas dos acciones.
Para obtener datos almacenados en la BD podemos realizar una consulta SQL (query). Podemos ejecutar la consulta utilizando el objeto Statement, pero ahora haciendo uso del método executeQuery al que le pasaremos una cadena con la consulta SQL. Los datos resultantes nos los devolverá como un objetoResultSet.
    
      1 ResultSet result = stmt.executeQuery(query);
El objeto ResultSet dispone de un cursor que estará situado en el registro que podemos consultar en cada momento. Este cursor en un principio estará situado en una posición anterior al primer registro de la tabla. Podemos mover el cursor al siguiente registro con el método next del ResultSet. La llamada a este método nos devolverá true mientras pueda pasar al siguiente registro, y false en el caso de que ya estuviéramos en el último registro de la tabla.

El constructor de la clase ConsultaSQL recibe como parámetro un objeto de tipo Connection y otro de String; éste contendrá una sentencia SELECT; Statement es una interfaz que puede ejecutar sentencias en lenguaje SQL a través de una conexión; su método executeQuery()recibe la cadena SELECT y devuelve un objeto de tipo ResultSet, que contiene una imagen de los datos devueltos por el servidor MySQL en formato de tabla, es decir, filas y columnas; además los ResultSet tienen un apuntador o cursor que sirve para recorrer los registros de la tabla; el recorrido se hace con métodos como next(). No obstante, no toda la información necesaria está en los datos que ya se obtuvieron (por ejemplo, falta el nombre de las columnas); para obtener dicha información se usan los objetos del-tipo ResultSetMetaData.
En la clase que acabamos de escribir, hay dos métodos: getDatosDevueltos() ygetNombresColumnas() que darán la información solicitada con la consulta en dos arreglos, uno contiene la tabla y el otro la lista de los nombres de los atributos de dicha tabla. Con ellos se podrán mostrar los datos. 

    - Ejemplos
En el siguiente ejemplo, el código muestra establece varias propiedades de conexión en la URL de conexión y, a continuación, llama al método getConnection de la clase DriverManager para devolver un objeto SQLServerConnection.
Después, el código muestra usa el método createStatement del objeto-SQLServerConnection para crear un objeto SQLServerStatement y, a continuación, se llama al método executeQuery para ejecutar la instrucción SQL.

Finalmente, el ejemplo usa el objeto SQLServerResultSet devuelto por el método executeQuery para procesar una iteración mediante los resultados devueltos por la instrucción SQL.

import java.sql.*; 
 
public class connectURL { 
 
   public static void main(String[] args) { 
 
      // Create a variable for the connection string. 
      String connectionUrl = "jdbc:sqlserver://localhost:1433;" + 
         "databaseName=AdventureWorks;user=UserName;password=*****"; 
 
      // Declare the JDBC objects. 
      Connection con = null; 
      Statement stmt = null; 
      ResultSet rs = null; 
 
      try { 
         // Establish the connection. 
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
         con = DriverManager.getConnection(connectionUrl); 
 
         // Create and execute an SQL statement that returns some data. 
         String SQL = "SELECT TOP 10 * FROM Person.Contact"; 
         stmt = con.createStatement(); 
         rs = stmt.executeQuery(SQL); 
 
         // Iterate through the data in the result set and display it. 
         while (rs.next()) { 
            System.out.println(rs.getString(4) + " " + rs.getString(6)); 
         } 
      } 
 
      // Handle any errors that may have occurred. 
      catch (Exception e) { 
         e.printStackTrace(); 
     
      finally { 
         if (rs != null) try { rs.close(); } catch(Exception e) {} 
         if (stmt != null) try { stmt.close(); } catch(Exception e) {} 
         if (con != null) try { con.close(); } catch(Exception e) {} 
     
   } 
}

       2.    Resumen:
    · Definición: Es una API que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java.

      ·  Objetos Connection, Statement y ResultSet:
Statement stmt = con.createStatement();
Podemos dividir las sentencias SQL en dos grupos: las que actualizan la BD y las que únicamente la consultan
ResultSet result = stmt.executeQuery(query);
Dispone de un cursor que estará situado en el registro que podemos consultar en cada momento. Este cursor en un principio estará situado en una posición anterior al primer registro de la tabla

      3.    Summary

  · Definition: It is an API that allows the execution of operations on databases from      the Java programming language.

  ·  Objects Connection, Statement and ResultSet:
     Statement stmt = con.createStatement ();
  We can divide the SQL statements into two groups: those that update the  database   and that only consult
     ResultSet result = stmt.executeQuery (query);
  It has a cursor to be located on record that we can consult at all times. This cursor     initially will be located in a position above the first record in the table

     4.    Recomendaciones
    -En general, no almacenes imágenes en la base de datos. Sólo referencias a la ruta en la que se encuentran y metadatos para identificarlas. No nos engañemos, las bases de datos crecen y crecen y las imágenes  siguen aumentando en tamaño a su propio ritmo. Si mantienes sólo las referencias al almacén de imágenes,  la base de datos estará en forma para  devolverte los procesos mas rápidamente.
 -Usar al máximo sentencias de base de datos precompiladas a través de la clase PreparedStatement cuando ejecute sentencias SQL. Esto evita que la base de datos compile varias veces la misma consulta y agiliza le ejecución de la sentencia.
 -Evite el uso de colecciones sincronizadas como Hashtable o Vector, estas implementaciones tienen todos sus métodos sincronizados lo que implica que generan bloqueos incluso para las operaciones de lectura. En vez de ello utilice implementaciones más sofisticadas como ConcurrentHashMap o CopyOnWriteArrayList que sólo bloquean las operaciones que modifiquen el contenido del objeto.

    5.    Conclusiones:

   -Al culminar este trabajo, pude constatar que, la implementación de bases de datos distribuidas resulta importante ya que se puede distribuir y replicar en diferentes sitios cuando ciertos sitios locales tienen capacidades de almacenamiento y procesamiento limitadas, pero tienen la ventaja de poder integrarse a otros sitios remotos con mejores recursos por medio de una red de comunicación.
  -Como resultado, se ha desarrollado la API javagroups.sql, un nuevo conjunto de clases e interfaces que ofrecen al usuario la posibilidad de convertir una aplicación centralizada de acceso a bases de datos en una aplicación distribuida y tolerante a fallos. Dado que esta nueva librería mantiene la interfaz ofrecida por la API JDBC (java.sql), el usuario podrá incorporar la nueva funcionalidad a sus aplicaciones sin necesidad de realizar grandes modificaciones al código
   -A medida que se fue avanzando el desarrollo del trabajo se puede dar una visión global de las características que conlleva el diseño de una base de datos distribuida.
  -En este documento indicamos la localización del dato, la replicación y tipos fragmentación, con el fin de dar al lector interesado en las bases distribuidas, un punto de referencia de los temas actuales.

      6.    Apreciación del Equipo
         La conexión Java a una base de datos nos permite aprender el entorno del elemento           JDBC y conocer nuevas formas de acceder a una base de datos.  

    7.    Glosario de Términos
     API: Una API (siglas de 'Application Programming Interface') es un conjunto de reglas (código) y especificaciones que las aplicaciones pueden seguir para comunicarse entre ellas: sirviendo de interfaz entre programas diferentes de la misma manera en que la interfaz de usuario facilita la interacción humano-software.

SQL: (Structured Query Language) es un lenguaje de programación estándar e interactivo para la obtención de información desde una base de datos y para actualizarla. Aunque SQL es a la vez un ANSI y una norma ISO, muchos productos de bases de datos soportan SQL con extensiones propietarias al lenguaje estándar.

    QUERY: Este aviso fue puesto el 21 de octubre de 2014. Query string o, en español, cadena de consulta es un término informático que se utiliza para hacer referencia a una interacción con una base de datos. Es la parte de una URL que contiene los datos que deben pasar a aplicaciones web como los programas CGI.

    8.    Linkografía








jueves, 15 de septiembre de 2016

CONEXIÓN A BASE DE DATOS CON JAVA

“AÑO DE CANSOLIDACIÓN DEL MAR DE GRAU” 


(JAVA DATABASE CONNECTIVITY), CONECTIVIDAD DE BASES DE DATOS JAVA.

ESCUELA PROFESIONAL DE:

INGENIERÍA DE SISTEMA Y TELEMÁTICA
·         JAVA

DOCENTE: MARCO AURELIO PORRO CHULLI.

ASISGNATURA: DESARROLLO DE SOFTWARE

NOMBRE DEL GRUPO: “JAVA”

INTEGRANTES:
 PÉREZ SAUCEDO YORDIN ALBERTO
·         MALDONADO IDROGO BETZABETH YAMELI
CICLO: V

GRUPO: “B”

AÑO: 2016


                         BAGUA GRANDE-UTCUBAMBA





JDBC
1         1.    Contenido:
1.1.        Capa de Acceso de Datos, creación.
El API JDBC soporta dos modelos diferentes de acceso a bases de datos, modelos de dos y tres capas.
MODELO DE DOS CAPAS

Esto significa que el driver JDBC específico para conectarse con la base de datos, debe residir en el sistema local. La base de datos puede estar en cualquier otra máquina y se accede a ella mediante la red. Ésta es la configuración típica Cliente/Servidor: El programa cliente envía instrucciones SQL  a la base de datos, ésta los procesa y envía los resultados de vuelta a la aplicación.
MODELO DE TRES CAPAS
En este modelo de acceso a las bases de datos, las instrucciones son enviadas a una capa intermedia entre el cliente y el Servidor, que es la que se encarga de enviar las sentencias SQL a la base de datos y recoger el resultado desde la base de datos. En este caso el usuario no tiene contacto directo, ni a través de la red, con la máquina donde reside la base de datos.













Este modelo se basa en que la conexión entre la aplicación Java o el Applet que se ejecuta en el navegador, se conectan directamente a la Base de Datos.





1.2.        Configuración de conexión BD con NetBeans



Le asignamos un nombre al proyecto y damos click en “next” nuevamente. 











           Seleccionamos el servidor GlassFish Server 3.1 y damos click en “next”


















En la siguiente ventana solo damos clik en "finish"


      Abrimos del proyecto creado el archivo index.jsp en donde le cambiaremos en la etiqueta <title> por nuestro titulo, en este caso IFPWAFCAD pagina de inicio


  














         Al archivo index.jsp le agregamos el siguiente código. En donde se especifica el archivo response.jsp el cual se creara en el proyecto. 






















           Podemos correr el archivo que llevamos hasta ahora corriéndolo, dándole click derecho donde está el nombre del proyecto y después en “run”, donde se visualizara lo siguiente 





Ahora procedemos a crear el archivo response.jsp, para ello damos click derecho en el nombre del proyecto -> new -> JSP 



El archivo response.jsp se encontrara en el mismo directorio que el archivo index.jsp, como se muestra en la siguiente imagen.


Se abre el archivo response.jsp y se le cambia la etiqueta <title> por  IFPWAFCAD - {placeholder} y a la etiqueta <body> se le agrega el siguiente código:



Ahora visualizaremos la página en nuestro navegador, dando click derecho al archivo response.jsp y en “Run” y se vera de la siguiente forma:





           Creación de la hoja de estilo

         Para la creación de la hoja de estilo agregamos un nuevo archivo al proyecto. Click derecho en el nombre del proyecto -> new -> Cascada Style Sheet (si no se encuentra ahí, se sigue la siguiente forma:  Click derecho en el nombre del proyecto -> new -> other -> Web -> Casacading Style Sheet) le asignamos el nombre style. El archivo se creara en el mismo directorio que index.jsp y response.jsp 


A continuación se le agregan los estilos de la siguiente forma:



      Se procede a ligar la hoja de estilos style.css a las páginas index.jsp y response.jsp colocando la siguiente línea de código entre la etiqueta <head>
      <link rel="stylesheet" type="text/css" href="style.css">

         CONFIGURAR MySQL

         Para configurar el MySQL en Netbeans nos vamos a Services -> DataBases -> Drivers 


Damos click derecho a MySQL (Connector/J driver) -> Connect using
Y se abrirá la siguiente ventana:


Después se selecciona el connector previamente descargado (ANEXO 1.2) 
En el campo Host ingresamos localhost y en Port 3306, en Database mysql. En User Name root y tecleamos la clave en el campo Password. Damos click en Next.

Se visualizará lo siguiente: 



                     Ahora procedemos a conectar el servidor MySQL dando click derecho -> connect


Ahora expandimos el servidor MySQL y vemos las bases de datos disponibles


Ahora podemos crear bases de datos usando el editor SQL. Nuestra base de datos se llamara MiPrimeraBaseDatos  

En la ventana de servicios, se da click derecho en el servidor MySQL -> Create Database


Ahora expandimos la conexión  de nuestra Base de Datos, donde hay tres subcarpetas: Tables, Views y Procedures.

 1.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.
Qué hace JDBC?
           - Establece una conexión con una BD
           - Envía sentencias SQL
            -Procesa los resultados

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



JDBC es una API de bajo nivel para API´s de alto nivel
             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.
          Un mapeo directo de las tablas de la BD hacia las clases de Java, donde cala fila de la tabla se convierte en una instancia de la clase, y donde cada columna se corresponde a un atributo de esa instancia.
JDBC v/s ODBC y otras API´s
          ODBC no es apropiado para usar directamente con Java por que usa una interfaz en C.
          Una traducción literal de la API ODBC en C, no es deseable. Por ejemplo Java no tiene punteros y la ODBC hace gran uso de ellos.
        ODBC es muy difícil de aprender, hace una mezcla de acciones simples y avanzadas.
      Una API como JDBC es necesario para poder desarrollar una solución “puramente de Java”

APLICACIÓN
        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

TIPO DE CONTROLADORES JDBC
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.

1.4.        Uso de JDBC en aplicaciones Java:
        JDBC (Java Database Connectivity) es un API de Java que nos permite conectarnos con bases de datos y realizar operaciones sobre ellas utilizando instrucciones SQL desde una aplicación Java. Con
        JDBC tenemos una interfaz para conectarnos con una base de datos sin tener que preocuparnos de si es una base de datos MySQl, Oracle, SQLServer o cualquier otro tipo de base de datos. El único cambio que habría que hacer para cambiar el tipo de base de datos de una aplicación sería cambiar el driver específico de la base de datos en cuestión.
           Para usar JDBC hay que seguir los siguientes pasos:

1.    Incluir el jar con el Driver de la base de datos: El primer paso es obtener el driver de la base de datos que vamos a utilizar, buscamos en google “MySQL jdbc driver”, “Oracle jdbc driver” o el que queramos y descargamos el jar y lo incluimos es nuestro proyecto. Para este ejemplo voy a usar MySQL.

2.    Cargar el driver: Ya tenemos el jar con el driver, pero hay que cargarlo para que se pueda hacer uso de el en nuestra aplicación. En nuestro caso como vamos a usar MySQL la instrucción es la siguiente y como puede lanzar una excepción pues se mete dentro de un try-catch.
     
3.   Establecer una conexión con la base de datos: El siguiente paso es establecer una conexión con la base de datos. Hay dos opciones para obtener una conexión la primera es crear una nueva conexión con la base de datos que será la que veremos en este ejemplo y la otra es obtener la conexión de un pool de conexiones creado previamente que es una opción más eficiente porque no hace falta estar abriendo y cerrando conexiones continuamente ya que simplemente se cogen las conexiones de pool cuando se necesitan y se dejan en el pool cuando ya no se necesitan para que puedan volver a usarse.

4.  Realizar una consulta: Una vez obtenida la conexión ya podemos hacer consultas a la base de datos. Hay tres métodos para ejecutar una consulta de tipo Statement que es una consulta normal, PreparedStatement con la que se puede crear una consulta que se precompila en la base de datos y como es de esperar se pueden establecer los distintos datos porque aunque la estructura de la consulta será la misma lo lógico es que los datos de la consulta sean distintos y finalmente están las CallableStatements que sirven para ejecutar procedimientos almacenados.
         Como se puede ver el primer paso es crear un statement sobre el que luego podemos hacer las consultas que queramos, una vez creado para hacer nuestra consulta tenemos los métodos execute (para hacer cualquier consulta, pero su valor de devolución es boolean y devuelve true si lo que devuelve es un resulset y falso en caso contrario), exeteQuery (para hacer select) y executeUpdate (para hacer insert, update y delate). Y finalmente si se ejecuta una query podemos obtener el resultado mediante ResultSet, para obtener los valores de las columnas resulset tiene un get para cada tipo de datos que se puede llamar pasándole como parámetro el nombre de la columna de base de datos o el número de la columna según se prefiera.

         Como se puede ver el código para hacer una consulta no es muy complicado pero es muy propenso a errores porque hay que estar creando cadenas de texto concatenadas con variables java y hay que recordar que si el dato es de tipo texto hay que anidar comillas y entre unas cosas y otras es fácil cometer algún error. Para facilitar el trabajo con bases de datos hay alternativas a trabajar directamente con JDBC como JPA o Hibernate, pero estamos hablando de JDBC…

     Si usamos PreparedStatement además de que son más eficientes nos facilitan la tarea de escribir las consultas SQL porque en lugar de tener que estar concatenando las distintas variables con el código SQL, lo que se hace es sustituir en este las variables por ? y posteriormente se introducen los datos concretos mediante setters. En el siguiente código puedes ver como se crean unas PreparedStatement.

5.    Cerrar la conexión: Después de hacer las consultas que se necesite se debe de cerrar la conexión para liberar los recursos, también se pueden cerrar el resulset y el statement de forma manual pero cerrando la conexión se cierran los otros dos porque están creados a partir de la conexión, del mismo modo al cerrar el statement también se liberan los recursos del resulset.

 1.5.        Ejemplos
          Ejemplos JDBC ( Lado Cliente ) 

Se asume que se tiene instalado una DBMS Oracle 8i (versión 8.1.6) y que se puede conectar usando el driver de JDBC.
Brevemente estos ejemplos muestran cómo conectarse a la Base de Datos y usar sentencias SQL simples como "select", "insert", "update" y "delete".

Algunos ejemplos simples:

driver_ver.java Despliega la versión del driver.
driver_check.java Chequea si corren los drivers correctamente.
tab_sel.java Select a una tabla.
tab_upd.java Modifica registros en una tabla.
tab_del.java Borra registros de una tabla.
tab_ins.java Inserta registros hacia una tabla.
tabprep_upd.java Como usar una sentencia de preparación con un "update". 


                            Otros ejemplos:

                            call_sp.java Llamado a un procedimiento de Oracle.
                            call_sf.java Llama a una función de Oracle.
                            excep_1.java Manejo de excepciones (1).
                            excep_2.java Manejo de excepciones (2).
                            meta_data1.java Meta-datos. Cómo manejar un "select *".
                            meta_data2.java Más métodos con meta-datos, cómo                                       obtener los nombres de los campos.
                            meta_data3.java Más métodos con meta-datos (*).
                            meta_data4.java Detalles sobre las palabras claves no                                       estándares de la BD.
                            meta_data5.java Cómo encontrar el largo máximo de un                                   nombre de un campo.
                            meta_data6.java Tipos de tablas permitidos.
                            tab_preupdtran.java Cómo setear una transacción.
                            tab_preupdrb.java Cómo ejecutar un "rollback"


2.    Resumen
          Definición de JDBC.
          JDBC es usado para enviar comandos SQL hacia una base de datos relacional, que puede ser Oracle, Infomix, SyBase, etc.
           ¿Qué hace JDBC?
             -        Establece una conexión con una BD
             -        Envía sentencias SQL
             -        Procesa los resultados
           JDBC es una API de bajo nivel para API´s de alto nivel
           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.

          JDBC v/s ODBC y otras API´s
          ODBC no es apropiado para usar directamente con Java por que usa una interfaz en C.
           Una traducción literal de la API ODBC en C, no es deseable. Por ejemplo Java no tiene punteros y la ODBC hace gran uso de ellos.
           ODBC es muy difícil de aprender, hace una mezcla de acciones simples y avanzadas.
           Una API como JDBC es necesario para poder desarrollar una solución “puramente de Java”

APLICACIÓN
           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.

TIPO DE CONTROLADORES JDBC
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.
           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 clientede tipo 2 son generalmente más rápidos que los controladores de tipo 1.
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

3.    Summary
           Defining JDBC.
           JDBC is used to send commands to a SQL relational database, which can be Oracle, Informix, Sybase, etc.
           What makes JDBC?
§  Establishes a connection to a DB.
§  Send SQL statements.
§  Process the results
JDBC is a low-level API for high-level APIs
Integration of SQL to Java, meaning that SQL statements can be mixed with Java, for example, a Java variable can be used in an SQL statement to receive or give values.

JDBC v / s ODBC and other APIs
ODBC is not suitable for use directly by using a Java interface C.
A literal translation of the ODBC API in C, is not desirable. For example Java has no pointers, and ODBC makes great use of them.
ODBC is hard to learn, makes a mixture of simple and advanced actions.
An API like JDBC is needed to develop a solution "pure Java"

APPLICATION
The database which is going to work is called arg_musiteca and is on the server Aragorn (aragorn.elo.utfsm.cl). The database is hosted on a MySQL server.

DRIVER TYPE JDBC
Type 1
           Type 1 drivers are "bridge" drivers. They use other technology, such as ODBC (Open Database Connectivity), to communicate with the database.
Type 2
           Type 2 drivers use a native API to communicate with a database system. Java native methods are used to invoke the API functions that perform database operations
 Type 3
           These controllers use a network protocol and middleware to communicate with a server. Then, the server converts the protocol calls DBMS DBMS specific function.
           Type 3 drivers are the most flexible JDBC solution because they do not require any native binary code in type 2 clientede are generally faster than Type 1 drivers.
Type 4
           The type 4 driver uses Java to implement a network protocol DBMS providers. Since protocols are generally property, DBMS providers are generally the only companies that provide a JDBC type 4 driver

4.    Recomendaciones
  •             El diseño y desarrollo de las nuevas aplicaciones conduce a la minimización del ingreso de datos por parte del usuario; además el lenguaje de desarrollo que se utiliza está orientado a facilitar la ejecución en cualquier Sistema Operativo, ya que se ajusta a los estándares reconocidos, que permite la flexibilidad de los cambios.
  •            Para que exista un enlace remoto con la Base de Datos, la aplicación no debe de conectarse directamente a la Base de Datos, sino que mediante los drivers JDBC - ODBC.
  •          La cuenta de Sitio Web, facilita el desarrollo de nuevas aplicaciones; por lo que los códigos fuentes de él, deberían estar al alcance de los alumnos, para motivar el desarrollo de nuevas Aplicaciones Webs. Con este fin, se mantiene un patrón establecido, tal como mantener un solo tipo de fondo (background), para evitar que exista demasiadas diferencias en cada aplicación.

5.    Conclusiones
           En este capítulo se menciona las apreciaciones más importantes de esta investigación de manera general, así como referencias únicamente a la configuración y conexión de una base de datos. También mostramos algunos ejemplos para facilitar su trabajo.


6.    Apreciación del Equipo
                       JDBC es un texto diseñado para adiestrar en el desarrollo de                           aplicaciones escritas en lenguaje Java y accedan a base a bases de                 datos a través de JDBC 2.0, así como dar a conocer todos los                           aspectos sintácticos del API JDBC 2.0.
7.    Glosario de Términos
- API: La interfaz de programación de aplicaciones, abreviada como API (del inglés: Application Programming Interface), es el conjunto de subrutinas, funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.
-APPLET: Un applet Java es un applet escrito en el lenguaje de programación Java. Losapplets de Java pueden ejecutarse en un navegador web utilizando la Java Virtual Machine (JVM), o en el AppletViewer de Sun.

- ODBC: Open DataBase Connectivity (ODBC) es un estándar de acceso a las bases de datos desarrollado por SQL Access Group (SAG) en 1992. El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué sistema de gestión de bases de datos (DBMS) almacene los datos.

- RDBMS: Un RDBMS es un Sistema Gestor de Bases de Datos Relacionales. Se trata de software capaz de producir, manipular y gestionar bases de datos de tipo relacional.

- JNI: Java Native Interface (JNI) es un framework de programación que permite que un programa escrito en Java ejecutado en la máquina virtual java (JVM) pueda interactuar con programas escritos en otros lenguajes como C, C++ y ensamblador.

- MIDDLEWARE: Es un software de computadora que conecta componentes de software o aplicaciones para que puedan intercambiar datos entre éstas. Es utilizado a menudo para soportar aplicaciones distribuidas. Esto incluye servidores web, servidores de aplicaciones, sistemas de gestión de contenido y herramientas similares.


8.    Linkografía
https://webap.wikispaces.com/file/view/reporte_Tutorial.pdf



DIAPOSITIVAS: http://es.slideshare.net/YordinAlbertoPrezSau/jdbc-66102101

VIDEO: JDBC