sábado, 16 de diciembre de 2017

Ejecutables en NetBeants



UNIVERSIDAD POLITECNICA AMAZONICA




INGENIERÍA DE SISTEMAS Y TELEMÁTICAS


                       Docente         : Marco Aurelio Porro Chulli

                       Asignatura     :Lenguaje de Programación III.

                       Ciclo               : VII  "A"

                       Integrantes     : Vicente Wualdir Alberca Rojas

                                                  Yenny Isabel Cuello Morón







Ejecutables en NetBeans

1.  Contenido

Ø Definición

Archivo distribuible .JAR

               ¿Qué ES UN ARCHIVO JAR?

Un archivo JAR (por sus siglas en inglés, Java ARchive) es un tipo de archivo que permite ejecutar aplicaciones escritas en el lenguaje Java. Las siglas están deliberadamente escogidas para que coincidan con la palabra inglesa "jar" (tarro). Los archivos JAR están comprimidos con el formato ZIP y cambiada su extensión a .jar. Existen tres operaciones básicas con este tipo de archivos: ver contenido, comprimir y descomprimir.
En informática, un ejecutable o archivo ejecutable, es tradicionalmente un archivo binario, o como se le conoce habitualmente, cuyo contenido se interpreta por el ordenador como un programa.
Generalmente, contiene instrucciones en código máquina de un procesador en concreto, pero también puede contener bytecode que requiera un intérprete para ejecutarlo. Además, suele contener llamadas a funciones específicas de un sistema operativo (llamadas al sistema).
Dependiendo del tipo de instrucciones de que se traten, hablaremos de ejecutables portables (se pueden ejecutar en varias plataformas) y no portables (destinado a una plataforma concreta). Por ejemplo, un ejecutable Java es portable ya que utiliza un bytecode no asociado a un procesador en concreto.
Sin embargo en un sentido más general, un programa ejecutable no tiene por qué necesariamente contener código de máquina, sino que puede tener instrucciones a interpretar por otro programa. Este tipo de ejecutables son conocidos con el nombre de scripts.
Determinar si un archivo es ejecutable es sobre todo una cuestión de convención. Unos sistemas operativos se basan en la extensión de archivo (como la terminación .exe) y otros lo hacen leyendo los metadatos (como los bits de permiso de ejecución en Unix).
En la mayoría de los sistemas modernos, un archivo ejecutable contiene mucha información que no es parte del programa en sí: recursos como textos e imágenes, requisitos del entorno de ejecución, información simbólica y de depuración, u otra información que ayude al sistema operativo a ejecutar el programa.

Instrucciones:
·  Ver contenido$ jar -tvf archivo.jar
·  Comprimir$ jar -cvf archivo.jar archivo_1 archivo_2 archivo_3 ... archivo_n
·  Descomprimir$ jar -xvf archivos.jar

               ¿Cómo CREAR o generar UN ARCHIVO JAR?

A principios de cuenta es necesario saber que en Netbeans puedes crear un archivo .jar haciendo clic en clear and build y si existen librerías externas Netbeans las guardara en una carpeta lib. 

La carpeta lib estará contenida dentro de la carpeta dist, donde también estará el jar que hemos creado.

Una vez dicho esto conozco dos maneras de incluir las librerías para que nuestro archivo .jar se ejecute sin problemas.

1.   Agregar la carpeta lib en el directorio donde pondremos nuestro archivo .jar para cuando necesite alguna librería la tome de la carpeta lib.
2.   La segunda forma de incluir en un archivo .jar se describe a continuación.
Crear un archivo distribuible jar para poder usar las aplicaciones que haces en java no tiene mucha ciencia y si no quieres meterle nada especial y simplemente quieres que se ejecute el programita en cuestión con netbeans tienes que hacer lo siguiente:

Pasos



1.  Abre NetBeans



         
            2.  Abre el menú de “Project Properties” (propiedades de proyecto). Haz clic                      derecho en el nombre del proyecto del cual quieras generar un archivo JAR y                        selecciona “Properties” (propiedades) en el menú despegable.




3.  Marca la casilla que dice “Compress JAR file” (comprimir archivo JAR). En tu ventana de propiedades, observa la lista de categorías a la izquierda de la ventana. En la sección de “Build” (generar), verás la opción de “Packaging” (empaquetando), haz clic en ella. Marca la casilla llamada “Compress JAR file” que se ubica a la derecha.



4.  Confirma el cambio. Presiona “Aceptar” en la esquina inferior derecha.


5  

Genera tu proyecto. Hay varias formas para hacerlo, pero la manera más fácil es presionando el icono que tiene forma de un martillo y está al lado del menú desplegable para ejecutar la configuración.



6.  Ubica el archivo JAR. La ubicación más común en donde estaría el archivo es en Mis Documentos/NetBeansProjects (Windows) o en la carpeta Home/NetBeansProjects, en Ubuntu (Linux). En caso de que la carpeta no esté ahí, haz clic en el menú de “Help” (ayuda), selecciona “About” (acerca de) y busca en la sección de “Userdir” (directorio de usuario).



              7.   Aprende a ejecutarlo. Abre el símbolo del sistema o el terminal o crea un                            archivo batch que tenga la siguiente línea: -java jar "<nombre del archivo JAR>".


EJEMPLOS

Para generar un ejecutable desde el NetBeans es tan sencillo como ir al proyecto, botón derecho, seleccionarlo como proyecto principal. (Set as Main Project)



       Y luego vamos al proyecto con el botón derecho del ratón y le damos a Clean and Build






              Y nos saldrá una ventana de salida como esta.



Vamos luego a NetBeansProjects y dentro del proyecto debe haber una carpeta llamada dist, veremos nuestro ejecutable, .jar, si le damos doble click se nos ejecutara y si queremos llevarlos para otro Pc, tenemos que copiar todo el contenido de la carpeta dist.






2 .  Resumen
Un archivo JAR (por sus siglas en inglés, Java ARchive) es un tipo de archivo que permite ejecutar aplicaciones escritas en el lenguaje Java. Las siglas están deliberadamente escogidas para que coincidan con la palabra inglesa "jar" (tarro). Los archivos JAR están comprimidos con el formato ZIP y cambiada su extensión a .jar.

 ¿Cómo CREAR o generar UN ARCHIVO JAR?

A principios de cuenta es necesario saber que en Netbeans puedes crear un archivo .jar haciendo clic en clear and build y si existen librerías externas Netbeans las guardara en una carpeta lib. 

La carpeta lib estará contenida dentro de la carpeta dist, donde también estará el jar que hemos creado.

Una vez dicho esto conozco dos maneras de incluir las librerías para que nuestro archivo .jar se ejecute sin problemas.

1.  Agregar la carpeta lib en el directorio donde pondremos nuestro archivo .jar para cuando necesite alguna librería la tome de la carpeta lib.
2.    La segunda forma de incluir en un archivo .jar se describe a continuación.
·    Crear un archivo distribuible jar para poder usar las aplicaciones que haces en java no tiene mucha ciencia y si no quieres meterle nada especial y simplemente quieres que se ejecute el programita en cuestión con netbeans tienes que hacer los pasos respectivos.
3.  Summary

A JAR file (for its acronym in English, Java ARchive) is a type of file that allows you to run 
applications written in the Java language. The initials are deliberately chosen to match the 
English word "jar" (jar). The JAR files are compressed with the ZIP format and its extension 
changed to .jar.
 
 HOW TO CREATE OR GENERATE A JAR FILE?
 
At the beginning of the account it is necessary to know that in Netbeans you can 
create a .jar file by clicking on clear and build and if there are external libraries 
Netbeans will store them in a lib folder.
 
The lib folder will be contained within the dist folder, where the jar we have created 
will also be.
 
Having said that, I know two ways to include libraries so that our .jar file runs smoothly.
 
1. Add the lib folder in the directory where we will put our .jar file for when you need a
 library, take it from the lib folder.
2. The second way to include it in a .jar file is described below.
• Create a distribuible jar file to be able to use the applications that you do in java does 
not have much science and if you do not want to put anything special and you simply
 want to run the program in question with netbeans you have to do the respective steps.

4.  Recomendaciones
·   Es necesario que el archivo ejecutable de nuestro proyecto de netbeants se guarde en en la carpeta lib donde dentro de la carpeta dist para no tener dificultades al ejecutarlo.
·  Para ejecutar nuestro proyecto desde un ejecutable también es importante incluir las librerías necesarias para que nuestro archivo .jar se ejecute sin problemas y que tenga la extencion.jar.
5.  Conclusiones
·   Los archivos ejecutables permiten que un determinado sistema operativo pueda correr un programa sin necesitar el programa o la aplicación, estos son exclusivos para una familia de sistemas operativos o para un sistema operativo específico.
Todos los programas y procesos en general que se ejecutan en un sistema operativo son archivos ejecutables. 

6.  Apreciación del Equipo

·  Los archivos ejecutables son importantes porque se tratan del núcleo principal de una aplicación, con estos archivos se lanza la aplicación y un usuario puede así utilizarla.

    Cuando enviamos un ejecutable de algún proyecto por Gmail es necesario advertir al receptor que, para ejecutar el programa, es necesario que realice la misma operación y escriba de nuevo la extensión .exe, ya que para poder enviar este archivo es necesario renombrar el archivo y ponerlo con extensión exe.

7.  Glosario de Términos
Formato ZIP: Zip es un formato de compresión sin pérdida, muy utilizado para la compresión de datos como documentos, imágenes o programas.
Directorio: 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.
Menú despegable: Es el que se muestra al pasar el ratón por encima de un elemento. Suelen usarse en sitios con muchas páginas distribuidas en secciones y subsecciones, ya que esta es una manera rápida de acceder desde una página a cualquier otra del sitio
Ubuntu: Ubuntu es una distribución del sistema operativo GNU/Linux y que se distribuye como software libre, la cual durante un tiempo incluyó su propio entorno de escritorio denominado Unity, actualmente utiliza GNOME, como en sus orígenes
(Linux): Es un Sistema Operativo como MacOS, DOS o Windows. Es decir, Linux es el software necesario para que tu ordenador te permita utilizar programas como: editores de texto, juegos, navegadores de Internet, etc.
Userdir: Directorio de usuario
Archivo batch: Es un archivo de procesamiento por lotes. Se trata de archivos de texto sin formato, guardados con la extensión .BAT que contienen un conjunto de instrucciones MS-DOS. 
JAR(por sus siglas en inglés, Java ARchive):Es un tipo de archivo que permite ejecutar aplicaciones escritas en el lenguaje Java.
Librerías: Es un conjunto de implementaciones funcionales, codificadas en un lenguaje de programación, que ofrece una interfaz bien definida para la funcionalidad que se invoca.

8.  Linkografías



Aqui les dejo el link de las diapositivas del tema:






jueves, 16 de noviembre de 2017

JDBC





UNIVERSIDAD POLITECNICA AMAZONICA




INGENIERÍA DE SISTEMAS Y TELEMÁTICAS


                       Docente         : Marco Aurelio Porro Chulli

                       Asignatura     :Lenguaje de Programación III.

                       Ciclo               : VII  "A"

                       Integrantes     : Vicente Wualdir Alberca Rojas

                                                  Yenny Isabel Cuello Morón






JDBC



Ø Introducción

En el mundo de la informática hay numerosos estándares y lenguajes, la mayoría de los cuales son incapaces de comunicarse entre sí. Afortunadamente, algunos de ellos son verdaderos referentes cuyo conocimiento es vital para los programadores. El Structured Query Language o SQL, [2] [8] [10] [11] [17] se ha convertido en los últimos años en el método estándar de acceso a bases de datos. Se puede decir que cualquier Sistema de Gestión de Bases de Datos creado en los últimos años usa SQL. Esta es la principal virtud de SQL: es un lenguaje prácticamente universal dentro de las bases de datos.
Tener conocimientos de SQL es una necesidad para cualquier profesional de las tecnologías de la información (TI). A medida que el desarrollo de sitios web se hace más común entre personas sin conocimientos de programación, el tener una cierta noción de SQL se convierte en requisito indispensable para integrar datos en páginas HTML. No obstante, éste no es el único ámbito de SQL, puesto que la mayor parte de las aplicaciones de gestión que se desarrollan hoy en día acceden, en algún momento, a alguna base de datos utilizando sentencias SQL. La mayoría de los fabricantes ofrecen APIs nativas para acceder a sus bases de datos, sin embargo, el hecho de utilizar estas APIs, obliga a los programadores a adaptar cada programa a las características de un servidor determinado.
Para solventar este problema, Java introduce la API JDBC, [2] [11] [17] [24] compuesta por un conjunto de clases que unifican el acceso a las bases de datos. Gracias a la utilización de JDBC, un programa Java puede acceder a cualquier base de datos sin necesidad de modificar la aplicación. Sin embargo, para que esto sea posible es necesario que el fabricante ofrezca un driver que cumpla la especificación JDBC.


Ø Capa de Acceso de datos, creación.

Para la gente del mundo Windows, JDBC es para Java lo que ODBC es para Windows. Windows en general no sabe nada acerca de las bases de datos, pero define el estándar ODBC consistente en un conjunto de primitivas que cualquier driver o fuente ODBC debe ser capaz de entender y manipular. Los programadores que a su vez deseen escribir programas para manejar bases de datos genéricas en Windows utilizan las llamadas ODBC. Con JDBC ocurre exactamente lo mismo: JDBC es una especificación de un conjunto de clases y métodos de operación que permiten a cualquier programa Java acceder a sistemas de bases de datos de forma homogénea. Lógicamente, al igual que ODBC, la aplicación de Java debe tener acceso a un driver JDBC adecuado. Este driver es el que implementa la funcionalidad de todas las clases de acceso a datos y proporciona la comunicación entre el API JDBC y la base de datos real. La necesidad de JDBC, a pesar de la existencia de ODBC, viene dada porque ODBC es un interfaz escrito en lenguaje C, que, al no ser un lenguaje portable, haría que las aplicaciones Java también perdiesen la portabilidad. Y además, ODBC tiene el inconveniente de que se ha de instalar manualmente en cada máquina; al contrario que los drivers JDBC, que al estar escritos en Java son automáticamente instalables, portables y seguros.



Toda la conectividad de bases de datos de Java se basa en sentencias SQL, por lo que se hace imprescindible un conocimiento adecuado de SQL para realizar cualquier clase de operación de bases de datos. Aunque, afortunadamente, casi todos los entornos de desarrollo Java ofrecen componentes visuales que proporcionan una funcionalidad suficientemente potente sin necesidad de que sea necesario utilizar SQL, aunque para usar directamente el JDK se haga imprescindible. La especificación JDBC requiere que cualquier driver JDBC sea compatible con al menos el nivel «de entrada» de ANSI SQL 92 (ANSI SQL 92 Entry Level).
Acceso de JDBC a Bases de Datos

El API JDBC soporta dos modelos diferentes de acceso a Bases de Datos, los modelos de dos y tres capas.

Modelo de dos capas

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.



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. Esta es la configuración de típica Cliente/Servidor: el programa cliente envía instrucciones SQL a la base de datos, ésta las 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 Cliente y 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 presenta la ventaja de que el nivel intermedio mantiene en todo momento el control del tipo de operaciones que se realizan contra la base de datos, y además, está la ventaja adicional de que los drivers JDBC no tienen que residir en la máquina cliente, lo cual libera al usuario de la instalación de cualquier tipo de driver.


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


Conectar Java con SQL Server

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.");
}
view rawconect.java hosted with by GitHub
·         DB_Name es el nombre de la base de datos a la que deseamos conectarnos, la cual hemos creado previamente con SQL Server.
·         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:






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

Ø Definición de JDBC. Tipos. Aplicaciones

Definicion
JDBC (Java DataBase Connectivity) es un API de Java que permite al programador ejecutar instrucciones en lenguaje estándar de acceso a Bases de Datos, SQL (Structured Query Language, lenguaje estructurado de consultas), que es un lenguaje de muy alto nivel que permite crear, examinar, manipular y gestionar Bases de Datos relacionales. Para que una aplicación pueda hacer operaciones en una Base de Datos, ha de tener una conexión con ella, que se establece a través de un driver, que convierte el lenguaje de alto nivel a sentencias de Base de Datos. Es decir, las tres acciones principales que realizará JDBC son las de establecer la conexión a una base de datos, ya sea remota o no; enviar sentencias SQL a esa base de datos y, en tercer lugar, procesar los resultados obtenidos de la base de datos.

Tipos de drivers jdbc

Un driver JDBC puede pertenecer a una de cuatro categorías diferentes en cuanto a la forma de operar.

Puente JDBC-ODBC

La primera categoría de drivers es la utilizada por Sun inicialmente para popularizar JDBC y consiste en aprovechar todo lo existente, estableciendo un puente entre JDBC y ODBC. Este driver convierte todas las llamadas JDBC a llamadas ODBC y realiza la conversión correspondiente de los resultados.




La ventaja de este driver, que se proporciona con el JDK, es que Java dispone de acceso inmediato a todas las fuentes posibles de bases de datos y no hay que hacer ninguna configuración adicional aparte de la ya existente. No obstante, tiene dos desventajas muy importantes; por un lado, la mayoría de los drivers ODBC a su vez convierten sus llamadas a llamadas a una librería nativa del fabricante DBMS, con lo cual la lentitud del driver JDBC-ODBC puede ser exasperante, al llevar dos capas adicionales que no añaden funcionalidad alguna; y por otra parte, el puente JDBC-ODBC requiere una instalación ODBC ya existente y configurada.


Java/Binario




Este driver se salta la capa ODBC y habla directamente con la librería nativa del fabricante del sistema DBMS (como pudiera ser DB-Library para Microsoft SQL Server o CT-Lib para Sybase SQL Server). Este driver es un driver 100% Java pero aún así necesita la existencia de un código binario (la librería DBMS) en la máquina del cliente, con las limitaciones y problemas que esto implica.

100% Java/Protocolo nativo

Es un driver realizado completamente en Java que se comunica con el servidor DBMS utilizando el protocolo de red nativo del servidor. De esta forma, el driver no necesita intermediarios para hablar con el servidor y convierte todas las peticiones JDBC en peticiones de red contra el servidor. La ventaja de este tipo de driver es que es una
solución 100% Java y, por lo tanto, independiente de la máquina en la que se va a ejecutar el programa.



Igualmente, dependiendo de la forma en que esté programado el driver, puede no necesitar ninguna clase de configuración por parte del usuario. La única desventaja de este tipo de drivers es que el cliente está ligado a un servidor DBMS concreto, ya que el protocolo de red que utiliza MS SQL Server por ejemplo no tiene nada que ver con el utilizado por DB2, PostGres u Oracle.


100% Java/Protocolo independiente



     Esta es la opción más flexible, se trata de un driver 100% Java /Protocolo
 independiente, que requiere la presencia de un intermediario en el servidor. En este caso, el driver JDBC hace las peticiones de datos al intermediario en un protocolo de red independiente del servidor DBMS. El intermediario a su vez, que está ubicado en el lado del servidor, convierte las peticiones JDBC en peticiones nativas del sistema DBMS. La ventaja de este método es inmediata: el programa que se ejecuta en el cliente, y aparte de las ventajas de los drivers 100% Java, también presenta la independencia respecto al sistema de bases de datos que se encuentra en el servidor.

Aplicaciones

En las aplicaciones JDBC, puede almacenar en columnas XML y recuperar datos de columnas XML.
En las tablas de base de datos, se utiliza el tipo de datos incorporado XML para almacenar datos XML en una columna en forma de conjunto estructurado de nodos en formato de árbol.
Las aplicaciones JDBC pueden enviar datos XML al servidor de datos o recuperar datos XML del servidor de datos de una de estas maneras:
·         Como datos XML textuales
·         Como datos XML binarios, si el servidor de datos los admite

En las aplicaciones JDBC, puede:
·         Almacenar un documento XML completo en una columna XML mediante los métodos setXXX.
·         Recuperar un documento XML completo de una columna XML mediante los métodos getXXX.
·         Recuperar una secuencia de un documento en una columna XML mediante la función XMLQUERY de SQL para recuperar la secuencia en una secuencia serializada en la base de datos y, a continuación, utilizar métodos getXXX para recuperar los datos en una variable de aplicación.
·         Recuperar una secuencia de un documento en una columna XML en forma de una tabla definida por el usuario mediante la función XMLTABLE de SQL para definir la tabla de resultados y recuperarla. A continuación, se utilizan los métodos getXXX para recuperar los datos de la tabla de resultados en variables de la aplicación.
Se pueden utilizar objetos java.sql.SQLXML de JDBC 4.0 para recuperar y actualizar datos de columnas XML. Las invocaciones de métodos de metadatos, tales como ResultSetMetaData.getColumnTypeName, devuelven el valor entero java.sql.Types.SQLXMLpara una columna de tipo XML.
·         Actualizaciones de columnas XML en aplicaciones JDBC
En una aplicación JDBC, se pueden actualizar o insertar datos en columnas XML de una tabla situada en un servidor de datos DB2 utilizando datos textuales XML. Se pueden actualizar o insertar datos en columnas XML de una tabla usando datos XML binarios (datos que están en el Extensible Dynamic Binary XML DB2 Client/Server Binary XML Format) si el servidor de datos da soporte a los datos XML binarios.
·         Recuperación de datos XML en aplicaciones JDBC
En las aplicaciones JDBC, se utilizan los métodos ResultSet.getXXX o ResultSet.getObject para recuperar datos de columnas XML.
·         Invocación de rutinas con parámetros XML en aplicaciones Java
Las aplicaciones Java pueden llamar a procedimientos almacenados en fuentes de datos de DB2 for Linux, UNIX, and WindowsDB2 for z/OS que tengan parámetros XML.
·         Formato XML binario en aplicaciones Java
IBM® Data Server Driver for JDBC and SQLJ puede enviar datos XML al servidor de datos o recuperar datos XML desde el servidor de datos como datos XML binarios (datos que hay en el Extensible Dynamic Binary XML DB2 Client/Server Binary XML Format). El servidor de datos debe proporcionar soporte para los datos XML binarios.
·         Soporte de Java para el registro y la eliminación de esquemas XML
IBM Data Server Driver for JDBC and SQLJ proporciona métodos que le permiten escribir programas de aplicación Java para registrar y eliminar esquemas XML y sus componentes.

 Uso de JDBC en aplicaciones Java

Uso de controladores del BD

      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


Ø Ejemplos

Ejemplo 1: Conexión a una base de datos MySQL y consulta de una tabla.
import java.sql.*;
public class EjemploAccesoBD1 {
    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.
            // En este caso nos conectamos a la base de datos prueba
            // con el usuario root y contraseña 1daw
  conexion = DriverManager.getConnection("jdbc:mysql://localhost/prueba", "root", "1daw");

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

            // Se realiza la consulta. Los resultados se guardan en el ResultSet rs
            ResultSet rs = s.executeQuery("select * from persona");

            // Se recorre el ResultSet, mostrando por pantalla los resultados.
            while (rs.next()) {
                System.out.println(rs.getInt("Id") + " " + rs.getString(2) + " " + rs.getDate(3));
            }
        } 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());
            }
        }
    }
}

Ejemplo 2: 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] + "' )");

Ejemplo 3

// Obtener datos desde una sentencia sql de Oracle y imprimirla.

import java.sql.*;
import oracle.jdbc.driver.*;

class tab_sel
{
public static void main (String args [])
throws SQLException
{

// Carga el driver JDBC Oracle
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());

String url = "jdbc:oracle:thin:pc/pc@127.0.0.1:1521:pc" ;
Connection conn = DriverManager.getConnection( url );

// Crea objeto DatabaseMetaData de Oracle
DatabaseMetaData meta = conn.getMetaData ();

// Obtiene la info del driver:
System.out.println("La version del driver JDBC es: " + meta.getDriverVersion());

// Obtiene los datos de la tabla
Statement stmt = conn.createStatement() ;
String query = "SELECT col1, col2 FROM java_test" ;
ResultSet rs = stmt.executeQuery(query) ;
while ( rs.next()) {

  int    i1 = rs.getInt("col1") ;
  String s2 = rs.getString("col2") ;

  System.out.println( i1 + "    " + s2 ) ;

}
}
}

1.  Resumen
JDBC (Java DataBase Connectivity) es un API de Java que permite al programador ejecutar instrucciones en lenguaje estándar de acceso a Bases de Datos, SQL (Structured Query Language, lenguaje estructurado de consultas), que es un lenguaje de muy alto nivel que permite crear, examinar, manipular y gestionar Bases de Datos relacionales.
Capa de Acceso de datos, creación.
Toda la conectividad de bases de datos de Java se basa en sentencias SQL, por lo que se hace imprescindible un conocimiento adecuado de SQL para realizar cualquier clase de operación de bases de datos. Aunque, afortunadamente, casi todos los entornos de desarrollo Java ofrecen componentes visuales que proporcionan una funcionalidad suficientemente potente sin necesidad de que sea necesario utilizar SQL, aunque para usar directamente el JDK se haga imprescindible. La especificación JDBC requiere que cualquier driver JDBC sea compatible con al menos el nivel «de entrada» de ANSI SQL 92 (ANSI SQL 92 Entry Level).
Acceso de JDBC a Bases de Datos

El API JDBC soporta dos modelos diferentes de acceso a Bases de Datos, los modelos de dos y tres capas.

Modelo de dos capas

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.

Modelo de tres capas

En este modelo de acceso a las bases de datos, las instrucciones son enviadas a una capa intermedia entre Cliente y 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.
2.  Summary
JDBC (Java DataBase Connectivity) is a Java API that allows the programmer to execute instructions in standard language of access to Databases, SQL (Structured Query Language, structured language of queries), which is a language of very high level that allows to create , examine, manipulate and manage relational databases.

Data Access layer, creation.

All Java database connectivity is based on SQL statements, so an adequate knowledge of SQL is essential to perform any kind of database operation. Although, fortunately, almost all Java development environments offer visual components that provide sufficiently powerful functionality without the need to use SQL, although to use directly the JDK becomes essential. The JDBC specification requires that any JDBC driver be compatible with at least the "input" level of ANSI SQL 92 (ANSI SQL 92 Entry Level).

Access of JDBC to Databases

The JDBC API supports two different models of access to Databases, the two and three layer models.

Two-layer model

This model is based on the fact that the connection between the Java application or the applet that runs in the browser, are directly connected to the database.

Three layer model

In this database access model, the instructions are sent to an intermediate layer between Client and Server, which is in charge of sending the SQL statements to the database and collecting the result from the database.

3.  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.

·         Utilizar getXXX(int) en vez de getXXX(String): Utilice los métodos getXXX de ResultSet que toman valores numéricos, en vez de las versiones que toman nombres de columna. Si bien la libertad que supone utilizar nombres de columna en vez de constantes numéricas parece ser una ventaja

·         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.

·         Si se emplea getObject para los mandatos de primitivos, existe el inconveniente adicional de que se activa con frecuencia el colector de basura, lo que aún reduce más el rendimiento.

 

4.  Conclusiones
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. Para lograr esto Microsoft creó OBDC que es una conectividad abierta de Base de Datos siendo un intermediario entre base de datos y aplicaciones cuya tarea es sostener una conversación de preguntas y respuestas entre dos “sujetos“que no hablan el mismo idioma y que gestionan sus recursos de forma diferente. OBDC es entonces como una caja que alberga controladores y los controladores son lo que saben “hablar” con las bases de datos. Por otro lado, Sun Microsystem crea una nueva API ya antes mencionada JDBC para acceso a base de datos. De esta manera podemos acceder a una base de datos entre dos máquinas con diferentes tecnologías, creándose de esta manera el puente JDBC/OBDC, es decir que desde una maquina cliente que tiene tecnología Microsoft y es la que desea acceder a una base de datos va a poder acceder a datos de un servidor con tecnología Sun Microsystem, permitiendose así la comunicación entre diferentes tecnologías.

5.  Apreciación del Equipo
       JDBC no sólo provee un interfaz para acceso a motores de bases de datos, sino que también define una arquitectura estándar, para que los fabricantes puedan crear los drivers que permitan a las aplicaciones java el acceso a los datos.
       Esta opción de utilizar JDBC es la alternativa más flexible para conectarse con diferentes motores de bases de datos simultáneamente. Además, como el driver está totalmente desarrollado en Java, puede funcionar en applets y aplicaciones.
       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.
       El proceso de acceso a una Base de Datos a través de JDBC, exige dar una serie de pasos previos antes de crear la conexión al motor de Base de Datos. El primer paso es determinar el entorno en el que el proyecto va a ser instalado, y más en concreto, que parámetros del entorno afectan directamente a JDBC

6.  Glosario de Términos

 STATEMENT

Permite enviar instrucciones a la Base de Datos.

ODBC

Open Database Connectivity (ODBC) es una interfaz de aplicaciones (API) para acceder a datos en sistemas gestores de bases de datos tanto relacionales como no relacionales, utilizando para ello SQL (Lenguaje de Consulta Estructurado).


SQL

El Lenguaje de consultas estructurado (SQL) se utiliza para crear consultas de base de datos. LibreOffice permite formular consultas en SQL o de forma interactiva mediante el ratón.

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.

NETBEANS(JAVA)

NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programación Java. Existe además un número importante de módulos para extenderlo.


JDBC

La API Java Database Connectivity (JDBC) se puede usar para conectarse con una base de datos desde LibreOffice. Los controladores de JDBC se escriben en el lenguaje de programación Java y no son exclusivos de ninguna plataforma.





7.  Linkografías


 Aqui les dejo el link de las diapositivas: