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
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).
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 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>");
}
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>