4. CREACIÓN DE UNA APLICACIÓN WEB DESDE CERO
4.3. CONFIGURACIÓN DE PROPIEDADES DE ACCESO A DATOS
Cuando generamos una aplicación a partir del arquetipo correspondiente, esta llevará una configuración por defecto que deberemos modificar, para adaptarlo a nuestro entorno de trabajo. Esto se realizará modificando unas propiedades que se configurarán en el fichero src/main/resources/environment.properties de nuestro proyecto.
A continuación se muestra una descripción de las variables básicas a modificar para configurar la aplicación en un entorno de desarrollo (variables de conexión a la base de datos Oracle, y creación del esquema de pruebas):
4.3.1. Propiedades de base de datos Oracle
Para aplicaciones web en producción se utilizará un datasource obtenido del jndi, sin embargo para las pruebas de los diferentes módulos en desarrollo se deberá configurar la base de datos de desarrollo mediante las siguientes propiedades del archivo environment.properties:
Environment.properties jdbc.url=jdbc:oracle:thin:@icm21.icm.es:1521:denivel2
jdbc.username=CONFIGURAR
jdbc.password=CONFIGURAR
En la configuración anterior debe editar los campos: jdbc.username – Usuario de base de datos jdbc.password – Contraseña de base de datos
jdbc.url - Url de conexión a la base de datos Oracle (sustituir el nombre de la máquina y la instancia de base de datos).
4.3.2. Esquema de pruebas
Para ver funcionar el arquetipo web correctamente debe crear una serie de tablas en el esquema de base de datos que haya configurado en el punto anterior. El script para crear dichas tablas se encuentra en el fichero src/test/resources/schema_arquetipo_oracle.sql, y se muestra a continuación:
Preparación de Entorno de Desarrollo
-- --- ---
-- Autor : ICM
-- Descripcion : Este script permite crear el el schema necesario para poder ejecutar -- el arquetipo de forma local.
-- El schema debe tener asociado un usuario como el siguiente: -- usuario = usuario_ok
-- password = password_ok.
-- Nota : El script tambien contiene un ejemplo de tabla para que el componente -- de calendario funcione de forma correcta. Esta tabla no sera necesaria -- si se trabaja desde la intranet de ICM, pero sera necesario crearla si -- se trabaja de manera externa (contiene datos sobre localidades y festivos).
-- --- ---
DROP TABLE "EJPL_CLIENTES";
DROP SEQUENCE "EJPL_SECUENCIA_ID_CLIENTE";
DROP TABLE "EJPL_ESTADO_CIVIL";
DROP SEQUENCE "EJPL_SECUENCIA_ID_ESTADO_CIVIL";
CREATE TABLE EJPL_ESTADO_CIVIL (
ID_ESTADO_CIVIL NUMBER(9) NOT NULL, ESTADO_CIVIL VARCHAR2(20) NOT NULL
);
ALTER TABLE EJPL_ESTADO_CIVIL ADD CONSTRAINT PK_ESTADO_CIVIL PRIMARY KEY
(ID_ESTADO_CIVIL);
CREATE SEQUENCE EJPL_SECUENCIA_ID_ESTADO_CIVIL minvalue 0 maxvalue 99999999 start
with 1 increment by 1 cache 5 order;
CREATE TABLE EJPL_CLIENTES (
ID_CLIENTE NUMBER(9) not null, NOMBRE VARCHAR2(50) not null, APELLIDO1 VARCHAR2(50) not null, APELLIDO2 VARCHAR2(50) not null, DIRECCION VARCHAR2(100),
TELEFONO VARCHAR2(15), FC_NACIMIENTO DATE,
FK_ESTADO_CIVIL NUMBER(9) );
ALTER TABLE EJPL_CLIENTES ADD CONSTRAINT PK_CLIENTE PRIMARY KEY (ID_CLIENTE);
ALTER TABLE EJPL_CLIENTES ADD CONSTRAINT FK_CLIENTE_ESTADO FOREIGN KEY(FK_ESTADO_CIVIL) REFERENCES EJPL_ESTADO_CIVIL(ID_ESTADO_CIVIL);
CREATE SEQUENCE EJPL_SECUENCIA_ID_CLIENTE minvalue 0 maxvalue 99999999 start with
Preparación de Entorno de Desarrollo
INSERT INTO EJPL_ESTADO_CIVIL (ID_ESTADO_CIVIL, ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_ESTADO_CIVIL.NEXTVAL, 'Soltero');
INSERT INTO EJPL_ESTADO_CIVIL (ID_ESTADO_CIVIL, ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_ESTADO_CIVIL.NEXTVAL, 'Casado');
INSERT INTO EJPL_ESTADO_CIVIL (ID_ESTADO_CIVIL, ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_ESTADO_CIVIL.NEXTVAL, 'Viudo');
INSERT INTO EJPL_ESTADO_CIVIL (ID_ESTADO_CIVIL, ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_ESTADO_CIVIL.NEXTVAL, 'Divorciado');
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Jose', 'Perez', 'Martinez', 'C/Maria Fontaneda, S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Luisa', 'Gomez', 'Prieto', 'C/Jose Abascal, 2', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Maria Antonia', 'Jimenez', 'De la Osa', 'C/Manoteras, 13 S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Luis', 'Perez', 'Martinez', 'C/Maria Fontaneda, S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Mariano', 'Gomez', 'Prieto', 'C/Jose Abascal, 2', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Jose Antonio', 'Jimenez', 'De la Osa', 'C/Manoteras, 13 S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Jose Vicente', 'Perez', 'Martinez', 'C/Maria Fontaneda, S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Luisa Fernanda', 'Gomez', 'Prieto', 'C/Jose Abascal, 2', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Maria Josefa', 'Jimenez', 'De la Osa', 'C/Manoteras, 13 S/N', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Luis Miguel', 'Perez', 'Martinez', 'C/Maria Fontaneda, S/N', '5555555', SYSDATE, 1);
Preparación de Entorno de Desarrollo
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Mariano Jose', 'Gomez', 'Prieto', 'C/Jose Abascal, 2', '5555555', SYSDATE, 1);
INSERT INTO EJPL_CLIENTES(ID_CLIENTE, NOMBRE, APELLIDO1, APELLIDO2, DIRECCION, TELEFONO, FC_NACIMIENTO, FK_ESTADO_CIVIL)
VALUES(EJPL_SECUENCIA_ID_CLIENTE.NEXTVAL, 'Jose Luis', 'Jimenez', 'De la Osa', 'C/Manoteras, 13 S/N', '5555555', SYSDATE, 1);
COMMIT;
-- Ejemplo de tabla para que funcione el calendario con localidades y festivos
create table CATA_V_FESTIVOS_MUNICIPIO (
CDMUNI VARCHAR2(3) not null, CDENTIDAD VARCHAR2(2),
ANNO VARCHAR2(4),
FECHA DATE not null, DSFIESTA VARCHAR2(35) );
Preparación de Entorno de Desarrollo
4.4. Compilación y Despliegue