PGR3 Sesion3
PGR3 Sesion3
PGR3 Sesion3
SESIÓN3
lenguaje de consulta específico para ese servidor. Estos drivers están escritos en
Java y C/C++, el driver debe utilizar una capa de C para realizar llamadas a la
biblioteca escrita en C.
Ventajas
• Ofrece un rendimiento significativamente mayor que el puente JDBC-ODBC,
las llamadas JDBC no se convierten en llamadas ODBC, sino que son nativas.
Desventajas
• La biblioteca de la base de datos del fabricante necesita iniciarse en cada
máquina cliente. En consecuencia, los drivers de tipo 2 no se pueden utilizar
en Internet.
• Utiliza la interfaz nativa de Java, que no está implementada de forma
consistente entre los distintos fabricantes de JVM por lo que no es muy
portable entre plataformas.
c. Tipo 3: Driver protocolo de red/ todo java
Implementado en una aproximación de tres capas por lo que las solicitudes de la
DB al JDBC están traducidas en un protocolo de red independiente de esta y
dirigidas al servidor de capa intermedia. Recibe las solicitudes y las envía a la BD
utilizando un driver JDBC de tipo 1 o tipo 2 (lo que significa que se trata de una
arquitectura muy flexible).
La arquitectura en conjunto consiste en tres capas: la capa cliente JDBC y driver,
la capa intermedia y la base o las bases de datos a las que se accede.
escrito en Java, puede utilizar cualquier driver en conformidad con JDBC para
comunicarse con el servidor de bases de datos mediante el protocolo propietario
del fabricante.
Ventajas
• Tiene un componente en el servidor intermedio, no necesita ninguna
biblioteca cliente del fabricante para presentarse en las máquinas clientes.
• Son los que mejor funcionan en Internet o Intranet, aplicaciones intensivas de
datos, en las que un gran número de operaciones concurrentes como
consultas, búsquedas, entre otras, son previsibles, escalables y su rendimiento
es su principal factor.
• El protocolo de red puede estar diseñado para hacer el driver JDBC cliente
muy pequeño y rápido de iniciar, lo que es perfecto para el despliegue de
aplicaciones de Internet.
• Ofrece soporte para características como almacenamiento en memoria caché
(conexiones, resultados de consultas, etc.), equilibrio de carga, y
administración avanzada de sistemas como el registro.
• Las aplicaciones web de bases de datos basadas en 3 capas implican
seguridad, firewalls y proxis y los drivers del tipo 3 ofrecen normalmente
estas características.
Desventajas
• Requieren código específico de bases de datos para realizarse en la capa
intermedia.
• Además, atravesar el conjunto de registros puede llevar mucho tiempo, ya que
los datos vienen a través del servidor de datos.
d. Tipo 4: Driver protocolo de nativo/ todo java
Se comunica directamente con el servidor de bases de datos utilizando el protocolo
nativo del servidor. Estos drivers pueden escribirse totalmente en Java, son
independientes de la plataforma y eliminan todo lo relacionado con la
configuración en el cliente. Sin embargo, es específico de un fabricante. Cuando
la base de datos necesita ser cambiada a un producto de otro fabricante, no se
puede utilizar el mismo driver. Hay que reemplazarlo y también el programa
cliente, o su asignación, para ser capaces de utilizar una cadena de conexión
distinta para iniciar el driver.
Ventajas
• Como no tienen que traducir las solicitudes de ODBC o de una interfaz de
conectividad nativa, o pasar la solicitud a otro servidor, el rendimiento es
bastante bueno.
• No hay necesidad de instalar ningún software especial en el cliente o en el
servidor; estos drivers pueden bajarse de la forma habitual.
Desventajas
• El usuario necesita un driver distinto para cada base de datos.
3. El paquete Sql
Implementado por la API (Interfaz de Programación de Aplicaciones) de JDBC, es
una paquetería importada por java para hacer consultas en una base de datos.
Contiene su propia estructura y hace llamado a sus propias clases
Proporciona la API para acceder y procesar datos almacenados en una fuente de datos
como una base de datos relacional, utilizando el lenguaje de programación Java,
incluye un marco para instalar diferentes controladores de forma dinámica y así
acceder a diferentes fuentes de datos.
Aunque está orientada principalmente a pasar sentencias SQL a una base de datos,
permite leer y escribir datos desde cualquier fuente de datos con formato tabular.
4. Operaciones con JDBC para la conexión
try {
Class.forName(`”com.mysql.jdbc.Driver'');
} catch (ClassNotFoundException e) {
// Driver no encontrado
}
En tiempo de ejecución, el ClassLoader localiza y carga la clase
com.mysql.jdbc.Driver desde la ruta de clases utilizando el cargador de clase de
autoarranque.
En JDBC, se requiere que cada proveedor de driver registre una instancia del
driver con la clase java.sql.DriverManager durante esta inicialización estática.
Este registro tiene lugar automáticamente cuando el usuario carga la clase del
driver (utilizando la llamada Class.forName()).
Una vez que el driver se registra con java.sql.DriverManager, podemos utilizar
sus métodos estáticos para obtener conexiones. El gestor de drivers tiene tres
variantes del método estático getConnection() utilizado para establecer
conexiones.
El gestor de drivers delega estas llamadas en el método connect() de la interfaz
java.sql.Driver.
Dependiendo del tipo de Driver y del servidor de base de datos, la conexión puede
llevar una conexión física de red al servidor de BD o una conexión física de
proxy. Exista o no conexión física, el objeto conexión es el único para conectar
con la BD.
b. Establecer una conexión
Para comunicar con una base de datos con JDBC, debemos en primer lugar
establecer una conexión con la base de datos a través del driver JDBC apropiado.
El API JDBC especifica la conexión en la interfaz java.sql.Connection.
El siguiente código muestra un ejemplo de conexión JDBC a una base de datos
MySQL:
Connection connection;
String url = “jdbc:mysql:BDVentas”;
String login = “root”;
String password = “Miclave”
try {
connection=DriverManager.getConnection(url,login,password);
// Acceso a datos utilizando el objeto de conexión
...
} catch (SQLException sqle) {
Resultset
Contiene todas las filas que satisfacen las condiciones de una sentencia SQL y
proporciona el acceso a los datos de estas filas mediante un conjunto de métodos
get que permiten el acceso a las diferentes columnas de las filas. El método next
se usa para moverse a la siguiente fila del ResultSet, convirtiendo a ésta en la
fila actual.
Es una tabla, pero no hay garantía de que los datos lleguen en orden, por lo que
se puede usar la sentencia ORDER BY para asignar un determinado orden
establecido en las filas del ResultSet.
El formato general de un ResultSet es una tabla con cabeceras de columna y los
valores correspondientes devueltos por la ‘query’. Por ejemplo, si la ‘query’ es
SELECT a, b, c FROM Table1, el resultado tendrá una forma semejante a :
a b c
-------- --------- --------
12345 Cupertino CA
83472 Redmond WA
83492 Boston MA
Método DibujarControles.
Encargado de diseñar dentro del formulario o ventana todos los controles que van a
permitir ingresar, mostrar e interactuar con la información de las facultades de la
tabla facultad de una BD.
Método DibujarControles.
Encargado de diseñar mostrar y buscar las facultades en el JTable del formulario,
mediante una consulta tipo select que utiliza el operador like.
Método Crear
Encargado de crear un registro en la tabla Facultad, para esto primero se comprueba
que en la caja de texto exista información, si es así se verifica que la facultad a crear
no este registrada en la BD, esto se hace mediante el método VerificaConsulta al cual
se le pasa una consulta MySQL del tipo Select, que busca comprobar si la Facultad
que se esta ingresando aun no existe en la BD; si el resultado es negativo, entonces se
Método Seleccionar
Encargado de mostrar los datos de la facultad en las cajas de texto del formulario y
guardar datos en una variable, cada vez que el usuario haga click, sobre alguno de los
registros del JTable que muestra las facultades.
Método Editar
Encargado de cambiar o modificar el nombre de una facultad, previamente se tiene
que seleccionar donde entra en acción el método seleccionar, cuando ya esta
seleccionado entonces se verifica que se tenga información en la caja de texto del
nombre de la marca, verificamos que no se repita la marca modificada, utilizando el
método VerificaConsulta de ser así se actualizan los cambios mediante el método
ActualizarRegistro al cual le pasamos como argumento una consulta Mysql de tipo
update, tal como se muestra a continuación.
Método Eliminar
Encargado de eliminar un registro de la base de datos previamente seleccionada sobre
el JTable, donde entra en acción el método Seleccionar, se pide la confirmación para
proceder con la eliminación y si es positiva, entonces se procede con la eliminación
del registro esto se realiza mediante el método ActualizarRegistro al cual se le pasa
como argumento una consulta MySQL del tipo delete, tal como se muestra a
continuación.
Método Cancelar
Encargado de cancelar todo lo actuado por el usuario como haber ingresado algún dato
en las cajas de texto o seleccionado una de las facultades que se muestran como filas
en el JTable.
Método Imprimir
Encargado de enviar a la impresora el reporte de las Facultades que están registradas
en la BD, para lo cual preguntamos si hay Facultades en el JTable, si es así entonces
se procede con la impresión usando el método Imprimircon1Parametros del objeto
impresor el cual estudiaremos posteriormente, el código se muestra a continuación.
Bibliografía
http://www.iuma.ulpgc.es/users/lhdez/inves/pfcs/memoria-ivan/node8.html
https://es.wikipedia.org/wiki/Result_Set
https://www.ibm.com/support/knowledgecenter/es/ssw_ibm_i_72/rzahh/jdbcrs.htm