Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PRÁCTICOS
ACCESO A DATOS
DESARROLLO DE APLICACIONES
MULTIPLATAFORMA
TEMA 1
Gestión de ficheros
Caso práctico 1
Has recibido el encargo de desarrollar una aplicación en Java para
una universidad para la que necesitas acceder al nombre y apellido
de los alumnos, así como a la facultad en la que están matricula-
bit.ly/3D308Xy dos. La universidad puede proporcionarte dichos datos en archivos
con formato XML, que deberás transformar en objetos Java. Por
el momento cuentas con dos archivos para pruebas denominados
Alumno.xml y Alumno.xsd (puedes descargarlos en este enlace).
Caso práctico 2
Has desarrollado un método en Java para el proyecto de un clien-
te, y necesitas documentarlo debidamente con JavaDoc antes de
entregar el código. Se denomina encendido y pertenece a la clase
bombilla (por lo tanto, podemos referirnos a él como bombilla#en-
cendido). Este método recibe un valor entre 0 y 1 a través de una
variable denominada onoff; si su valor es cero, el método apaga
una bombilla, mientras que si es uno, la enciende. El método nos
informa mediante una cadena con el resultado del método: Encen-
dida o Apagada.
• Descripción general del código con enlace a una página web cor-
porativa.
2 Casos prácticos
TEMA 2
Gestión de conectores (desarrollo
de aplicaciones que gestionan
información en bases de datos
relacionales)
Caso práctico 1
Estás desarrollando una aplicación para controlar las existencias de
un mayorista de componentes informáticos, y uno de los requeri-
mientos establecidos por el cliente es que la base de datos de los
productos se cree en un servidor web que trabaja con MySQL.
Caso práctico 2
Siguiendo con el ejemplo anterior, el cliente dispone ya de otra
base de datos llamada software en la instancia de MySQL instalada
en su servidor web (llamado servidor1), que en este caso contiene
los sistemas operativos y aplicaciones que comercializa.
Acceso a datos 3
TEMA 3
Herramientas de mapeo
objeto-relacional (ORM)
Caso práctico 1
Un fabricante utiliza una aplicación Java para controlar su ma-
quinaria de corte de piezas de aluminio. Se trata de un brazo que
puede desplazarse en los ejes X, Y, Z, y que incorpora una sierra cir-
cular para efectuar cortes. El control del movimiento, así como del
encendido y apagado de la sierra, se efectúa mediante una clase
llamada brazo, que obtiene las instrucciones para cada pieza a cor-
tar desde una base de datos. El cliente desea ampliar las funciones
de la aplicación, para lo cual debes llevar el proyecto original al IDE
de tu elección, en este caso Eclipse.
Caso práctico 2
Una vez completada nuestra aplicación para el control del brazo
robótico, es recomendable crear una clase DAO que contenga todos
los métodos que se utilizan para realizar las operaciones de crea-
ción, lectura, actualización y eliminación de registros en la base de
datos, y otra clase que se encargue de la ejecución de una serie de
pruebas para verificar que dichas operaciones se ejecutan correc-
tamente.
4 Casos prácticos
TEMA 4
Bases de datos objeto-relacionales y
orientadas a objetos
Caso práctico 1
En un proyecto desarrollado para una academia de inglés utilizando
Oracle y el lenguaje PL/SQL, tenemos definido el siguiente objeto:
Caso práctico 2
Crea las funciones total y nota_final referidas en el caso anterior,
teniendo en cuenta que, si la suma de las calificaciones es menor
que 15, la nota final será Suspendido.
5
TEMA 5
Bases de datos XML
Caso práctico 1
Dispones de un documento correspondiente a la base de datos de
una videoteca (videoteca.xml):
Caso práctico 2
Escribe ahora una consulta en lenguaje XQuery que nos devuelva
el título de las películas dirigidas por Ridley Scott que constan en el
archivo videoteca.xml.
6 Casos prácticos
TEMA 6
Programación de componentes de
acceso a datos
Caso práctico 1
Un cliente tiene un proyecto alojado en un repositorio remoto, y
tienes que importarlo a tu IDE para continuar con su desarrollo.
¿Qué IDE utilizarías y cuáles serían los pasos para clonar el Git?
Caso práctico 2
Has desarrollado en Eclipse un proyecto de tipo EJB que incluye
una interfaz para cambiar textos de mayúsculas a minúsculas y
viceversa.
Acceso a datos 7
SOLUCIONARIO
TEMA 1
Gestión de ficheros
JAXBContext jaxbContext;
try
{
jaxbContext = JAXBContext.newInstance(Alumno.
class);
System.out.println(alumno);
}
Acceso a datos 9
En nuestro ejemplo, la salida resultante sería la siguiente:
catch (JAXBException e)
{
e.printStackTrace();
}
10 Solucionario
A continuación, incluimos el código de validación:
JAXBContext jaxbContext;
try
{
jaxbContext = JAXBContext.newInstance(Alumno.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
import java.io.File;
import javax.xml.XMLConstants;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import org.xml.sax.SAXException;
Acceso a datos 11
Solución del caso práctico 2
/**
* <p>Método para encender y apagar una bombilla.
* <a href=”http://www.miweb.es”>Web
corporativa</a>
* </p>
* @param onoff Valor entre 0 (apagada) y 1
(encendida)
* @exception IOException si no se introduce
ningún valor
* @return Se devuelve una cadena con el estado
actual de la bombilla
* @see bombilla#voltaje
*/
12 Solucionario
TEMA 2
Gestión de conectores (desarrollo
de aplicaciones que gestionan
información en bases de datos
relacionales)
Acceso a datos 13
Solución del caso práctico 2
1. Registrar el controlador JDBC usando el método forName() e
indicando su nombre como parámetro (com.mysql.jdbc.Driver):
Class.forName(“com.mysql.jdbc.Driver”);
TEMA 3
Herramientas de mapeo objeto-
relacional (ORM)
14 Solucionario
nombre de la propiedad Java (name), su equivalente en la base de
datos (column) y, opcionalmente, el tipo de datos (type):
<hibernate-mapping>
<class name="main.java.objetos.brazo" table="brazo">
<id name="Id" type="integer">
<generator class="assigned"></generator>
</id>
<property name="Eje_X" column="Eje_X" type="float"/>
<property name="Eje_Y" column="Eje_Y" type="float" />
<property name="Eje_Z" column="Eje_Z" type="float"/>
<property name="On_Off" column="On_Off" type="boolean"/>
</class>
</hibernate-mapping>
<mapping resource=”brazo.hbm.xml”/>
@Test
public void testActualizar() {
boolean b = true;
BrazoDAO dao = new BrazoDAO();
Brazo brazo = new Brazo();
brazo.setEje_X(235);
brazo.setEje_Y(145);
brazo.setEje_Z(90);
brazo.setOn_Off(true);
brazo.setId(1);
assertTrue(dao.updateBrazo(brazo));
}
Acceso a datos 15
TEMA 4
Bases de datos objeto-relacionales y
orientadas a objetos
16 Solucionario
TEMA 5
Bases de datos XML
<result>
{
for $consulta in doc(“videoteca.xml”)/videoteca/film
where $consulta/director=“Ridley Scott”
return $consulta/título
}
Acceso a datos 17
TEMA 6
Programación de componentes de
acceso a datos
18 Solucionario
Solución del caso práctico 2
<html>
<head>
<title>Mayúsculas y minúsculas</title>
</head>
<body>
<h1>Conversiones de mayúsculas a minúsculas</h1>
<hr>
<form action=”conversiones.jsp” method=”POST”>
<p>Escriba el texto a convertir:
<input type=”text” name=”texto” required maxlength=”100”
size=”105”></p><br>
<b>Seleccione una opción</b><br>
<input type=”radio” name=”convierte1” value =”may_punto”>
Principio de frase<br>
<input type=”radio” name=”convierte2” value =”todo_may”>
Todo mayúsculas<br>
<input type=”radio” name=”convierte3” value =”todo_min”>
Todo minúsculas<br>
<input type=”radio” name=”convierte4” value =”may_pal”>
May. cada palabra<br>
<p>
<input type=”submit” value=”Enviar”>
<input type=”reset” value=”Borrar”></p>
</form>
</body>
Acceso a datos 19
CASOS
PRÁCTICOS
ACCESO A DATOS
DESARROLLO DE
APLICACIONES MULTPLATAFORMA
Centro integral de
formación profesional