Mundo
del Programador

Acceso a Base de Datos

Vamos a aprender como se puede acceder mediante java a una base de datos relacional MySQL para hacer listados, insertar nuevos elementos y borrar elementos existentes.

Primero lo que tenemos que hacer es instalar MySql


                  sudo apt-get install mysql-server 
                  sudo apt-get install mysql-client
                

Luego hay que establecer la contraseña root.

Una vez que esta instalado el mysql hay que instalar el phpmyadmin:


                  sudo apt-get install phpmyadmin
                

Para acceder a phpmydmin hay que escribir en el navegador localhost/phpmyadmin

Una vez que estamos dentro tenemos que crear una base de datos MySql. La llamaremos baloncesto, que contendrá la tabla socio con los campos socioID, nombre, estatura, edad y localidad.

La creación de la base de datos sería la siguiente:


                  CREATE DATABASE IF NOT EXISTS `baloncesto` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
                  USE `baloncesto`;
                

La estructura de la tabla socio sería:


                  CREATE TABLE IF NOT EXISTS `socio` (
                  `socioID` int(11) NOT NULL ,
                  `nombre` varchar(40) COLLATE utf8_spanish2_ci DEFAULT NULL ,
                  `estatura` int(11) DEFAULT NULL ,
                  `edad` int(11) DEFAULT NULL ,
                  `localidad` varchar(30) COLLATE utf8_spanish2_ci DEFAULT NULL ,
                  PRIMARY KEY (`socioID`)
                  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE =utf8_spanish2_ci;
                

Volcado de datos para la tabla socio


                  INSERT INTO `socio` (`socioID`, `nombre`, `estatura`, `edad`, `localidad`) VALUES
                  (1235, 'Bermúdez Espada, Ana María', 186, 46, 'Málaga'),
                  (1236, 'Cano Cuenca, Margarita', 161, 48, 'Málaga'),
                

Si tienes una base de datos creada puedes importarla a través de localhost/phpmyadmin

Activar la conexión a MySql

Para activar el servicio de base de datos hay que ir a la pestaña de NetBeans, Servicios, click derecho en Base de datos y luego seleccionar Nueva conexión. Luego se selecciona el driver MySql (Connector/Jdriver).

Incluir la librería MySql JDBC

Para esto hay que desplegar el proyecto, en este caso el proyecto baloncesto, click derecho sobre Librerias, y seleccionar Añadir librería, y por ultimo MySql JDBC Driver.

Para ver un listado

Para esto se emplea el código JSP para ver el listado


                  <%@page import="java.sql.Statement"%>
                  <%@page import="java.sql.ResultSet"%>
                  <%@page import="java.sql.DriverManager"%>
                  <%@page import="java.sql.Connection"%>
                  <%@page contentType="text/html" pageEncoding="UTF-8"%>

                  <!DOCTYPE html>
                  <html>
                    <head>
                      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
                      <title>Listado Socios</title>
                    </head>

                    <body>
                      <h1>Listado de Socios</h1>
                      <%
                      Class.forName("com.mysql.jdbc.Driver");
                      Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/balonce\
                      sto","root", "root");
                      Statement s = conexion.createStatement();
                      ResultSet listado = s.executeQuery ("SELECT * FROM socio");
                      while (listado.next()) {
                      out.println(listado.getString("socioID") + " " + listado.getString("nombre") + "<br>\
                      ");
                      }
                      conexion.close();
                      %>
                    </body>
                  </html>
                

Las lineas de código:


                  Class.forName("com.mysql.jdbc.Driver");
                  Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/baloncesto","root", "root");
                  Statement s = conexion.createStatement();
                  

Son obligatorias en todas las páginas JSP que accedan a una base de datos. Lo único que tienes que cambiar es el el nombre de la base de datos, en nuestro caso baloncesto

La siguiente linea ejecuta la consulta

                  
                  ResultSet listado = s.executeQuery ("SELECT * FROM socio");
                

Una vez que hemos extraido los datosm hay que ir sacando cada registro por separado. Para esto se emplea while:

                  
                    while (listado.next()) {
                    out.println(listado.getString("socioID") + " " + listado.getString("nombre") + "<br>");
                    }
                  

Alta de un socio

Para dar de alta un socio necesitamos recoger los datos mediante un formulario JSP o HTML. Luego se envía todo a una página encargada de recoger los datos e introducirlos en la base de datos.

Ahora mostraremos el código del formularioSocio.jsp:


                  <%@page contentType="text/html" pageEncoding="UTF-8"%>

                  <!DOCTYPE html>
                  <html>
                    <head>
                      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
                    </head>

                    <body>
                      <h2> Introduzca los datos del nuevo socio: </h2>

                      <form method="get" action="grabaSocio.jsp" >
                        No socio <input type="text" name="numero" /></br>
                        Nombre <input type="text" name="nombre" /></br>
                        Estatura <input type="text" name="estatura" /></br>
                        Edad <input type="text" name="edad" /></br>
                        Localidad <input type="text" name="localidad" /></br>
                        <input type="submit" value="Aceptar" >
                      </form>
                    </body>
                  </html>
                



Ejercicios resueltos en github



Fin Curso
Atras