SlideShare una empresa de Scribd logo
JAVA CON BASE DE
DATOS
DEFINICIÓN
En la mayoría de las aplicaciones que nos vamos a encontrar, aparecerá una
base de datos como fuente de información. JDBC nos va a permitir acceder a
bases de datos (BD) desde Java. Con JDBC no es necesario escribir distintos
programas para distintas BD, sino que un único programa sirve para acceder
a BD de distinta naturaleza. Incluso, podemos acceder a más de una BD de
distinta fuente (Oracle, Access, MySql, etc.) en la misma aplicación. Podemos
pensar en JDBC como el puente entre una base de datos y nuestro programa
Java. Un ejemplo sencillo puede ser un applet que muestra dinámicamente
información contenida en una base de datos. El applet utilizará JDBC para
obtener dichos datos.
El esquema a seguir en un programa que use JDBC es el siguiente:
Un programa Java que utilice JDBC primero deberá establecer una conexión con el SGBD.
Para realizar dicha conexión haremos uso de un driver específico para cada SGBD que estemos
utilizando. Una vez establecida la conexión ya podemos interrogar la BD con cualquier
comando SQL (select, update, create, etc.). El resultado de un comando select es un objeto de
la clase ResultSet, que contiene los datos que devuelve la consulta. Disponemos de métodos en
ResultSet para manejar los datos devueltos. También podemos realizar cualquier operación en
SQL (creación de tablas, gestión de usuarios, etc.).
Para realizar estas operaciones necesitaremos contar con un SGBD (sistema
gestor de bases de datos) además de un driver específico para poder acceder a
este SGBD. Vamos a utilizar dos SGBD: MySQL (disponible para Windows y Linux,
de libre distribución) y PostGres (sólo para Linux, también de libre distribución).
Drivers de acceso
Los drivers para poder acceder a cada SGBD no forman parte de la distribución de
Java por lo que deberemos obtenerlos por separado. ¿Por qué hacer uso de un
driver?. El principal problema que se nos puede plantear es que cada SGBD
dispone de su propio API (la mayoría propietario), por lo que un cambio en el
SGBD implica una modificación de nuestro código. Si colocamos una capa
intermedia, podemos abstraer la conectividad, de tal forma que nosotros
utilizamos un objeto para la conexión, y el driver se encarga de traducir la llamada
al API. El driver lo suelen distribuir las propias empresas que fabrican el SGBD.
Tipos de drivers
Existe un estándar establecido que divide los drivers en cuatro grupos:
■ Tipo 1: Puente JDBC-ODBC. ODBC (Open Database Connectivity) fue creado para
proporcionar una conexión a bases de datos en Microsoft Windows. ODBC permite
acceso a bases de datos desde diferentes lenguajes de programación, tales como
C y Cobol. El puente JDBC-ODBC permite enlazar Java con cualquier base de datos
disponible en ODBC. No se aconseja el uso de este tipo de driver cuando tengamos
que acceder a bases de datos de alto rendimiento, pues las funcionalidades están
limitadas a las que marca ODBC. Cada cliente debe tener instalado el driver. J2SE
incluye este driver en su versión Windows y Solaris.
■ Tipo 2: Parte Java, parte driver nativo. Es una combinación de implementación
Java y API nativo para el acceso a la base de datos. Este tipo de driver es más
rápido que el anterior, pues no se realiza el paso por la capa ODBC. Las llamadas
JDBC se traducen en llamadas específicas del API de la base de datos. Cada
cliente debe tener instalado el driver. Tiene menor rendimiento que los dos
siguientes y no se pueden usar en Internet, ya que necesita el API de forma local.
■ Tipo 3: Servidor intermediario de acceso a base de datos. Este tipo de
driver proporciona una abstracción de la conexión. El cliente se conecta a
los SGBD mediante un componente servidor intermedio, que actúa como
una puerta para múltiples servidores. La ventaja de este tipo de driver es
el nivel de abstracción. El servidor de aplicaciones WebLogic incorpora
este tipo de driver.
■ Tipo 4: Drivers Java. Este es el más directo. La llamada JDBC se traduce
directamente en una llamada de red a la base de datos, sin
intermediarios. Proporcionan mejor rendimiento. La mayoría de SGBD
proporcionan drivers de este tipo.
Conexión a la BD
Una vez cargado el driver apropiado para nuestro SGBD deberemos establecer la
conexión con la BD. Para ello utilizaremos el siguiente método:
La conexión a la BD está encapsulada en un objeto Connection. Para su creación
debemos proporcionar la url de la BD y, si la BD está protegida con contraseña, el
login y password para acceder a ella. El formato de la url variará según el driver que
utilicemos. Sin embargo, todas las url tendrán la siguiente forma general:
jdbc:<subprotocolo>:<nombre>, con subprotocolo indicando el tipo de SGBD y con
nombre indicando el nombre de la BD y aportando información adicional para la
conexión.
1
2
Connection con = DriverManager.getConnection(url);
Connection con = DriverManager.getConnection(url, login, password);
Objeto Connection
Es el principal objeto utilizado para proporcionar un vínculo entre las bases de datos y
una aplicación en Java. Connection proporciona métodos para manejar el
procesamiento de transacciones, para crear objetos y ejecutar instrucciones SQL, y
para crear objetos para la ejecución de procedimientos almacenados.
Se puede emplear tanto el objeto Driver como el objeto DriverManager para crear un
objeto Connection. Se utiliza el método connect() para el objeto Driver, y el método
getConnection() para el objeto DriverManager.
El objeto Connection proporciona una conexión estática a la base de datos. Esto
significa que hasta que se llame en forma explícita a su método close() para cerrar la
conexión o se destruya el objeto Connection, la conexión a la base de datos
permanecerá activa.
La manera más usual de establecer una conexión a una base de datos es invocando el
método getConnection() de la clase DriverManager. A menudo, las bases de datos
están protegidas con nombres de usuario (login) y contraseñas (password) para
restringir el acceso a las mismas. El método getConnection() permite que el nombre
de usuario y la contraseña se pasen también como parámetros.
String usuario = "root";
String contraseña = "123456789";
Connection conn = DriverManager.getConnection(url,usuario,contraseña);
En toda aplicación de bases de datos con MySQL es indispensable poder establecer la
conexión al servidor para posteriormente enviarle las consultas. Los programas en
Java no son la excepción. El siguiente código va a servir para verificar que podemos
establecer una conexión a la base de datos agendita.
import java.sql.*;
public class ConexionBD {
static String bd = "sesion";
static String login = "root";
static String password = "123456789";
static String url = "jdbc:mysql://localhost/"+bd;
public static void main(String[] args) throws Exception {
Connection conn = null;
try {
lass.forName("com.mysql.jdbc.Driver").newInstance
conn = DriverManager.getConnection(url,login,password);
if (conn != null) {
System.out.println("Conexiónse de datos "+url+" ... Ok");
conn.close(); } }
catch(SQLException ex) {
System.out.println(ex); }
catch(ClassNotFoundException ex) {
System.out.println(ex); } }
}
Objeto Statement
Se usa para enviar sentencias SQL a la base de datos. Actualmente hay tres tipos
de objetos Statement, todos los cuales actúan como contenedores para la
ejecución de sentencias en una conexión dada: Statement, PreparedStatement
que hereda de Statement y CallableStatement que hereda de
PreparedStatement. Estas estàn especializadas para enviar tipos particulares de
sentencias SQL, Un objeto Statement se usa para ejecutar una sentencia SQL
simple sin parámetros. Un objeto PreparedStatement se usa para ejecutar
sentencias SQL precompiladas con o sin parámetros IN; y un objeto
CallableStatement se usa para ejecutar un procedimieno de base de datos
almacenado.
La interfase Statement suminstra métodos básicos para ejecutar sentencias y
devolver resultados. La interfase PreparedStatement añade métodos para
trabajat con los parámetros IN; y la interfase CallableStatement añade métodos
para trabajar con parameters OUT.
Creación de objetos Statement
Una vez establecida la conexión con una base de datos particular, esta conexión
puede usarse para enviar sentencias SQL. Un objeto Statement se crea
mediante el método de Connection createStatement, como podemos ver en el
siguiente fragmento de código.
Connection con = DriverManager.getConnection(url, "sunny", "");
Statement stmt = con.createStatement();
La sentencia SQL que será enviada a la base de datos es alimentada como un
argumento a uno de los métodos de ejecución del objeto Statement. Por
ejemplo:
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table2");
Ejecución de sentencias usando objetos Statement.
La interfase Statement nos suministra tres métodos diferentes para ejecutar
sentencias SQL, executeQuery, executeUpdate y execute. El método a usar esta
determinado por el producto de la sentencia SQL.
Objeto Resultset
Es la representación en memoria de las tablas de la base de datos en disco, se puede entender
como una tabla virtual, recordar que generalmente todos los procesos que se realizen con la
tabla (insertar registros, eliminar registros, etc) se realizaran realmente contra un resulset y no
provocaran ningun cambio en la tabla fisica en disco, resulset tiene un conjunto de metodos
muy utiles y muy usados para el proceso de los renglones de la tabla virtual.
Ejemplo:
// declarando y creando objetos globales
Connection canal = null;
ResultSet tabla= null;
Statement instruccion=null;
String strcon = "jdbc:mysql://localhost/mibase?user=lauro&password=laurosoto";
// abriendo canal o enlace en su propio try-catch
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
canal=DriverManager.getConnection(strcon);
instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
} catch(java.lang.ClassNotFoundException e){} catch(SQLException e) {};

Más contenido relacionado

La actualidad más candente

Jsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD ConexiónJsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD Conexión
Pattzy Montero
 
JDBC
JDBCJDBC
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
Ronny Parra
 
JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)
Vilma Analí Pardo Suárez
 
JDBC
JDBCJDBC
Conexion a bases de datos
Conexion a bases de datosConexion a bases de datos
Curso Básico de JDBC
Curso Básico de JDBCCurso Básico de JDBC
Curso Básico de JDBC
Universidad de Occidente
 
Connection
ConnectionConnection
Connection Pool + Java + MySQL
Connection Pool + Java + MySQLConnection Pool + Java + MySQL
Connection Pool + Java + MySQL
Christian Mora
 
Creando y configurando un data source a mysql en glassfish4
Creando y configurando un data source a mysql en glassfish4Creando y configurando un data source a mysql en glassfish4
Creando y configurando un data source a mysql en glassfish4
Ricardo P.
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
Jdbc (Java Database Connectivity)
Jdbc (Java Database Connectivity)Jdbc (Java Database Connectivity)
Jdbc (Java Database Connectivity)
GREINDER MARCHENA & LIZ VASQUEZ
 
11.android bases de datos
11.android   bases de datos11.android   bases de datos
11.android bases de datos
guidotic
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Emilio Aviles Avila
 

La actualidad más candente (18)

Jsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD ConexiónJsp servlet- Tutorial BD Conexión
Jsp servlet- Tutorial BD Conexión
 
JDBC
JDBCJDBC
JDBC
 
Java y Bases de Datos
Java y Bases de DatosJava y Bases de Datos
Java y Bases de Datos
 
JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)
 
JDBC
JDBCJDBC
JDBC
 
Conexion a bases de datos
Conexion a bases de datosConexion a bases de datos
Conexion a bases de datos
 
Curso Básico de JDBC
Curso Básico de JDBCCurso Básico de JDBC
Curso Básico de JDBC
 
Connection
ConnectionConnection
Connection
 
Connection Pool + Java + MySQL
Connection Pool + Java + MySQLConnection Pool + Java + MySQL
Connection Pool + Java + MySQL
 
Creando y configurando un data source a mysql en glassfish4
Creando y configurando un data source a mysql en glassfish4Creando y configurando un data source a mysql en glassfish4
Creando y configurando un data source a mysql en glassfish4
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
Trabajo de jdbc
 
T2 - JDBC
T2 - JDBCT2 - JDBC
T2 - JDBC
 
Jdbc (Java Database Connectivity)
Jdbc (Java Database Connectivity)Jdbc (Java Database Connectivity)
Jdbc (Java Database Connectivity)
 
Tema 5
Tema 5Tema 5
Tema 5
 
11.android bases de datos
11.android   bases de datos11.android   bases de datos
11.android bases de datos
 
Jdbc
JdbcJdbc
Jdbc
 
Java.sql.*
Java.sql.*Java.sql.*
Java.sql.*
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
 

Similar a Java con base de datos

Ser vlet conectar con base de datos
Ser vlet conectar con base de datosSer vlet conectar con base de datos
Ser vlet conectar con base de datos
David
 
JAVA DATABASE CONNECTIVITY (JDBC)
  JAVA DATABASE CONNECTIVITY (JDBC)  JAVA DATABASE CONNECTIVITY (JDBC)
JAVA DATABASE CONNECTIVITY (JDBC)
MILAGRINAMAGUINAPRINCIPE
 
Jdbc
JdbcJdbc
Jdbc
JdbcJdbc
Jdbc diapositivva
Jdbc diapositivvaJdbc diapositivva
[ES] Conectividad de java a base de datos(jdbc)
[ES] Conectividad de java a base  de datos(jdbc)[ES] Conectividad de java a base  de datos(jdbc)
[ES] Conectividad de java a base de datos(jdbc)
Eudris Cabrera
 
Qué es jdbc
Qué es jdbcQué es jdbc
Qué es jdbc
Jesus NM
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en javajent46
 
Bases de Datos en en www.fiec.espol.edu.ec
Bases de Datos en  en www.fiec.espol.edu.ecBases de Datos en  en www.fiec.espol.edu.ec
Bases de Datos en en www.fiec.espol.edu.ec
Silvana Vargas
 
Java DataBase Connectivity
Java DataBase ConnectivityJava DataBase Connectivity
Java DataBase Connectivity
Thalia Regalado Juape
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
Patricia Reyna
 
Java con Base de Datos
Java con Base de DatosJava con Base de Datos
Java con Base de Datos
Thalia Regalado Juape
 
Diapositivas de jdbc
Diapositivas de jdbcDiapositivas de jdbc
Diapositivas de jdbc
MISAEL DIAZ VILCHEZ
 
Clase conexion java - Analisis de Sistemas
Clase conexion java - Analisis de SistemasClase conexion java - Analisis de Sistemas
Clase conexion java - Analisis de Sistemas
Jose Bustamante Romero
 
Jdbc(desarrollo de software i yanina y yenny)
Jdbc(desarrollo de software i yanina y yenny)Jdbc(desarrollo de software i yanina y yenny)
Jdbc(desarrollo de software i yanina y yenny)
yenny isabel cuello moron
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
JDBC
JDBC JDBC
Jdbc
JdbcJdbc

Similar a Java con base de datos (20)

Ser vlet conectar con base de datos
Ser vlet conectar con base de datosSer vlet conectar con base de datos
Ser vlet conectar con base de datos
 
Jdbc Mysql
Jdbc MysqlJdbc Mysql
Jdbc Mysql
 
JAVA DATABASE CONNECTIVITY (JDBC)
  JAVA DATABASE CONNECTIVITY (JDBC)  JAVA DATABASE CONNECTIVITY (JDBC)
JAVA DATABASE CONNECTIVITY (JDBC)
 
Jdbc
JdbcJdbc
Jdbc
 
Jdbc
JdbcJdbc
Jdbc
 
Jdbc diapositivva
Jdbc diapositivvaJdbc diapositivva
Jdbc diapositivva
 
[ES] Conectividad de java a base de datos(jdbc)
[ES] Conectividad de java a base  de datos(jdbc)[ES] Conectividad de java a base  de datos(jdbc)
[ES] Conectividad de java a base de datos(jdbc)
 
Qué es jdbc
Qué es jdbcQué es jdbc
Qué es jdbc
 
Java y Bases Datos
Java y Bases DatosJava y Bases Datos
Java y Bases Datos
 
Bases Datos en java
Bases Datos en javaBases Datos en java
Bases Datos en java
 
Bases de Datos en en www.fiec.espol.edu.ec
Bases de Datos en  en www.fiec.espol.edu.ecBases de Datos en  en www.fiec.espol.edu.ec
Bases de Datos en en www.fiec.espol.edu.ec
 
Java DataBase Connectivity
Java DataBase ConnectivityJava DataBase Connectivity
Java DataBase Connectivity
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Java con Base de Datos
Java con Base de DatosJava con Base de Datos
Java con Base de Datos
 
Diapositivas de jdbc
Diapositivas de jdbcDiapositivas de jdbc
Diapositivas de jdbc
 
Clase conexion java - Analisis de Sistemas
Clase conexion java - Analisis de SistemasClase conexion java - Analisis de Sistemas
Clase conexion java - Analisis de Sistemas
 
Jdbc(desarrollo de software i yanina y yenny)
Jdbc(desarrollo de software i yanina y yenny)Jdbc(desarrollo de software i yanina y yenny)
Jdbc(desarrollo de software i yanina y yenny)
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
Trabajo de jdbc
 
JDBC
JDBC JDBC
JDBC
 
Jdbc
JdbcJdbc
Jdbc
 

Más de GREINDER MARCHENA & LIZ VASQUEZ

Aplicaciones
AplicacionesAplicaciones
Programación de aplicaciones móviles
Programación de aplicaciones móvilesProgramación de aplicaciones móviles
Programación de aplicaciones móviles
GREINDER MARCHENA & LIZ VASQUEZ
 
Java y xml
Java y xmlJava y xml
Android studio
Android studioAndroid studio
Prepared statement
Prepared statementPrepared statement
Control jtable con base de datos
Control jtable con base de datosControl jtable con base de datos
Control jtable con base de datos
GREINDER MARCHENA & LIZ VASQUEZ
 
Result set
Result setResult set
Statement
StatementStatement
Connection
ConnectionConnection
Objeto command
Objeto commandObjeto command
Objeto connection
Objeto connectionObjeto connection
Espacio de nombres System.Data.SQLClient
Espacio de nombres System.Data.SQLClientEspacio de nombres System.Data.SQLClient
Espacio de nombres System.Data.SQLClient
GREINDER MARCHENA & LIZ VASQUEZ
 
ADO.NET
ADO.NETADO.NET
GESTOR DE BASE DE DATOS
GESTOR DE BASE DE DATOSGESTOR DE BASE DE DATOS
GESTOR DE BASE DE DATOS
GREINDER MARCHENA & LIZ VASQUEZ
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
GREINDER MARCHENA & LIZ VASQUEZ
 
APLICACIONES N-CAPAS EN VISUAL NET
APLICACIONES N-CAPAS EN VISUAL NETAPLICACIONES N-CAPAS EN VISUAL NET
APLICACIONES N-CAPAS EN VISUAL NET
GREINDER MARCHENA & LIZ VASQUEZ
 
Vistas en SQL
Vistas en SQLVistas en SQL
TABLAS Y TIPOS DE DATOS
TABLAS Y TIPOS DE DATOSTABLAS Y TIPOS DE DATOS
TABLAS Y TIPOS DE DATOS
GREINDER MARCHENA & LIZ VASQUEZ
 
Base de Datos en SQL
Base de Datos en SQLBase de Datos en SQL
Base de Datos en SQL
GREINDER MARCHENA & LIZ VASQUEZ
 
Lenguaje Transact-SQL
Lenguaje Transact-SQLLenguaje Transact-SQL
Lenguaje Transact-SQL
GREINDER MARCHENA & LIZ VASQUEZ
 

Más de GREINDER MARCHENA & LIZ VASQUEZ (20)

Aplicaciones
AplicacionesAplicaciones
Aplicaciones
 
Programación de aplicaciones móviles
Programación de aplicaciones móvilesProgramación de aplicaciones móviles
Programación de aplicaciones móviles
 
Java y xml
Java y xmlJava y xml
Java y xml
 
Android studio
Android studioAndroid studio
Android studio
 
Prepared statement
Prepared statementPrepared statement
Prepared statement
 
Control jtable con base de datos
Control jtable con base de datosControl jtable con base de datos
Control jtable con base de datos
 
Result set
Result setResult set
Result set
 
Statement
StatementStatement
Statement
 
Connection
ConnectionConnection
Connection
 
Objeto command
Objeto commandObjeto command
Objeto command
 
Objeto connection
Objeto connectionObjeto connection
Objeto connection
 
Espacio de nombres System.Data.SQLClient
Espacio de nombres System.Data.SQLClientEspacio de nombres System.Data.SQLClient
Espacio de nombres System.Data.SQLClient
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
GESTOR DE BASE DE DATOS
GESTOR DE BASE DE DATOSGESTOR DE BASE DE DATOS
GESTOR DE BASE DE DATOS
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
APLICACIONES N-CAPAS EN VISUAL NET
APLICACIONES N-CAPAS EN VISUAL NETAPLICACIONES N-CAPAS EN VISUAL NET
APLICACIONES N-CAPAS EN VISUAL NET
 
Vistas en SQL
Vistas en SQLVistas en SQL
Vistas en SQL
 
TABLAS Y TIPOS DE DATOS
TABLAS Y TIPOS DE DATOSTABLAS Y TIPOS DE DATOS
TABLAS Y TIPOS DE DATOS
 
Base de Datos en SQL
Base de Datos en SQLBase de Datos en SQL
Base de Datos en SQL
 
Lenguaje Transact-SQL
Lenguaje Transact-SQLLenguaje Transact-SQL
Lenguaje Transact-SQL
 

Último

ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
SandraPiza2
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
cintiat3400
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
Carlos salina de Gortari Presentación de su Sexenio
Carlos salina de Gortari Presentación de su SexenioCarlos salina de Gortari Presentación de su Sexenio
Carlos salina de Gortari Presentación de su Sexenio
johanpacheco9
 
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Unidad de Espiritualidad Eudista
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
lautyzaracho4
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
20minutos
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
H4RV3YH3RN4ND3Z
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdfUNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
Joan Ribes Gallén
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Monseespinoza6
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
GallardoJahse
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
FelixCamachoGuzman
 

Último (20)

ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
Junio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividadesJunio 2024 Fotocopiables Ediba actividades
Junio 2024 Fotocopiables Ediba actividades
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
Carlos salina de Gortari Presentación de su Sexenio
Carlos salina de Gortari Presentación de su SexenioCarlos salina de Gortari Presentación de su Sexenio
Carlos salina de Gortari Presentación de su Sexenio
 
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
Triduo Eudista: Jesucristo, Sumo y Eterno Sacerdote; El Corazón de Jesús y el...
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdfUNA VISITA A SAN PEDRO EN EL VATICANO.pdf
UNA VISITA A SAN PEDRO EN EL VATICANO.pdf
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptxAutomatización de proceso de producción de la empresa Gloria SA (1).pptx
Automatización de proceso de producción de la empresa Gloria SA (1).pptx
 
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
 

Java con base de datos

  • 1. JAVA CON BASE DE DATOS
  • 2. DEFINICIÓN En la mayoría de las aplicaciones que nos vamos a encontrar, aparecerá una base de datos como fuente de información. JDBC nos va a permitir acceder a bases de datos (BD) desde Java. Con JDBC no es necesario escribir distintos programas para distintas BD, sino que un único programa sirve para acceder a BD de distinta naturaleza. Incluso, podemos acceder a más de una BD de distinta fuente (Oracle, Access, MySql, etc.) en la misma aplicación. Podemos pensar en JDBC como el puente entre una base de datos y nuestro programa Java. Un ejemplo sencillo puede ser un applet que muestra dinámicamente información contenida en una base de datos. El applet utilizará JDBC para obtener dichos datos.
  • 3. El esquema a seguir en un programa que use JDBC es el siguiente: Un programa Java que utilice JDBC primero deberá establecer una conexión con el SGBD. Para realizar dicha conexión haremos uso de un driver específico para cada SGBD que estemos utilizando. Una vez establecida la conexión ya podemos interrogar la BD con cualquier comando SQL (select, update, create, etc.). El resultado de un comando select es un objeto de la clase ResultSet, que contiene los datos que devuelve la consulta. Disponemos de métodos en ResultSet para manejar los datos devueltos. También podemos realizar cualquier operación en SQL (creación de tablas, gestión de usuarios, etc.).
  • 4. Para realizar estas operaciones necesitaremos contar con un SGBD (sistema gestor de bases de datos) además de un driver específico para poder acceder a este SGBD. Vamos a utilizar dos SGBD: MySQL (disponible para Windows y Linux, de libre distribución) y PostGres (sólo para Linux, también de libre distribución). Drivers de acceso Los drivers para poder acceder a cada SGBD no forman parte de la distribución de Java por lo que deberemos obtenerlos por separado. ¿Por qué hacer uso de un driver?. El principal problema que se nos puede plantear es que cada SGBD dispone de su propio API (la mayoría propietario), por lo que un cambio en el SGBD implica una modificación de nuestro código. Si colocamos una capa intermedia, podemos abstraer la conectividad, de tal forma que nosotros utilizamos un objeto para la conexión, y el driver se encarga de traducir la llamada al API. El driver lo suelen distribuir las propias empresas que fabrican el SGBD.
  • 5. Tipos de drivers Existe un estándar establecido que divide los drivers en cuatro grupos: ■ Tipo 1: Puente JDBC-ODBC. ODBC (Open Database Connectivity) fue creado para proporcionar una conexión a bases de datos en Microsoft Windows. ODBC permite acceso a bases de datos desde diferentes lenguajes de programación, tales como C y Cobol. El puente JDBC-ODBC permite enlazar Java con cualquier base de datos disponible en ODBC. No se aconseja el uso de este tipo de driver cuando tengamos que acceder a bases de datos de alto rendimiento, pues las funcionalidades están limitadas a las que marca ODBC. Cada cliente debe tener instalado el driver. J2SE incluye este driver en su versión Windows y Solaris. ■ Tipo 2: Parte Java, parte driver nativo. Es una combinación de implementación Java y API nativo para el acceso a la base de datos. Este tipo de driver es más rápido que el anterior, pues no se realiza el paso por la capa ODBC. Las llamadas JDBC se traducen en llamadas específicas del API de la base de datos. Cada cliente debe tener instalado el driver. Tiene menor rendimiento que los dos siguientes y no se pueden usar en Internet, ya que necesita el API de forma local.
  • 6. ■ Tipo 3: Servidor intermediario de acceso a base de datos. Este tipo de driver proporciona una abstracción de la conexión. El cliente se conecta a los SGBD mediante un componente servidor intermedio, que actúa como una puerta para múltiples servidores. La ventaja de este tipo de driver es el nivel de abstracción. El servidor de aplicaciones WebLogic incorpora este tipo de driver. ■ Tipo 4: Drivers Java. Este es el más directo. La llamada JDBC se traduce directamente en una llamada de red a la base de datos, sin intermediarios. Proporcionan mejor rendimiento. La mayoría de SGBD proporcionan drivers de este tipo.
  • 7. Conexión a la BD Una vez cargado el driver apropiado para nuestro SGBD deberemos establecer la conexión con la BD. Para ello utilizaremos el siguiente método: La conexión a la BD está encapsulada en un objeto Connection. Para su creación debemos proporcionar la url de la BD y, si la BD está protegida con contraseña, el login y password para acceder a ella. El formato de la url variará según el driver que utilicemos. Sin embargo, todas las url tendrán la siguiente forma general: jdbc:<subprotocolo>:<nombre>, con subprotocolo indicando el tipo de SGBD y con nombre indicando el nombre de la BD y aportando información adicional para la conexión. 1 2 Connection con = DriverManager.getConnection(url); Connection con = DriverManager.getConnection(url, login, password);
  • 8. Objeto Connection Es el principal objeto utilizado para proporcionar un vínculo entre las bases de datos y una aplicación en Java. Connection proporciona métodos para manejar el procesamiento de transacciones, para crear objetos y ejecutar instrucciones SQL, y para crear objetos para la ejecución de procedimientos almacenados. Se puede emplear tanto el objeto Driver como el objeto DriverManager para crear un objeto Connection. Se utiliza el método connect() para el objeto Driver, y el método getConnection() para el objeto DriverManager. El objeto Connection proporciona una conexión estática a la base de datos. Esto significa que hasta que se llame en forma explícita a su método close() para cerrar la conexión o se destruya el objeto Connection, la conexión a la base de datos permanecerá activa.
  • 9. La manera más usual de establecer una conexión a una base de datos es invocando el método getConnection() de la clase DriverManager. A menudo, las bases de datos están protegidas con nombres de usuario (login) y contraseñas (password) para restringir el acceso a las mismas. El método getConnection() permite que el nombre de usuario y la contraseña se pasen también como parámetros. String usuario = "root"; String contraseña = "123456789"; Connection conn = DriverManager.getConnection(url,usuario,contraseña); En toda aplicación de bases de datos con MySQL es indispensable poder establecer la conexión al servidor para posteriormente enviarle las consultas. Los programas en Java no son la excepción. El siguiente código va a servir para verificar que podemos establecer una conexión a la base de datos agendita.
  • 10. import java.sql.*; public class ConexionBD { static String bd = "sesion"; static String login = "root"; static String password = "123456789"; static String url = "jdbc:mysql://localhost/"+bd; public static void main(String[] args) throws Exception { Connection conn = null; try { lass.forName("com.mysql.jdbc.Driver").newInstance conn = DriverManager.getConnection(url,login,password); if (conn != null) { System.out.println("Conexiónse de datos "+url+" ... Ok"); conn.close(); } } catch(SQLException ex) { System.out.println(ex); } catch(ClassNotFoundException ex) { System.out.println(ex); } } }
  • 11. Objeto Statement Se usa para enviar sentencias SQL a la base de datos. Actualmente hay tres tipos de objetos Statement, todos los cuales actúan como contenedores para la ejecución de sentencias en una conexión dada: Statement, PreparedStatement que hereda de Statement y CallableStatement que hereda de PreparedStatement. Estas estàn especializadas para enviar tipos particulares de sentencias SQL, Un objeto Statement se usa para ejecutar una sentencia SQL simple sin parámetros. Un objeto PreparedStatement se usa para ejecutar sentencias SQL precompiladas con o sin parámetros IN; y un objeto CallableStatement se usa para ejecutar un procedimieno de base de datos almacenado. La interfase Statement suminstra métodos básicos para ejecutar sentencias y devolver resultados. La interfase PreparedStatement añade métodos para trabajat con los parámetros IN; y la interfase CallableStatement añade métodos para trabajar con parameters OUT.
  • 12. Creación de objetos Statement Una vez establecida la conexión con una base de datos particular, esta conexión puede usarse para enviar sentencias SQL. Un objeto Statement se crea mediante el método de Connection createStatement, como podemos ver en el siguiente fragmento de código. Connection con = DriverManager.getConnection(url, "sunny", ""); Statement stmt = con.createStatement(); La sentencia SQL que será enviada a la base de datos es alimentada como un argumento a uno de los métodos de ejecución del objeto Statement. Por ejemplo: ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table2"); Ejecución de sentencias usando objetos Statement. La interfase Statement nos suministra tres métodos diferentes para ejecutar sentencias SQL, executeQuery, executeUpdate y execute. El método a usar esta determinado por el producto de la sentencia SQL.
  • 13. Objeto Resultset Es la representación en memoria de las tablas de la base de datos en disco, se puede entender como una tabla virtual, recordar que generalmente todos los procesos que se realizen con la tabla (insertar registros, eliminar registros, etc) se realizaran realmente contra un resulset y no provocaran ningun cambio en la tabla fisica en disco, resulset tiene un conjunto de metodos muy utiles y muy usados para el proceso de los renglones de la tabla virtual. Ejemplo: // declarando y creando objetos globales Connection canal = null; ResultSet tabla= null; Statement instruccion=null; String strcon = "jdbc:mysql://localhost/mibase?user=lauro&password=laurosoto"; // abriendo canal o enlace en su propio try-catch try { Class.forName("com.mysql.jdbc.Driver").newInstance(); canal=DriverManager.getConnection(strcon); instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); } catch(java.lang.ClassNotFoundException e){} catch(SQLException e) {};