Sie sind auf Seite 1von 3

ACCESO A BASE DE DATOS MYSQL CON JSP

CONTENIDO
1. ACCESO A BASES DE DATOS MYSQL
1.1. PASOS PARA ACCEDER A BASE DE DATOS
1.2. EJEMPLO DE CONSULTA E INSERSIÓN DE DATOS
2. EJERCICIO PROPUESTO

1. ACCESO A BASES DE DATOS MYSQL

1.1. PASOS PARA ACCEDER A BASE DE DATOS


JDBC es una API pura de Java que se usa para ejecutar comandos de SQL. Suministra una serie de clases e
interfaces que permiten al desarrollador de Web escribir aplicaciones que gestionen Bases de Datos.

La interacción típica con una base de datos consta de los siguientes cuatro pasos básicos:

o Abrir la conexión a la base de datos


o Ejecutar consultas contra la base de datos
o Procesar los resultados
o Cerrar la conexión a la base de datos

// Paso 1. Abrir la conexión a la base de datos.


//MEDIANTE ODBC
Connection conexion =
DriverManager.getConnection("jdbc:odbc:Nombre_ODBC","usuario","password");

//CONEXIÓN DIRECTA A MYSQL


Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost/prueba?
user=root&password=");

// Paso 2. Ejecutar consultas a la base de datos.


Statement Estamento = conexion.creStatement();
ResultSet rs = Estamento.executeQuery("select dni,nombre,apellidos,edad from
agenda");

// Paso 3. Procesar los resultados. En este caso los muestra en pantalla.


while (rs.next()) {
out.println("DNI ->"+ rs.getString("dni"));
out.println("NOMBRE ->"+ rs.getString("nombre"));
out.println("APELLIDOS ->"+ rs.getString("apellidos"));
out.println("EDAD ->"+ rs.getInt("edad"));
}

// Paso 4 . Cerrar la conexión a la base de datos.


rs.close();
Estamento.close();
conexion.close();

1.2. CONSULTA E INSERSIÓN DE DATOS

Crear una Base de Datos en Mysql con el nombre: prueba


Crear una tabla con el nombre articulo y que contenga los siguientes campos:
- codigo varchar(6) clave principal
- descripcion varchar(50)
- cantidad int(10) unsigned
- precio float

Ing. Bertha Mazón 1


Ejemplo: bd_consulta.jsp
<%
//declaración de variables globales
Statement stmt_consul=null, stmt_inser = null;
ResultSet rs = null;
Connection conn= null;
Object dato;
//conexion a la base de datos
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn =
DriverManager.getConnection("jdbc:mysql://localhost/prueba?user=root&password=");
}catch(SQLException ex) {}
//insersión de datos
String temp2=request.getParameter("op");
if(temp2==null)temp2="";
if(temp2.compareTo("Guardar")==0){
try{
stmt_inser = conn.createStatement();
String codigo=request.getParameter("txtcodigo"); if(codigo==null)codigo="";
String desc=request.getParameter("txtdesc"); if(desc==null)desc="";
int cant=Integer.parseInt(request.getParameter("txtcant"));
String precio=request.getParameter("txtprecio"); if(precio==null)desc="0";

String strSQL= "INSERT INTO articulo values('" + codigo + "','" + desc + "'," +
cant + "," + precio +")";
stmt_inser.executeUpdate(strSQL);
out.println("Insersión exitosa");
} catch (SQLException ex) {}
}
//Consultar la base de datos
try{
stmt_consul = conn.createStatement();
rs = stmt_consul.executeQuery("SELECT * FROM articulo");
rs = stmt_consul.getResultSet();
} catch (SQLException ex) {
out.println("SQLException: " + ex.getMessage());
out.println("SQLState: " + ex.getSQLState());
out.println("VendorError: " + ex.getErrorCode());
}
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"


"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<div align="center"><strong>LISTADO DE ART&Iacute;CULOS </strong><br>


</div>
<table width="464" height="52" border="1" align="center">
<tr align="center" bgcolor="#FFFFCC">
<td><strong>C&oacute;digo</strong></td>
<td><strong>Descripci&oacute;n</strong></td>
<td><strong>Cantidad</strong></td>
<td><strong>Precio</strong></td>
</tr>
<% while (rs.next()) { %>
<tr>
<td><%= (dato=rs.getObject("codigo"))==null ?"":dato%></td>
<td><%= (dato=rs.getObject("descripcion"))==null ?"":dato%></td>
<td><%= (dato=rs.getObject("cantidad"))==null ?"":dato%></td>

Ing. Bertha Mazón 2


<td><%= (dato=rs.getObject("precio"))==null ?"":dato%></td>
</tr>
<% } %>
</table>
<blockquote>
<p><a href="bd_consulta.jsp?op=frmInsert">Nuevo art&iacute;culo </a> </p>
</blockquote>
<%
String temp1=request.getParameter("op");
if(temp1==null)temp1="";
if(temp1.compareTo("frmInsert")==0){
%>
<form name="form1" method="post" action="bd_consulta.jsp">
<fieldset>
<table width="552" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bordercolor="#FFFFCC" bgcolor="#FFFFCC"><strong>Código:</strong></td>
<td><input name="txtcodigo" type="text" size="10" maxlength="6"></td>
</tr>
<tr>
<td bordercolor="#FFFFCC" bgcolor="#FFFFCC"><strong>Descripción: </strong></td>
<td><input name="txtdesc" type="text" size="50" maxlength="50"></td>
</tr>
<tr>
<td bordercolor="#FFFFCC" bgcolor="#FFFFCC"><strong>Cantidad: </strong></td>
<td><input name="txtcant" type="text" size="10" maxlength="10"></td>
</tr>
<tr>
<td bordercolor="#FFFFCC" bgcolor="#FFFFCC"><strong>Precio: </strong></td>
<td><input name="txtprecio" type="text" size="10" maxlength="10"></td>
</tr>
<tr align="center">
<td colspan="2" bordercolor="#FFFFCC" bgcolor="#FFFFCC"><input name="op"
type="submit" id="op" value="Guardar"></td>
</tr>
</table>
</fieldset>
</form>
<% }//fin formulario %>

</body>
</html>
<% //cerrar la conexion
try {
rs.close();
stmt_consul.close();
conn.close();
} catch (SQLException sqlEx) {}
%>

2. Resolver el siguiente ejercicio en JSP

Crear una base de datos “trabajo”, con las tablas profesión (código, nom_profesion) y profesional (código, ci,
nombre, apellido, fecha de nacimiento, ciudad, dirección, teléfono, título principal, estudios realizados, cursos
realizados, trabajos desempeñados y referencias personales).
Implementar una aplicación web que permita:
- Publicar el currículo de un nuevo profesional
- Listar los profesionales clasificados por profesión
- Buscar un profesional por apellido
- Eliminar un profesional
- Actualizar los datos de un profesional

Ing. Bertha Mazón 3

Das könnte Ihnen auch gefallen