Bueno esta es otra actividad realizada en la FITCO para Alex Osorio.
Este es un pequeño ejemplo de conexión a bases de datos con JSP y MySQL.
Para poder conectar se a MySQL se necesita un driver, el cual puedes desacargar en la pagina de MySQL http://www.mysql.com/downloads/connector/j/5.1.html
y crear la carpeta web-inf, como se explicó en entradas anteriores
la estructura del proyecto sería algo muy parecido a
El ejemplo consta de 2 paginas la primera pagina:
donde se conecta a la base de datos
index.jsp
<!-- en la directiva page observamos el import="java.sql.*"--> <!-- esta es la analogia en java a importar paquetes y/o clases--> <!-- en el paquete java.sql.* estan las clases necesarias--> <!-- para la conexion a la bd mysql --> <%@ page language="java" import="java.sql.*" %> <% /*conexion sera nuestra conexion a la bd*/ Connection conexion=null; String mensaje=""; /*parametros para la conexion*/ String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/prueba"; String usuario = "root"; String clave = ""; /*procedimiento de la conexion*/ try{ Class.forName(driver); conexion = DriverManager.getConnection(url,usuario,clave); /*guardando la conexion en la session*/ session.setAttribute("conexion",conexion); } catch (Exception ex){ mensaje=ex.toString(); } mensaje="conectado"; if(conexion.isClosed()){ mensaje="desconectado"; } %> <html> <head> <title>EJERCICIO 03 CONEXION BD CON JSP</title> </head> <body> <form action="desconectar.jsp" method="post"> <input name="estado" type="text" value="Estado: <%=mensaje%>"/> <input type="submit" value="Desconectar"/> </form> </body> </html>
la segunda pagina:
donde se extrae la conexión de la session y se cierra
desconectar.jsp
<!-- en la directiva page observamos el import="java.sql.*"--> <!-- esta es la analogia en java a importar paquetes y/o clases--> <!-- en el paquete java.sql.* estan las clases necesarias--> <!-- para la conexion a la bd mysql --> <%@ page language="java" import="java.sql.*" %> <% /*conexion sera nuestra conexion a la bd*/ Connection conexion=null; String mensaje=""; /*rescatando la conexion de la session*/ conexion=(Connection)session.getAttribute("conexion"); /*cerrando la conexion*/ conexion.close(); mensaje="conectado"; if(conexion.isClosed()){ mensaje="desconectado"; } %> <html> <head> <title>EJERCICIO 03 CONEXION BD CON JSP</title> </head> <body> <form action="index.jsp" method="post"> <input name="estado" type="text" value="Estado: <%=mensaje%>"/> <input type="submit" value="Conectar"/> </form> </body> </html>
hola sera que me puedes ayudar yo trabajo un poco con php pero ahora le quiero dar tambien a jsp resulta lo siguiente nose como pasar parametros de un jsp a un bean para imprimir luego en un jsp se como hacerlo con servlet pero no me parece correcto ya que este imprime el codigo html y no deberia ser asi me puedes dar alguna idea de extraer datos de una tabla y mostrarlos sin usar servlet
¿estas hablando de pasar datos de un html a un bean? te recomiendo primero te pases por aquí https://ingeniods.wordpress.com/tutorial-jsp/ para ver si hay algo que te sirva
pues muy chevere men tus tutoriales pero el caso es que yo quiero por ejemplo si yo tengo ne un bean una cadena de conexion dodne conecto a una base de datos y un metodo o funcion donde haga una consulta que en es te caso es un .class el bean y en dicha consulta yo quiero que me haga un select por un parametro que yo envie desde un formulario que este en un .html o .jsp como hago para capturar ese parametro que es el que va a hacer la condicion de la consulta en el bean por que quisiera que la parte de codigo de logica o controlador este aparte y lo que sea vista aparte
sigo con mi idea…
man la configuración de la consulta esta en la pagina es solo obtener la configuración y ejecutar la consulta en otras entradas se hacen consultas mas especificas esta es solo una pequeña pero te recomiendo que veas otras entradas
Man que buen tutorial me sacaste de un apuro! esta genial! muy buen aporte! probado sobre Ubuntu y a la primera! gracias! saludos
hey que más!
asunto: tengo que conectar un servlet con una base de datos
cuales son las clases que debo hacer
tengo una jsp donde estan los botones y eso
otra es el servlet, que me hace falta para conectar a base de datos
… me dijeron que la clase conection etc….
una mano con eso por favor
gracoas
Talves esto te sirva https://ingeniods.wordpress.com/2010/05/24/mvc-en-jsp/
Hola, la verda estoy haciendo un proyecto de un sistema de facturacion, yo trabajo con Tomcat, jsp y mysql, ya puedo hacer la conexion, pero se me ha dificultado hacer los select para guardar y listar varios datos de un formulario. te agradeceria mucho si me puedes colaborar ya que he buscado pero no he podido encontrar una base, gracias.
Deisy si tu problema solo es con los select y esas cosas puedes Descargarte JMerlin en 4shared hay creo que 4 compilados de JMerlin 4.3.0.1 y un video de como funciona (el vídeo es de la versión superior pero para el caso no importa), si las consultas van mas allá de las que JMerlin genera yo te puedo colaborar
Hola, una pregunta, normalmente uso mis propias clases para esto pero siguiendo tu ejemplo, intenté conectarme a mi base de datos y los métodos close() isclosed() me generan error, le puse un Exception y me muestra que esos comandos me tiran un null, quisiera saber porque puede estar pasando eso.
¿Otra pregunta de concepto, cuando hablamos de beans es lo mismo que hablar de clases? por ejemplo yo tengo todas mis clases en jar y las tengo dividadas por componentes, me explico el componente de seguridad tienen unas 10 clases aproximadamente, el componente de administracion tiene como 5 y asi tengo estructurado mi sw. Lo bueno es que esos componentes se pueden usar para Web, para escritorio porque son independientes de la parte visual. compilados estos componentes me crea seguridad.jar, administration.jar, etc y en cada uno de ellos se tienen las clases que intervienen en esos procesos. Esto serían beans? o estoy perdido en el concepto de beans?
Gracias
un bean es una clase pero no toda clase es un bean, un bean es una clase de modelo por ejemplo Persona, Empleado serían beans, pero una clase VentanaPersona no sería un bean, lo de la exception tendría que verlo en contexto para poder responder y el nombre de la exception especifica.
osea que un bean es una clase que solo recibe y devuelve información?.
Mis clases son como dices: personas, documentos, seguridad según lo que se haga.
gracias
Otra cosa, como siempre he trabajado en SQL server entonces al proyecto le agrego en librerías el driver de la base de datos sqlserver2005. En mySQL debo hacer lo mismo con el driver de la base de datos de agregarla a la librería de mi proyecto?
gracias
si hay que agregar las bibliotecas hay pongo el enlace de donde la descargué
gracias, que bueno este tutorial
Hola, con el problema de la conexión ya lo arreglé. En donde pone uno el nombre del servidor que por defecto se pone localhost, yo pongo el nombre del mio que se llama «armar», pero muy extraño no conecta, por eso devuelve null, pero cuando lo cambio a localhost funciona de maravilla. el nombre del servidor lo uso con las conexiones a SQLserver y funciona perfecto, ¿porque no me funciona en mysql con el nombre del servidor?
Gracias
ha, eso se debe a la naturaleza de la conexión entre MySQL y SQLServer, porque en SQLServer uno le da nombre al servidor de base de datos (aparte del nombre de dominio o ip) pero en MySQL lo que le damos nombre es al equipo (ruta, nombre de dominio o IP)
si mi equipo se llama ARMAR, como debo poner el nombre en la conexion para que me funcione?
gracias
hola oye disculpa una pregunta soy nuevo en esto de la programacion web y no entiendo bien lo de las conexiones de la bd con las paginas html amm es con las jsp mm pero tambien ocupamos java y no se como hacerlo mm el ejemplo q pusiste es para hacer la conexion no?? pero eso es lo q hace con todas las bd o solo con el ejmeplo que pones??
es para realizar conexiones a bases de datos mysql, ya que cada base de datos tiene su propio driver, y dentro de las bases de datos mysql cada una tiene su propia estructura así que si es solo para la que está en el ejemplo, la idea es que lo adapten a sus necesidades.
De nuevo yo JEJEJE
ahora con algo de AUTOCOMMIT y eso de lo de la BD en MYSQL
Mira la cuestión es simple tengo una tabla de usuarios donde se dan de alta obviamente registros de usuarios la tabla tiene una columna de «correo» donde obvio no se puede repetir el correo de un usuario peroooooooooo…. cuando doy exactamente de alta dos usuarios al mismo tiempo agrega a los dos correos.
para esto existe una senetencia «IF» que funciona de lujo si agrego usuario por usuario pero si agrego los dos como menciono arriba no funciona jaja y agrega los dos me dijeron que era con el commit y el rollback espero me puedan ayudar thanks.
Bueno te explico algo… SQL es un lenguaje de 4ta generación, y lo que tratas de hacer es bajar una generación y realizar la verificación, lo que te recomiendo es más simple marca el campo email como único en tu base de datos y te lanzara una SQLException al tratar de realizar el segundo registro
oye otra preguntilla y como soluciono que mientras un registro se esta utilizando(modificando , eliminando) bloquee las altas o las bajas hasta que termine de realizar la modificación
Espero haberme explicado
Encerio me urge esa respuesta por favor ayuda
pues en bases de datos Oracle se puede hacer, pero en mysql no conozco el método, yo me invente uno que es generar un md5 del registro que estoy modificando, por ejemplo:
una consulta de nombre y clave de la tabla usuarios.
select nombre, clave from usuarios where id = 100;
yo lo hago así
select nombre, clave, md5(select * from usuarios where id = 100) as llave from usuarios where id = 100;
al momento de actualizar recibo el md5
update usuarios
set clave = ‘miclave’, nombre= ‘minombre’
where
id=100
and
md5(select * from usuarios where id = 100) = ‘md5 enviado’.
de está manera al momento de actualizar si un campo ha sido modificado el md5 será diferente y la actualización no se ejecutará.
podrías lanzar una excepción y así decirle al usuario por que no se ha actualizado, sería un pequeño procedimiento, y sería mejor y mas robusto, eso haría yo.
A MUCHAS GRACIAS EN VERDAD TE LO AGRADESCO
Primero que todo, como puedo crear una tabla en MySQL, luego guardarla y poder realizar la conexión que me plantea en el código fuente. El AppServer tiene una interfaz que permite crear una tabla lo más facil posible, como lo hago en Apache Tomcat?? Cuando dice String url = «jdbc:mysql://localhost:3306/prueba»; a que base de datos se refiere? donde se encuentra? como la creo? Gracias…
Primero tienes que descargar MySQL e intalarlo.
Para trabajar con la base de datos puedes hacerlo a código, o con un administrador yo uso MySQL Workbench, aunque también puedes usar HeidiSQL.
la configuración de la cadena de conexión es esta:
jdbc:mysql://localhost:3306/prueba
tipo de conexión=jdbc:mysql
dirección del host=//localhost:3306
base de datos=/prueba
Me ha ido de p.m., muy agradecida!
Nunca me habían agradecido de una manera tan….. sincera.
Gracias a ti por visitar Ingenio DS
Men a un no puedo ejecutar el ejemplo que has puesto siempre este error:
Ha sucedido una excepción al procesar la página JSP /index.jsp en línea 29
26: }
27:
28: mensaje=»conectado»;
29: if(conexion.isClosed()){
30: mensaje=»desconectado»;
31: }//*/
32: %>
¿cual es la exception que te sale?
yo tengo el mismo problema y aparece la exception org.apache.jasper.JasperException
pero… ¿cual es la excepcion completa?
tengo el mismo error anterior :
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /ejercicio03/index.jsp at line 29
26: }
27:
28: mensaje=»conectado»;
29: if(conexion.isClosed()){
30: mensaje=»desconectado»;
31: }
32: %>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.NullPointerException
org.apache.jsp.ejercicio03.index_jsp._jspService(index_jsp.java:91)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
solucionado. lo unico es que me falto parar el tomcat y volverlo a arrancar…
un paso de no pasar por alto, reiniciar la plataforma de despliegue en cada cambio
Hola, consulta:
Tengo creado un applet con conexión a la base de datos, al probar el applet funciona todo correctamente pero al implementarlo en un html no logro realizar la conexión con la base de datos y no me realiza ninguna operación con la base.
El applet tiene certificación y firma pero aún así no me funciona con html.
¿Abra algo que falte?
Agradezco tu ayuda.
estuve un mes por fuera, pero el problema pude ser que los applets siempre se ejecutan como local
Hola me gustaría saber cómo insertar datos utilizando esta arquitectura en la base de datos algún ejemplo de código que tengas… muchas gracias
Aquí ya hay un ejemplo de inserción de datos puede que te sirva, de todas formas en el resto del blog hay varias cosas https://ingeniods.wordpress.com/2010/05/07/mi-primera-aplicacion-jsp/
Hola que tal, disculpa tienes idea de por que me sale esta excepcion, tal como lo baje lo puse en webapps:
type Informe de Excepción
mensaje
descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.
excepción
org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
causa raíz
java.lang.NullPointerException
org.apache.jsp.index_jsp._jspService(index_jsp.java:91)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
nota La traza completa de la causa de este error se encuentra en los archivos de diario de Apache Tomcat/7.0.26.
de antemano gracias.
para eso se necesita la traza completa del error
Hola!
Que tal compañero de la vida xd.
Esta chevere el post, me gusto pero tengo una duda muy dudosa jejeje
Como podría hacer esta misma conexión a la bd pero usando un paquete de clases java, es decir que no sea desde el index como tal y haga referencia a una clase digamos conexionbd.
¿Como lo podría hacer?
en otra parte del blog ya se utiliza de la manera como quieres revisa esto https://ingeniods.wordpress.com/2010/05/07/mi-primera-aplicacion-jsp/
Saludos ingeniods..
Tengo un proyecto en jsp y trabajo con tomcat, ya compre el hosting y el dominio y todo, pero no se como hacer para montar mi proyecto en la web con cpanel. He investigado bastantemente y la verdad nada de lo que he mirado me sirve para montar mi pagina, sera que me puedes explicar paso a paso como hacerlo???.. ahh otra cosa intente montar los archivos con el cpanel pero no me funciona y todo lo que escuentro me lo explican con FTB.. Agradeceria mucho tu pronta respuesta..