SlideShare uma empresa Scribd logo
1 de 11
SerVlet Conectar con Base de Datos DavidPaLMundo@hotmail.com
	JDBC (Java DatabaseConnectivity) es la parte de Java que nos va a permitir conectarnos con bases de datos relacionales utilizando el lenguaje SQL. JDBC permite la integración de llamadas SQL dentro del código de nuestro Servlet Java proporcionando clases que nos permiten interactuar de forma fácil, cómoda y homogénea con bases de datos externas.
	Conexión con la base de datos con JDBC 	Antes de acceder a la base de datos, es necesario conectarse desde nuestro Servlet (Cliente, en este caso) a la base de datos (servidor), esto se hace mediante dos pasos: 	Leer el driver específico de la base de datos que vamos a utilizar, en nuestro caso, será: Class.forName("oracle.jdbc.driver.OracleDriver")
	Establecer la conexión. Una vez que tenemos el driver cargado en memoria, tendremos que crear una conexión (objeto de la clase Connection), indicando el driver a usar (jdbc:oracle:thin), la máquina(localhost), el puerto(1521), el SID de la base de datos(ProgBD2), el usuario(fjgarcia) y su contraseña(claveSecreta). Por ejemplo: Connectionconexion = DriverManager.getConnection(             "jdbc:oracle:thin:@localhost:1521:ProgBD2", "fjgarcia", "claveSecreta") 	Cuando leemos el driver específico de la base de datos (en nuestro, caso oracle.jdbc.driver.OracleDriver) se puede producir una excepción del tipo (ClassNotFoundException que ocurrirá si no tenemos instalado correctamente el driver JDBC (revisar parte de instalación). Al leer el driver este se quedará en memoria y será el que se utilice internamente por JDBC.
	Cuando creamos una conexión (nos devuelve un objeto Connection) se abre una conexión con la base de datos que posteriormente debemos cerrar. Para crear la conexión se utiliza, como hemos visto, el método getConnection de la clase DriverManager, que como vemos tiene tres parámetros, el primero será la cadena de conexión, el segundo el usuario y el tercero la contraseña de dicho usuario. En la cadena de conexión tenemos el driver que se va a utilizar, nosotros siempre usaremos jdbc:oracle:thin la máquina a la que nos vamos a conectar precedida de una arroba (nosotros podremos usar @localhost para nuestro ordenador local o @oracle0.ugr.es para el servidor de la escuela), el puerto a utilizar (tanto local, como remoto usaremos el 1521) y el SID de la base de datos a utilizar (en local será ProgBD2 y en el servidor de la escuela será PRACTBD.
	Como hemos mencionado anteriormente para toda conexión que abramos tendremos que cerrarla, eso se hará mediante el método close()de Connection. 	Veamos un pequeño ejemplo que sólo conecte a la base de datos local para ver si hubiera algún problema y que guardaremos como ConectaBD.java:
Conectar importjavax.servlet.*; importjavax.servlet.http.*; import java.io.*; import java.sql.*; publicclassConectaBDextendsHttpServlet { publicvoidinit(ServletConfigconf) throwsServletException { super.init(conf);   } publicvoiddoGet(HttpServletRequestreq, HttpServletResponse res) throwsServletException, IOException { Connectionconexion = null; res.setContentType("text/html"); PrintWriterout = res.getWriter();
	try { 	//Leemos el driver de Oracle Class.forName("oracle.jdbc.driver.OracleDriver"); 	//Nos conectamos a la BD local conexion = DriverManager.getConnection ( 			"jdbc:oracle:thin:@localhost:1521:PROGBD2", 			"fjgarcia","claveSecreta"); 	/*//Nos conectamos a la BD de la ETSII Stringclave="claveSecretaETSII"; conexion = DriverManager.getConnection ( 	       	"jdbc:oracle:thin:@oracle0.ugr.es:1521:PRACTBD", 		  	"fjgarcia",clave); */
//Decimos que nos hemos conectado  out.println("<html>"); out.println("<body>"); out.println("<h1>¡Hemos conectado!</h1>"); out.println("</body>"); out.println("</html>"); 	}  	catch (ClassNotFoundException e1) {                 //Error si no puedo leer el driver de Oracle  out.println("ERROR:No encuentro el driver de la BD: "+ 				e1.getMessage()); 	} 	catch (SQLException e2) {                 //Error SQL: login/passwd mal out.println("ERROR:Fallo en SQL: "+e2.getMessage()); 	}
finally {                 //Finalmente desconecto de la BD 		try { if (conexion!=null) conexion.close(); 		} catch (SQLException e3) { out.println("ERROR:Fallo al desconectar de la BD: "+ 				e3.getMessage()); 		} 	}   } publicvoiddoPost(HttpServletRequestreq, HttpServletResponse res) throwsServletException, IOException { doGet(req, res);   } }
Observa que dentro de las bibliotecas que vamos a usar hemos añadido la línea import java.sql.*; que no sirve para utilizar las clases de JDBC  	El resultado si todo ha sido correcto debería ser:

Mais conteúdo relacionado

Mais procurados

Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0 Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0 Sabrina Rodriguezpiña
 
Guia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansGuia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansEmerson Garay
 
Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2mtemarialuisa
 
Uso java jdbc
Uso java jdbcUso java jdbc
Uso java jdbcjbersosa
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcatjubacalo
 
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 WebEmilio Aviles Avila
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2Steven Gomez
 
EJB con Eclipse y JBoss
EJB con Eclipse y JBossEJB con Eclipse y JBoss
EJB con Eclipse y JBossPaco Garat
 
PoolConnection + MySql + NetBeans 6.0
PoolConnection + MySql + NetBeans 6.0PoolConnection + MySql + NetBeans 6.0
PoolConnection + MySql + NetBeans 6.0Christian Mora
 
ConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En NetbeansConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En Netbeansguest044583b
 
Pool Conexiones My Sql Net Beans
Pool Conexiones My Sql Net BeansPool Conexiones My Sql Net Beans
Pool Conexiones My Sql Net Beanseccutpl
 
instalacion y conexion a base de datos postgrest /java
instalacion y conexion a base de datos postgrest /javainstalacion y conexion a base de datos postgrest /java
instalacion y conexion a base de datos postgrest /javaNey Rogger Miranda
 

Mais procurados (20)

JDBC
JDBCJDBC
JDBC
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0 Bases de datos desde Visual Basic 6.0
Bases de datos desde Visual Basic 6.0
 
Guia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando NetbeansGuia BD conexión Mysql con Java usando Netbeans
Guia BD conexión Mysql con Java usando Netbeans
 
Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2
 
Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
 
Uso java jdbc
Uso java jdbcUso java jdbc
Uso java jdbc
 
Ejercicio basico en asp.net LOZADA ERICK
Ejercicio basico en asp.net LOZADA ERICKEjercicio basico en asp.net LOZADA ERICK
Ejercicio basico en asp.net LOZADA ERICK
 
Conexión de Base de Datos
Conexión de Base de DatosConexión de Base de Datos
Conexión de Base de Datos
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
 
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
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
Mysql java
Mysql javaMysql java
Mysql java
 
EJB con Eclipse y JBoss
EJB con Eclipse y JBossEJB con Eclipse y JBoss
EJB con Eclipse y JBoss
 
Practica 4
Practica 4Practica 4
Practica 4
 
PoolConnection + MySql + NetBeans 6.0
PoolConnection + MySql + NetBeans 6.0PoolConnection + MySql + NetBeans 6.0
PoolConnection + MySql + NetBeans 6.0
 
ConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En NetbeansConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En Netbeans
 
Pool Conexiones My Sql Net Beans
Pool Conexiones My Sql Net BeansPool Conexiones My Sql Net Beans
Pool Conexiones My Sql Net Beans
 
Java
JavaJava
Java
 
instalacion y conexion a base de datos postgrest /java
instalacion y conexion a base de datos postgrest /javainstalacion y conexion a base de datos postgrest /java
instalacion y conexion a base de datos postgrest /java
 

Destaque

Sql en visual basic 6.0 (cajo pablo)
Sql en visual basic 6.0 (cajo pablo)Sql en visual basic 6.0 (cajo pablo)
Sql en visual basic 6.0 (cajo pablo)Rolando Cajo
 
Introducción a la Plataforma Visual Studio .NET
Introducción a la Plataforma Visual Studio .NETIntroducción a la Plataforma Visual Studio .NET
Introducción a la Plataforma Visual Studio .NETLuisAlfredoSB
 
Taller de fundamentos de programacion
Taller de fundamentos de programacionTaller de fundamentos de programacion
Taller de fundamentos de programacionUDECI
 

Destaque (8)

Sql en visual basic 6.0 (cajo pablo)
Sql en visual basic 6.0 (cajo pablo)Sql en visual basic 6.0 (cajo pablo)
Sql en visual basic 6.0 (cajo pablo)
 
Trabajo de programacion
Trabajo de programacionTrabajo de programacion
Trabajo de programacion
 
ConexióN
ConexióNConexióN
ConexióN
 
Henry gomez presentacion
Henry gomez presentacionHenry gomez presentacion
Henry gomez presentacion
 
Introducción a la Plataforma Visual Studio .NET
Introducción a la Plataforma Visual Studio .NETIntroducción a la Plataforma Visual Studio .NET
Introducción a la Plataforma Visual Studio .NET
 
Sql
SqlSql
Sql
 
Taller de fundamentos de programacion
Taller de fundamentos de programacionTaller de fundamentos de programacion
Taller de fundamentos de programacion
 
ETS, LEUCORREA Y EPI
ETS, LEUCORREA Y EPIETS, LEUCORREA Y EPI
ETS, LEUCORREA Y EPI
 

Semelhante a Conectar BD JDBC (20)

Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Connection
ConnectionConnection
Connection
 
JDBC
JDBCJDBC
JDBC
 
Jdbc
JdbcJdbc
Jdbc
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii
 
3. Curso Java JDBC (Bases de datos) - Curso 2005-2006
3. Curso Java JDBC (Bases de datos) - Curso 2005-20063. Curso Java JDBC (Bases de datos) - Curso 2005-2006
3. Curso Java JDBC (Bases de datos) - Curso 2005-2006
 
Jdbc (Java Database Connectivity)
Jdbc (Java Database Connectivity)Jdbc (Java Database Connectivity)
Jdbc (Java Database Connectivity)
 
Notas clase
Notas claseNotas clase
Notas clase
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii
 
Notas clase
Notas claseNotas clase
Notas clase
 
JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)JDBC(conjunto de clases e interfaces)
JDBC(conjunto de clases e interfaces)
 
Coneccion
ConeccionConeccion
Coneccion
 
Jdbc
JdbcJdbc
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)
[ES] Conectividad de java a base de datos(jdbc)
 
Jdbc
JdbcJdbc
Jdbc
 
Jdbc
JdbcJdbc
Jdbc
 
JAVA DATABASE CONNECTIVITY (JDBC)
  JAVA DATABASE CONNECTIVITY (JDBC)  JAVA DATABASE CONNECTIVITY (JDBC)
JAVA DATABASE CONNECTIVITY (JDBC)
 
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desde
 
Java con Base de Datos
Java con Base de DatosJava con Base de Datos
Java con Base de Datos
 
JDBC
JDBCJDBC
JDBC
 

Mais de David

Microprocesadores intel
Microprocesadores intelMicroprocesadores intel
Microprocesadores intelDavid
 
Microprocesadores intel
Microprocesadores intelMicroprocesadores intel
Microprocesadores intelDavid
 
Desarrollo de las computadoras
Desarrollo de las computadorasDesarrollo de las computadoras
Desarrollo de las computadorasDavid
 
Base de datos
Base de datosBase de datos
Base de datosDavid
 
Base de datos
Base de datosBase de datos
Base de datosDavid
 
Servidores web apache
Servidores web apacheServidores web apache
Servidores web apacheDavid
 
La enseñanza por el sistema de autoestudio
La enseñanza por el sistema de autoestudioLa enseñanza por el sistema de autoestudio
La enseñanza por el sistema de autoestudioDavid
 
Visual Basic .NET
Visual Basic .NETVisual Basic .NET
Visual Basic .NETDavid
 
Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrolloDavid
 

Mais de David (9)

Microprocesadores intel
Microprocesadores intelMicroprocesadores intel
Microprocesadores intel
 
Microprocesadores intel
Microprocesadores intelMicroprocesadores intel
Microprocesadores intel
 
Desarrollo de las computadoras
Desarrollo de las computadorasDesarrollo de las computadoras
Desarrollo de las computadoras
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Servidores web apache
Servidores web apacheServidores web apache
Servidores web apache
 
La enseñanza por el sistema de autoestudio
La enseñanza por el sistema de autoestudioLa enseñanza por el sistema de autoestudio
La enseñanza por el sistema de autoestudio
 
Visual Basic .NET
Visual Basic .NETVisual Basic .NET
Visual Basic .NET
 
Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrollo
 

Último

Anatomia.pfd29382819292829191929292929292929
Anatomia.pfd29382819292829191929292929292929Anatomia.pfd29382819292829191929292929292929
Anatomia.pfd29382819292829191929292929292929FiorellaLaura2
 
Clase 8. Caracteristicas de la población.pptx
Clase 8. Caracteristicas de la población.pptxClase 8. Caracteristicas de la población.pptx
Clase 8. Caracteristicas de la población.pptxVanessaPobletePoblet
 
Comandos Autocad Español Autodesk Autocad.pdf
Comandos Autocad Español Autodesk Autocad.pdfComandos Autocad Español Autodesk Autocad.pdf
Comandos Autocad Español Autodesk Autocad.pdfjuandavidbello432
 
Medición IRI Diseño de Pavimentos Maestria en Vias Terrestres
Medición IRI Diseño de Pavimentos Maestria en Vias TerrestresMedición IRI Diseño de Pavimentos Maestria en Vias Terrestres
Medición IRI Diseño de Pavimentos Maestria en Vias TerrestresKengYoshiIngaOchoa1
 
LANZAMIENTO, NUEVOS SET DE COCINA, PETROLEUM, VINTAGE, CARAMEL Y LAVANDA
LANZAMIENTO, NUEVOS SET DE COCINA, PETROLEUM, VINTAGE, CARAMEL Y LAVANDALANZAMIENTO, NUEVOS SET DE COCINA, PETROLEUM, VINTAGE, CARAMEL Y LAVANDA
LANZAMIENTO, NUEVOS SET DE COCINA, PETROLEUM, VINTAGE, CARAMEL Y LAVANDAdiawaraplast
 
Que es un sistema integrado de Seguridad.pptx
Que es un sistema integrado de Seguridad.pptxQue es un sistema integrado de Seguridad.pptx
Que es un sistema integrado de Seguridad.pptxYeissonRINCONRIVERA
 
Diagramas de flujo metalurgico en mineria.pptx
Diagramas de flujo metalurgico en mineria.pptxDiagramas de flujo metalurgico en mineria.pptx
Diagramas de flujo metalurgico en mineria.pptxHarryArmandoLazaroBa
 
EXAMEN HISTORIA UNIVERSAL 2do. Parcial.docx
EXAMEN HISTORIA UNIVERSAL 2do. Parcial.docxEXAMEN HISTORIA UNIVERSAL 2do. Parcial.docx
EXAMEN HISTORIA UNIVERSAL 2do. Parcial.docxjuanenriquetorresjua
 
arquitectura griega.pdf fghjdchjypiyez2d
arquitectura griega.pdf fghjdchjypiyez2darquitectura griega.pdf fghjdchjypiyez2d
arquitectura griega.pdf fghjdchjypiyez2dheribertaferrer
 
Arquitectura Mexicana Contemporánea en México
Arquitectura Mexicana Contemporánea en MéxicoArquitectura Mexicana Contemporánea en México
Arquitectura Mexicana Contemporánea en MéxicoJUANJOSESANCHEZPEA
 
MANUFACTURA AERONAUTICA 2024 presentacion
MANUFACTURA AERONAUTICA 2024 presentacionMANUFACTURA AERONAUTICA 2024 presentacion
MANUFACTURA AERONAUTICA 2024 presentacionssuser1ed434
 
Hospital croquis de modulo 3 con leyenda
Hospital croquis de modulo 3 con leyendaHospital croquis de modulo 3 con leyenda
Hospital croquis de modulo 3 con leyendaratc070603hmcmrha7
 
Plantilla árbol de problemas psico..pptx
Plantilla árbol de problemas psico..pptxPlantilla árbol de problemas psico..pptx
Plantilla árbol de problemas psico..pptxYasmilia
 
Afiche Didáctico-Temático de la Modernidad
Afiche Didáctico-Temático de la ModernidadAfiche Didáctico-Temático de la Modernidad
Afiche Didáctico-Temático de la ModernidadDiosymarSuarez
 
Sesión 02 Buenas practicas de manufactura.pptx
Sesión 02 Buenas practicas de manufactura.pptxSesión 02 Buenas practicas de manufactura.pptx
Sesión 02 Buenas practicas de manufactura.pptxMarcosAlvarezSalinas
 
DISIPADORES-DE-ENERGIA-DIAPOSITIVAS.pptx
DISIPADORES-DE-ENERGIA-DIAPOSITIVAS.pptxDISIPADORES-DE-ENERGIA-DIAPOSITIVAS.pptx
DISIPADORES-DE-ENERGIA-DIAPOSITIVAS.pptxPercyTineoPongo1
 
Parque lineal Los Lirios en las márgenes del arroyo Navajuelos, en San Cristó...
Parque lineal Los Lirios en las márgenes del arroyo Navajuelos, en San Cristó...Parque lineal Los Lirios en las márgenes del arroyo Navajuelos, en San Cristó...
Parque lineal Los Lirios en las márgenes del arroyo Navajuelos, en San Cristó...UNACH - Facultad de Arquitectura.
 
dia del niño peruano para cartulina.pdf.
dia del niño peruano para cartulina.pdf.dia del niño peruano para cartulina.pdf.
dia del niño peruano para cartulina.pdf.JimenaPozo3
 
La Modernidad y Arquitectura Moderna - Rosibel Velásquez
La Modernidad y Arquitectura Moderna - Rosibel VelásquezLa Modernidad y Arquitectura Moderna - Rosibel Velásquez
La Modernidad y Arquitectura Moderna - Rosibel VelásquezRosibelVictoriaVelas
 
Diseño y análisis de vigas doblemente reforzada
Diseño y análisis de vigas doblemente reforzadaDiseño y análisis de vigas doblemente reforzada
Diseño y análisis de vigas doblemente reforzadaJosAntonioFloresQuis
 

Último (20)

Anatomia.pfd29382819292829191929292929292929
Anatomia.pfd29382819292829191929292929292929Anatomia.pfd29382819292829191929292929292929
Anatomia.pfd29382819292829191929292929292929
 
Clase 8. Caracteristicas de la población.pptx
Clase 8. Caracteristicas de la población.pptxClase 8. Caracteristicas de la población.pptx
Clase 8. Caracteristicas de la población.pptx
 
Comandos Autocad Español Autodesk Autocad.pdf
Comandos Autocad Español Autodesk Autocad.pdfComandos Autocad Español Autodesk Autocad.pdf
Comandos Autocad Español Autodesk Autocad.pdf
 
Medición IRI Diseño de Pavimentos Maestria en Vias Terrestres
Medición IRI Diseño de Pavimentos Maestria en Vias TerrestresMedición IRI Diseño de Pavimentos Maestria en Vias Terrestres
Medición IRI Diseño de Pavimentos Maestria en Vias Terrestres
 
LANZAMIENTO, NUEVOS SET DE COCINA, PETROLEUM, VINTAGE, CARAMEL Y LAVANDA
LANZAMIENTO, NUEVOS SET DE COCINA, PETROLEUM, VINTAGE, CARAMEL Y LAVANDALANZAMIENTO, NUEVOS SET DE COCINA, PETROLEUM, VINTAGE, CARAMEL Y LAVANDA
LANZAMIENTO, NUEVOS SET DE COCINA, PETROLEUM, VINTAGE, CARAMEL Y LAVANDA
 
Que es un sistema integrado de Seguridad.pptx
Que es un sistema integrado de Seguridad.pptxQue es un sistema integrado de Seguridad.pptx
Que es un sistema integrado de Seguridad.pptx
 
Diagramas de flujo metalurgico en mineria.pptx
Diagramas de flujo metalurgico en mineria.pptxDiagramas de flujo metalurgico en mineria.pptx
Diagramas de flujo metalurgico en mineria.pptx
 
EXAMEN HISTORIA UNIVERSAL 2do. Parcial.docx
EXAMEN HISTORIA UNIVERSAL 2do. Parcial.docxEXAMEN HISTORIA UNIVERSAL 2do. Parcial.docx
EXAMEN HISTORIA UNIVERSAL 2do. Parcial.docx
 
arquitectura griega.pdf fghjdchjypiyez2d
arquitectura griega.pdf fghjdchjypiyez2darquitectura griega.pdf fghjdchjypiyez2d
arquitectura griega.pdf fghjdchjypiyez2d
 
Arquitectura Mexicana Contemporánea en México
Arquitectura Mexicana Contemporánea en MéxicoArquitectura Mexicana Contemporánea en México
Arquitectura Mexicana Contemporánea en México
 
MANUFACTURA AERONAUTICA 2024 presentacion
MANUFACTURA AERONAUTICA 2024 presentacionMANUFACTURA AERONAUTICA 2024 presentacion
MANUFACTURA AERONAUTICA 2024 presentacion
 
Hospital croquis de modulo 3 con leyenda
Hospital croquis de modulo 3 con leyendaHospital croquis de modulo 3 con leyenda
Hospital croquis de modulo 3 con leyenda
 
Plantilla árbol de problemas psico..pptx
Plantilla árbol de problemas psico..pptxPlantilla árbol de problemas psico..pptx
Plantilla árbol de problemas psico..pptx
 
Afiche Didáctico-Temático de la Modernidad
Afiche Didáctico-Temático de la ModernidadAfiche Didáctico-Temático de la Modernidad
Afiche Didáctico-Temático de la Modernidad
 
Sesión 02 Buenas practicas de manufactura.pptx
Sesión 02 Buenas practicas de manufactura.pptxSesión 02 Buenas practicas de manufactura.pptx
Sesión 02 Buenas practicas de manufactura.pptx
 
DISIPADORES-DE-ENERGIA-DIAPOSITIVAS.pptx
DISIPADORES-DE-ENERGIA-DIAPOSITIVAS.pptxDISIPADORES-DE-ENERGIA-DIAPOSITIVAS.pptx
DISIPADORES-DE-ENERGIA-DIAPOSITIVAS.pptx
 
Parque lineal Los Lirios en las márgenes del arroyo Navajuelos, en San Cristó...
Parque lineal Los Lirios en las márgenes del arroyo Navajuelos, en San Cristó...Parque lineal Los Lirios en las márgenes del arroyo Navajuelos, en San Cristó...
Parque lineal Los Lirios en las márgenes del arroyo Navajuelos, en San Cristó...
 
dia del niño peruano para cartulina.pdf.
dia del niño peruano para cartulina.pdf.dia del niño peruano para cartulina.pdf.
dia del niño peruano para cartulina.pdf.
 
La Modernidad y Arquitectura Moderna - Rosibel Velásquez
La Modernidad y Arquitectura Moderna - Rosibel VelásquezLa Modernidad y Arquitectura Moderna - Rosibel Velásquez
La Modernidad y Arquitectura Moderna - Rosibel Velásquez
 
Diseño y análisis de vigas doblemente reforzada
Diseño y análisis de vigas doblemente reforzadaDiseño y análisis de vigas doblemente reforzada
Diseño y análisis de vigas doblemente reforzada
 

Conectar BD JDBC

  • 1. SerVlet Conectar con Base de Datos DavidPaLMundo@hotmail.com
  • 2. JDBC (Java DatabaseConnectivity) es la parte de Java que nos va a permitir conectarnos con bases de datos relacionales utilizando el lenguaje SQL. JDBC permite la integración de llamadas SQL dentro del código de nuestro Servlet Java proporcionando clases que nos permiten interactuar de forma fácil, cómoda y homogénea con bases de datos externas.
  • 3. Conexión con la base de datos con JDBC Antes de acceder a la base de datos, es necesario conectarse desde nuestro Servlet (Cliente, en este caso) a la base de datos (servidor), esto se hace mediante dos pasos: Leer el driver específico de la base de datos que vamos a utilizar, en nuestro caso, será: Class.forName("oracle.jdbc.driver.OracleDriver")
  • 4. Establecer la conexión. Una vez que tenemos el driver cargado en memoria, tendremos que crear una conexión (objeto de la clase Connection), indicando el driver a usar (jdbc:oracle:thin), la máquina(localhost), el puerto(1521), el SID de la base de datos(ProgBD2), el usuario(fjgarcia) y su contraseña(claveSecreta). Por ejemplo: Connectionconexion = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:ProgBD2", "fjgarcia", "claveSecreta") Cuando leemos el driver específico de la base de datos (en nuestro, caso oracle.jdbc.driver.OracleDriver) se puede producir una excepción del tipo (ClassNotFoundException que ocurrirá si no tenemos instalado correctamente el driver JDBC (revisar parte de instalación). Al leer el driver este se quedará en memoria y será el que se utilice internamente por JDBC.
  • 5. Cuando creamos una conexión (nos devuelve un objeto Connection) se abre una conexión con la base de datos que posteriormente debemos cerrar. Para crear la conexión se utiliza, como hemos visto, el método getConnection de la clase DriverManager, que como vemos tiene tres parámetros, el primero será la cadena de conexión, el segundo el usuario y el tercero la contraseña de dicho usuario. En la cadena de conexión tenemos el driver que se va a utilizar, nosotros siempre usaremos jdbc:oracle:thin la máquina a la que nos vamos a conectar precedida de una arroba (nosotros podremos usar @localhost para nuestro ordenador local o @oracle0.ugr.es para el servidor de la escuela), el puerto a utilizar (tanto local, como remoto usaremos el 1521) y el SID de la base de datos a utilizar (en local será ProgBD2 y en el servidor de la escuela será PRACTBD.
  • 6. Como hemos mencionado anteriormente para toda conexión que abramos tendremos que cerrarla, eso se hará mediante el método close()de Connection. Veamos un pequeño ejemplo que sólo conecte a la base de datos local para ver si hubiera algún problema y que guardaremos como ConectaBD.java:
  • 7. Conectar importjavax.servlet.*; importjavax.servlet.http.*; import java.io.*; import java.sql.*; publicclassConectaBDextendsHttpServlet { publicvoidinit(ServletConfigconf) throwsServletException { super.init(conf); } publicvoiddoGet(HttpServletRequestreq, HttpServletResponse res) throwsServletException, IOException { Connectionconexion = null; res.setContentType("text/html"); PrintWriterout = res.getWriter();
  • 8. try { //Leemos el driver de Oracle Class.forName("oracle.jdbc.driver.OracleDriver"); //Nos conectamos a la BD local conexion = DriverManager.getConnection ( "jdbc:oracle:thin:@localhost:1521:PROGBD2", "fjgarcia","claveSecreta"); /*//Nos conectamos a la BD de la ETSII Stringclave="claveSecretaETSII"; conexion = DriverManager.getConnection ( "jdbc:oracle:thin:@oracle0.ugr.es:1521:PRACTBD", "fjgarcia",clave); */
  • 9. //Decimos que nos hemos conectado out.println("<html>"); out.println("<body>"); out.println("<h1>¡Hemos conectado!</h1>"); out.println("</body>"); out.println("</html>"); } catch (ClassNotFoundException e1) { //Error si no puedo leer el driver de Oracle out.println("ERROR:No encuentro el driver de la BD: "+ e1.getMessage()); } catch (SQLException e2) { //Error SQL: login/passwd mal out.println("ERROR:Fallo en SQL: "+e2.getMessage()); }
  • 10. finally { //Finalmente desconecto de la BD try { if (conexion!=null) conexion.close(); } catch (SQLException e3) { out.println("ERROR:Fallo al desconectar de la BD: "+ e3.getMessage()); } } } publicvoiddoPost(HttpServletRequestreq, HttpServletResponse res) throwsServletException, IOException { doGet(req, res); } }
  • 11. Observa que dentro de las bibliotecas que vamos a usar hemos añadido la línea import java.sql.*; que no sirve para utilizar las clases de JDBC El resultado si todo ha sido correcto debería ser: