SlideShare una empresa de Scribd logo
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:

Más contenido relacionado

La actualidad más candente

JDBC
JDBCJDBC
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
GREINDER MARCHENA & LIZ VASQUEZ
 
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 Netbeans
Emerson Garay
 
Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2Manual Netbeans Bases Datos2
Manual Netbeans Bases Datos2mtemarialuisa
 
Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
Emilio Aviles Avila
 
Uso java jdbc
Uso java jdbcUso java jdbc
Uso java jdbc
jbersosa
 
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
Erick Paul Lozada Peñarreta
 
Conexión de Base de Datos
Conexión de Base de DatosConexión de Base de Datos
Conexión de Base de Datos
Priscila Edith Gómez Rascón
 
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
jubacalo
 
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
 
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 JBoss
Paco Garat
 
Practica 4
Practica 4Practica 4
Practica 4
cobymotion
 
PoolConnection + MySql + NetBeans 6.0
PoolConnection + MySql + NetBeans 6.0PoolConnection + MySql + NetBeans 6.0
PoolConnection + MySql + NetBeans 6.0
Christian 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 Beans
eccutpl
 
Java
JavaJava
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
Ney Rogger Miranda
 

La actualidad más candente (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
 

Destacado

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 .NET
LuisAlfredoSB
 
Sql
SqlSql
Taller de fundamentos de programacion
Taller de fundamentos de programacionTaller de fundamentos de programacion
Taller de fundamentos de programacion
UDECI
 
ETS, LEUCORREA Y EPI
ETS, LEUCORREA Y EPIETS, LEUCORREA Y EPI
ETS, LEUCORREA Y EPI
Alejandra Angel
 

Destacado (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
 

Similar a Ser vlet conectar con base de datos

Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
Erlin Darwin Herrera cieza
 
Connection
ConnectionConnection
JDBC
JDBCJDBC
Jdbc
JdbcJdbc
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii1 2d
 
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
Samuel Marrero
 
Jdbc (Java Database Connectivity)
Jdbc (Java Database Connectivity)Jdbc (Java Database Connectivity)
Jdbc (Java Database Connectivity)
GREINDER MARCHENA & LIZ VASQUEZ
 
Notas clase
Notas claseNotas clase
Notas clase1 2d
 
Notas clase java ii
Notas clase java iiNotas clase java ii
Notas clase java ii1 2d
 
Notas clase
Notas claseNotas clase
Notas clase1 2d
 
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
 
Coneccion
ConeccionConeccion
Jdbc
JdbcJdbc
[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
 
Jdbc
JdbcJdbc
JAVA DATABASE CONNECTIVITY (JDBC)
  JAVA DATABASE CONNECTIVITY (JDBC)  JAVA DATABASE CONNECTIVITY (JDBC)
JAVA DATABASE CONNECTIVITY (JDBC)
MILAGRINAMAGUINAPRINCIPE
 
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desde
jbersosa
 
Java con Base de Datos
Java con Base de DatosJava con Base de Datos
Java con Base de Datos
Thalia Regalado Juape
 
JDBC
JDBCJDBC

Similar a Ser vlet conectar con base de datos (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
 

Más de David

Microprocesadores intel
Microprocesadores intelMicroprocesadores intel
Microprocesadores intel
David
 
Microprocesadores intel
Microprocesadores intelMicroprocesadores intel
Microprocesadores intel
David
 
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 datos
David
 
Base de datos
Base de datosBase de datos
Base de datos
David
 
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 autoestudio
David
 
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 desarrollo
David
 

Más 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

Movimiento Moderno en Venezuela Arquitectura
Movimiento Moderno en Venezuela ArquitecturaMovimiento Moderno en Venezuela Arquitectura
Movimiento Moderno en Venezuela Arquitectura
LeonardoDantasRivas
 
capitulo-18-sistema--706807-downloadable-2573126.pdf
capitulo-18-sistema--706807-downloadable-2573126.pdfcapitulo-18-sistema--706807-downloadable-2573126.pdf
capitulo-18-sistema--706807-downloadable-2573126.pdf
ProfesorCiencias2
 
Propuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseñoPropuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseño
Mariano Salgado
 
Desarrollo de habilidades de pensamiento (1).pdf
Desarrollo de habilidades de pensamiento (1).pdfDesarrollo de habilidades de pensamiento (1).pdf
Desarrollo de habilidades de pensamiento (1).pdf
marianamadronero578
 
DIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en lineaDIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en linea
EduarRamos7
 
Arquitectura Ecléctica e Historicista en Latinoamérica
Arquitectura Ecléctica e Historicista en LatinoaméricaArquitectura Ecléctica e Historicista en Latinoamérica
Arquitectura Ecléctica e Historicista en Latinoamérica
imariagsg
 
Figuras bidimensionales en el diseño.pptx
Figuras bidimensionales en el diseño.pptxFiguras bidimensionales en el diseño.pptx
Figuras bidimensionales en el diseño.pptx
LuisFernandoOcampoGa
 
informecbdlp-240603151721-44655eeh2.docx
informecbdlp-240603151721-44655eeh2.docxinformecbdlp-240603151721-44655eeh2.docx
informecbdlp-240603151721-44655eeh2.docx
IsabellaCortes7
 
Patrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en CancunPatrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en Cancun
DianaArtemizaCP
 
Infografía profesional cronología horizontal bloques de colores fondo negro.pdf
Infografía profesional cronología horizontal bloques de colores fondo negro.pdfInfografía profesional cronología horizontal bloques de colores fondo negro.pdf
Infografía profesional cronología horizontal bloques de colores fondo negro.pdf
salazar1611ale
 
VERTEDEROS CRESTA ANCHA- PRESENTACION FINAL CON PREGUNTAS.pptx
VERTEDEROS CRESTA ANCHA- PRESENTACION FINAL CON PREGUNTAS.pptxVERTEDEROS CRESTA ANCHA- PRESENTACION FINAL CON PREGUNTAS.pptx
VERTEDEROS CRESTA ANCHA- PRESENTACION FINAL CON PREGUNTAS.pptx
ingridavila20
 
etiqueta que se utiliza en un restaurante .pdf
etiqueta que se utiliza en  un restaurante  .pdfetiqueta que se utiliza en  un restaurante  .pdf
etiqueta que se utiliza en un restaurante .pdf
Vhope6
 
Teoría del Color para diseñadores y pintores
Teoría del Color para diseñadores y pintoresTeoría del Color para diseñadores y pintores
Teoría del Color para diseñadores y pintores
EduardoGM8
 
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdfEstilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
JosueJuanez1
 
La Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por KarinaLa Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por Karina
KarinaRodriguezG2
 

Último (15)

Movimiento Moderno en Venezuela Arquitectura
Movimiento Moderno en Venezuela ArquitecturaMovimiento Moderno en Venezuela Arquitectura
Movimiento Moderno en Venezuela Arquitectura
 
capitulo-18-sistema--706807-downloadable-2573126.pdf
capitulo-18-sistema--706807-downloadable-2573126.pdfcapitulo-18-sistema--706807-downloadable-2573126.pdf
capitulo-18-sistema--706807-downloadable-2573126.pdf
 
Propuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseñoPropuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseño
 
Desarrollo de habilidades de pensamiento (1).pdf
Desarrollo de habilidades de pensamiento (1).pdfDesarrollo de habilidades de pensamiento (1).pdf
Desarrollo de habilidades de pensamiento (1).pdf
 
DIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en lineaDIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en linea
 
Arquitectura Ecléctica e Historicista en Latinoamérica
Arquitectura Ecléctica e Historicista en LatinoaméricaArquitectura Ecléctica e Historicista en Latinoamérica
Arquitectura Ecléctica e Historicista en Latinoamérica
 
Figuras bidimensionales en el diseño.pptx
Figuras bidimensionales en el diseño.pptxFiguras bidimensionales en el diseño.pptx
Figuras bidimensionales en el diseño.pptx
 
informecbdlp-240603151721-44655eeh2.docx
informecbdlp-240603151721-44655eeh2.docxinformecbdlp-240603151721-44655eeh2.docx
informecbdlp-240603151721-44655eeh2.docx
 
Patrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en CancunPatrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en Cancun
 
Infografía profesional cronología horizontal bloques de colores fondo negro.pdf
Infografía profesional cronología horizontal bloques de colores fondo negro.pdfInfografía profesional cronología horizontal bloques de colores fondo negro.pdf
Infografía profesional cronología horizontal bloques de colores fondo negro.pdf
 
VERTEDEROS CRESTA ANCHA- PRESENTACION FINAL CON PREGUNTAS.pptx
VERTEDEROS CRESTA ANCHA- PRESENTACION FINAL CON PREGUNTAS.pptxVERTEDEROS CRESTA ANCHA- PRESENTACION FINAL CON PREGUNTAS.pptx
VERTEDEROS CRESTA ANCHA- PRESENTACION FINAL CON PREGUNTAS.pptx
 
etiqueta que se utiliza en un restaurante .pdf
etiqueta que se utiliza en  un restaurante  .pdfetiqueta que se utiliza en  un restaurante  .pdf
etiqueta que se utiliza en un restaurante .pdf
 
Teoría del Color para diseñadores y pintores
Teoría del Color para diseñadores y pintoresTeoría del Color para diseñadores y pintores
Teoría del Color para diseñadores y pintores
 
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdfEstilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
 
La Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por KarinaLa Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por Karina
 

Ser vlet conectar con base de datos

  • 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: