Encrypt passwords, Controller+DAO & db bash script
This commit is contained in:
parent
96961bb1e5
commit
545f36dc02
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,3 +4,4 @@
|
|||||||
.settings/
|
.settings/
|
||||||
bin/
|
bin/
|
||||||
target/*/
|
target/*/
|
||||||
|
*.bak
|
||||||
|
43
README.md
43
README.md
@ -63,6 +63,7 @@ DBADDR=address
|
|||||||
DBNAME=database
|
DBNAME=database
|
||||||
DBUSER=user
|
DBUSER=user
|
||||||
DBPASS=password
|
DBPASS=password
|
||||||
|
PEPPER=random-string
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Modelo entidad relación
|
#### Modelo entidad relación
|
||||||
@ -74,25 +75,25 @@ DBPASS=password
|
|||||||
erDiagram
|
erDiagram
|
||||||
HUESPED ||..o{ RESERVA : tiene
|
HUESPED ||..o{ RESERVA : tiene
|
||||||
HUESPED {
|
HUESPED {
|
||||||
id int PK "NN"
|
id int PK
|
||||||
|
usuario varchar UK
|
||||||
nombre varchar
|
nombre varchar
|
||||||
apellido varchar
|
varchar apellido
|
||||||
fecha_nacimiento date "AAAA-MM-DD"
|
fecha_nacimiento date "AAAA-MM-DD"
|
||||||
nacionalidad varchar
|
nacionalidad varchar
|
||||||
telefono varchar "+00 123456789"
|
telefono varchar
|
||||||
|
password varchar
|
||||||
}
|
}
|
||||||
|
|
||||||
RESERVA {
|
RESERVA {
|
||||||
Id int PK "NN"
|
id int PK
|
||||||
fecha_entrada date "AAAA-MM-DD"
|
fecha_entrada date "AAAA-MM-DD"
|
||||||
fecha_salida date "AAAA-MM-DD"
|
fecha_salida date "AAAA-MM-DD"
|
||||||
valor int "Costo total de la reserva"
|
valor double
|
||||||
forma_pago varchar "debito, credito, efectivo, cheque"
|
forma_pago varchar "Débito, Crédito, Efectivo"
|
||||||
id_huesped int FK "Huesped a quien pertenece la reserva"
|
id_huesped int FK
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary markdown="span">Database creation statement</summary>
|
<summary markdown="span">Database creation statement</summary>
|
||||||
@ -100,32 +101,39 @@ erDiagram
|
|||||||
[SQL script](./database/creation_stmnt.sql)
|
[SQL script](./database/creation_stmnt.sql)
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
CREATE DATABASE IF NOT EXISTS `hotel_alura` DEFAULT CHARACTER SET utf8mb4
|
CREATE DATABASE IF NOT EXISTS `hotel_alura`
|
||||||
COLLATE utf8mb4_general_ci;
|
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||||
|
|
||||||
USE `hotel_alura`;
|
USE `hotel_alura`;
|
||||||
|
|
||||||
|
DELETE FROM `hotel_alura`.`huesped`;
|
||||||
|
DROP TABLE IF EXISTS `hotel_alura`.`reserva`;
|
||||||
|
DROP TABLE IF EXISTS `hotel_alura`.`huesped`;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `huesped` (
|
CREATE TABLE IF NOT EXISTS `huesped` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`usuario` varchar(20) NOT NULL UNIQUE,
|
||||||
`nombre` varchar(20) NOT NULL,
|
`nombre` varchar(20) NOT NULL,
|
||||||
`apellido` varchar(20) NOT NULL,
|
`apellido` varchar(20) NOT NULL,
|
||||||
`fecha_nacimiento` date DEFAULT NULL,
|
`fecha_nacimiento` date DEFAULT '1000-01-01',
|
||||||
`nacionalidad` varchar(20) DEFAULT NULL,
|
`nacionalidad` varchar(20) DEFAULT 'chilena',
|
||||||
`telefono` varchar(20) NOT NULL,
|
`telefono` varchar(20) NOT NULL,
|
||||||
|
`password` varchar(60) NOT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4
|
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4
|
||||||
COLLATE=utf8mb4_general_ci;
|
COLLATE=utf8mb4_general_ci;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `reserva` (
|
CREATE TABLE IF NOT EXISTS `reserva` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`fecha_entrada` date NOT NULL,
|
`fecha_entrada` date NOT NULL,
|
||||||
`fecha_salida` date NOT NULL,
|
`fecha_salida` date NOT NULL,
|
||||||
`valor` double NOT NULL,
|
`valor` double NOT NULL,
|
||||||
`forma_pago` varchar(20) NOT NULL,
|
`forma_pago` varchar(20) NOT NULL,
|
||||||
`id_huesped` int(11) NOT NULL,
|
`id_huesped` int(11) unsigned NOT NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `id_huesped_idx` (`id_huesped`),
|
KEY `id_huesped_idx` (`id_huesped`),
|
||||||
CONSTRAINT `id_huesped` FOREIGN KEY (`id_huesped`) REFERENCES `huesped` (`id`)
|
CONSTRAINT `id_huesped` FOREIGN KEY (`id_huesped`)
|
||||||
|
REFERENCES `huesped` (`id`)
|
||||||
ON DELETE CASCADE ON UPDATE CASCADE
|
ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4
|
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4
|
||||||
COLLATE=utf8mb4_general_ci;
|
COLLATE=utf8mb4_general_ci;
|
||||||
@ -147,4 +155,3 @@ etiqueta **challengeonehotelaluralatam4** ¿5?
|
|||||||
|
|
||||||
:blue_heart: <strong>Alura Latam</strong></br>
|
:blue_heart: <strong>Alura Latam</strong></br>
|
||||||
[<img src="https://img.shields.io/badge/-LinkedIn-%230077B5?style=for-the-badge&logo=linkedin&logoColor=white" target="_blank">](https://www.linkedin.com/company/alura-latam/mycompany/)
|
[<img src="https://img.shields.io/badge/-LinkedIn-%230077B5?style=for-the-badge&logo=linkedin&logoColor=white" target="_blank">](https://www.linkedin.com/company/alura-latam/mycompany/)
|
||||||
|
|
||||||
|
17
createdb.sh
Executable file
17
createdb.sh
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
VersionStr='2023-09-02'
|
||||||
|
rutaprgrm=$(dirname $(realpath -s $0))
|
||||||
|
|
||||||
|
while read line; do
|
||||||
|
declare "$line" 2>/dev/null
|
||||||
|
done < $rutaprgrm/.env
|
||||||
|
|
||||||
|
mysql -u ${DBUSER} \
|
||||||
|
-p${DBPASS} \
|
||||||
|
-h ${DBADDR%%:*} ${DBNAME} \
|
||||||
|
-P ${DBADDR##*:} < ./database/create_populate.sql &>/dev/null && \
|
||||||
|
echo "DB creada y poblada" || \
|
||||||
|
echo "Ocurrio un error al intentar crear y/o poblar la DB"
|
||||||
|
|
||||||
|
unset DBNAME DBUSER DBPASS DBADDR
|
57
database/create_populate.sql
Normal file
57
database/create_populate.sql
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
-- Creación de base de datos para hotel alura
|
||||||
|
CREATE DATABASE IF NOT EXISTS `hotel_alura`
|
||||||
|
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||||
|
|
||||||
|
USE `hotel_alura`;
|
||||||
|
|
||||||
|
DELETE FROM `hotel_alura`.`huesped`;
|
||||||
|
DROP TABLE IF EXISTS `hotel_alura`.`reserva`;
|
||||||
|
DROP TABLE IF EXISTS `hotel_alura`.`huesped`;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `huesped` (
|
||||||
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`usuario` varchar(20) NOT NULL UNIQUE,
|
||||||
|
`nombre` varchar(20) NOT NULL,
|
||||||
|
`apellido` varchar(20) NOT NULL,
|
||||||
|
`fecha_nacimiento` date DEFAULT '1000-01-01',
|
||||||
|
`nacionalidad` varchar(20) DEFAULT 'chilena',
|
||||||
|
`telefono` varchar(20) NOT NULL,
|
||||||
|
`password` varchar(60) NOT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS `reserva` (
|
||||||
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`fecha_entrada` date NOT NULL,
|
||||||
|
`fecha_salida` date NOT NULL,
|
||||||
|
`valor` double NOT NULL,
|
||||||
|
`forma_pago` varchar(20) NOT NULL,
|
||||||
|
`id_huesped` int(11) unsigned NOT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `id_huesped_idx` (`id_huesped`),
|
||||||
|
CONSTRAINT `id_huesped` FOREIGN KEY (`id_huesped`) REFERENCES `huesped` (`id`)
|
||||||
|
ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||||
|
|
||||||
|
-- Borrado de registros
|
||||||
|
DELETE FROM `hotel_alura`.`huesped`;
|
||||||
|
|
||||||
|
-- Creación de usuarios y reservas de prueba
|
||||||
|
INSERT INTO `hotel_alura`.`huesped`(usuario, nombre, apellido, telefono, password)
|
||||||
|
VALUES('Usuario1', 'Primer', 'Huesped', '+56 123456789',
|
||||||
|
'$2a$12$Pt7d9sZxHMZHfGivVgrVvergqz.VBNFY5.oJa8g9CK3lst7/Pqeuu');
|
||||||
|
INSERT INTO `hotel_alura`.`huesped`(usuario, nombre, apellido, telefono, password)
|
||||||
|
VALUES('Usuario2', 'Segundo', 'Huesped', '+56 123456789',
|
||||||
|
'$2a$12$Pt7d9sZxHMZHfGivVgrVvergqz.VBNFY5.oJa8g9CK3lst7/Pqeuu');
|
||||||
|
INSERT INTO `hotel_alura`.`huesped`(usuario, nombre, apellido, telefono, password)
|
||||||
|
VALUES('Usuario3', 'Tercer', 'Huesped', '+56 123456789',
|
||||||
|
'$2a$12$Pt7d9sZxHMZHfGivVgrVvergqz.VBNFY5.oJa8g9CK3lst7/Pqeuu');
|
||||||
|
|
||||||
|
INSERT INTO `hotel_alura`.`reserva`(fecha_entrada, fecha_salida, valor, forma_pago, id_huesped)
|
||||||
|
VALUES('2023-09-01', '2023-09-03', 90000.00, 'efectivo', 1);
|
||||||
|
INSERT INTO `hotel_alura`.`reserva`(fecha_entrada, fecha_salida, valor, forma_pago, id_huesped)
|
||||||
|
VALUES('2023-09-04', '2023-09-05', 60000.00, 'crédito', 2);
|
||||||
|
INSERT INTO `hotel_alura`.`reserva`(fecha_entrada, fecha_salida, valor, forma_pago, id_huesped)
|
||||||
|
VALUES('2023-09-07', '2023-09-10', 120000.00, 'débito', 3);
|
||||||
|
INSERT INTO `hotel_alura`.`reserva`(fecha_entrada, fecha_salida, valor, forma_pago, id_huesped)
|
||||||
|
VALUES('2023-09-11', '2023-09-21', 330000.00, 'crédito', 1);
|
@ -1,25 +1,35 @@
|
|||||||
CREATE DATABASE IF NOT EXISTS `hotel_alura` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
-- Creación de base de datos para hotel alura
|
||||||
|
CREATE DATABASE IF NOT EXISTS `hotel_alura`
|
||||||
|
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
|
||||||
|
|
||||||
USE `hotel_alura`;
|
USE `hotel_alura`;
|
||||||
|
|
||||||
|
DELETE FROM `hotel_alura`.`huesped`;
|
||||||
|
DROP TABLE IF EXISTS `hotel_alura`.`reserva`;
|
||||||
|
DROP TABLE IF EXISTS `hotel_alura`.`huesped`;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `huesped` (
|
CREATE TABLE IF NOT EXISTS `huesped` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`usuario` varchar(20) NOT NULL UNIQUE,
|
||||||
`nombre` varchar(20) NOT NULL,
|
`nombre` varchar(20) NOT NULL,
|
||||||
`apellido` varchar(20) NOT NULL,
|
`apellido` varchar(20) NOT NULL,
|
||||||
`fecha_nacimiento` date DEFAULT NULL,
|
`fecha_nacimiento` date DEFAULT '1000-01-01',
|
||||||
`nacionalidad` varchar(20) DEFAULT NULL,
|
`nacionalidad` varchar(20) DEFAULT 'chilena',
|
||||||
`telefono` varchar(20) NOT NULL,
|
`telefono` varchar(20) NOT NULL,
|
||||||
|
`password` varchar(60) NOT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `reserva` (
|
CREATE TABLE IF NOT EXISTS `reserva` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`fecha_entrada` date NOT NULL,
|
`fecha_entrada` date NOT NULL,
|
||||||
`fecha_salida` date NOT NULL,
|
`fecha_salida` date NOT NULL,
|
||||||
`valor` double NOT NULL,
|
`valor` double NOT NULL,
|
||||||
`forma_pago` varchar(20) NOT NULL,
|
`forma_pago` varchar(20) NOT NULL,
|
||||||
`id_huesped` int(11) NOT NULL,
|
`id_huesped` int(11) unsigned NOT NULL,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `id_huesped_idx` (`id_huesped`),
|
KEY `id_huesped_idx` (`id_huesped`),
|
||||||
CONSTRAINT `id_huesped` FOREIGN KEY (`id_huesped`) REFERENCES `huesped` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
|
CONSTRAINT `id_huesped` FOREIGN KEY (`id_huesped`) REFERENCES `huesped` (`id`)
|
||||||
|
ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||||
|
|
||||||
|
Binary file not shown.
5
pom.xml
5
pom.xml
@ -47,6 +47,11 @@
|
|||||||
<artifactId>dotenv-java</artifactId>
|
<artifactId>dotenv-java</artifactId>
|
||||||
<version>3.0.0</version>
|
<version>3.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mindrot</groupId>
|
||||||
|
<artifactId>jbcrypt</artifactId>
|
||||||
|
<version>0.4</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<build>
|
<build>
|
||||||
<sourceDirectory>src</sourceDirectory>
|
<sourceDirectory>src</sourceDirectory>
|
||||||
|
26
src/cl/com/alura/hotel/controller/HuespedController.java
Normal file
26
src/cl/com/alura/hotel/controller/HuespedController.java
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package cl.com.alura.hotel.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cl.com.alura.hotel.dao.HuespedDAO;
|
||||||
|
import cl.com.alura.hotel.factory.ConnectionFactory;
|
||||||
|
import cl.com.alura.hotel.modelo.Huesped;
|
||||||
|
|
||||||
|
public class HuespedController {
|
||||||
|
|
||||||
|
private HuespedDAO huespedDAO;
|
||||||
|
|
||||||
|
public HuespedController() {
|
||||||
|
ConnectionFactory factory = new ConnectionFactory();
|
||||||
|
this.huespedDAO = new HuespedDAO(factory.getConexion());
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Huesped> listar(Huesped huesped) {
|
||||||
|
return huespedDAO.listar(huesped.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
// public List<Huesped> cargaReporte() {
|
||||||
|
// return this.huespedDAO.listarConReservas();
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
39
src/cl/com/alura/hotel/controller/ReservaController.java
Normal file
39
src/cl/com/alura/hotel/controller/ReservaController.java
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
package cl.com.alura.hotel.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cl.com.alura.hotel.factory.ConnectionFactory;
|
||||||
|
import cl.com.alura.hotel.dao.ReservaDAO;
|
||||||
|
import cl.com.alura.hotel.modelo.Huesped;
|
||||||
|
import cl.com.alura.hotel.modelo.Reserva;
|
||||||
|
|
||||||
|
public class ReservaController {
|
||||||
|
|
||||||
|
private ReservaDAO reservaDAO;
|
||||||
|
|
||||||
|
public ReservaController() {
|
||||||
|
this.reservaDAO = new ReservaDAO(new ConnectionFactory().getConexion());
|
||||||
|
}
|
||||||
|
|
||||||
|
public int modificar(Reserva reserva) {
|
||||||
|
return reservaDAO.modificar(reserva);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int eliminar(Integer id) {
|
||||||
|
return reservaDAO.eliminar(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Reserva> listar() {
|
||||||
|
return reservaDAO.listar(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Reserva> listar(Huesped huesped) {
|
||||||
|
return reservaDAO.listar(huesped.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void guardar(Reserva reserva, Integer huespedId) {
|
||||||
|
reserva.setIdHuesped(huespedId);
|
||||||
|
reservaDAO.guardar(reserva);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
60
src/cl/com/alura/hotel/dao/HuespedDAO.java
Normal file
60
src/cl/com/alura/hotel/dao/HuespedDAO.java
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
package cl.com.alura.hotel.dao;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import cl.com.alura.hotel.modelo.Huesped;
|
||||||
|
|
||||||
|
public class HuespedDAO {
|
||||||
|
|
||||||
|
private final Connection con;
|
||||||
|
|
||||||
|
public HuespedDAO(Connection conexion) {
|
||||||
|
this.con = conexion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Huesped> listar(Integer huesped_id) {
|
||||||
|
final String query;
|
||||||
|
if (huesped_id != 0) {
|
||||||
|
query = "SELECT * FROM huesped WHERE id=?;";
|
||||||
|
} else {
|
||||||
|
query = "SELECT * FROM huesped;";
|
||||||
|
}
|
||||||
|
List<Huesped> resultado = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
final PreparedStatement statement;
|
||||||
|
if (huesped_id != 0) {
|
||||||
|
statement = con.prepareStatement(query);
|
||||||
|
statement.setInt(1, huesped_id);
|
||||||
|
System.out.println(statement.toString());
|
||||||
|
} else {
|
||||||
|
statement = con.prepareStatement(query);
|
||||||
|
System.out.println(statement.toString());
|
||||||
|
}
|
||||||
|
try (statement) {
|
||||||
|
statement.execute();
|
||||||
|
ResultSet resultSet = statement.getResultSet();
|
||||||
|
while (resultSet.next()) {
|
||||||
|
Huesped fila = new Huesped(
|
||||||
|
resultSet.getInt("id"),
|
||||||
|
resultSet.getString("usuario"),
|
||||||
|
resultSet.getString("nombre"),
|
||||||
|
resultSet.getString("apellido"),
|
||||||
|
resultSet.getDate("fecha_nacimiento"),
|
||||||
|
resultSet.getString("nacionalidad"),
|
||||||
|
resultSet.getString("telefono")
|
||||||
|
);
|
||||||
|
resultado.add(fila);
|
||||||
|
}
|
||||||
|
return resultado;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
156
src/cl/com/alura/hotel/dao/ReservaDAO.java
Normal file
156
src/cl/com/alura/hotel/dao/ReservaDAO.java
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
package cl.com.alura.hotel.dao;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.Date;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import cl.com.alura.hotel.modelo.Reserva;
|
||||||
|
//import cl.com.alura.hotel.modelo.Huesped;
|
||||||
|
|
||||||
|
public class ReservaDAO {
|
||||||
|
|
||||||
|
private final Connection con;
|
||||||
|
|
||||||
|
public ReservaDAO(Connection conexion) {
|
||||||
|
this.con = conexion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void guardar(Reserva reserva) {
|
||||||
|
final String query = "INSERT INTO reserva(huesped_id,checkin,checkout,valor,pago)"
|
||||||
|
+ "VALUES(?,?,?,?)";
|
||||||
|
try {
|
||||||
|
final PreparedStatement statement = con.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
|
||||||
|
try (statement) {
|
||||||
|
ejecutaRegistro(reserva, statement);
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ejecutaRegistro(Reserva reserva, PreparedStatement statement)
|
||||||
|
throws SQLException {
|
||||||
|
statement.setInt(1, reserva.getIdHuesped());
|
||||||
|
statement.setDate(2, (Date) reserva.getFechaEntrada());
|
||||||
|
statement.setDate(3, (Date) reserva.getFechaSalida());
|
||||||
|
statement.setDouble(4, reserva.getValor());
|
||||||
|
statement.setString(5, reserva.getFormaPago());
|
||||||
|
statement.execute();
|
||||||
|
final ResultSet resultSet = statement.getGeneratedKeys();
|
||||||
|
try (resultSet) {
|
||||||
|
while (resultSet.next()) {
|
||||||
|
reserva.setId(resultSet.getInt(1));
|
||||||
|
System.out.println(String.format("Reserva agregada %s: ", reserva));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Reserva> listar(Integer huesped_id) {
|
||||||
|
final String query;
|
||||||
|
if (huesped_id != 0) {
|
||||||
|
query = "SELECT * FROM reserva WHERE id_huesped=?;";
|
||||||
|
} else {
|
||||||
|
query = "SELECT * FROM reserva;";
|
||||||
|
}
|
||||||
|
List<Reserva> resultado = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
final PreparedStatement statement;
|
||||||
|
if (huesped_id != 0) {
|
||||||
|
statement = con.prepareStatement(query);
|
||||||
|
statement.setInt(1, huesped_id);
|
||||||
|
System.out.println(statement.toString());
|
||||||
|
} else {
|
||||||
|
statement = con.prepareStatement(query);
|
||||||
|
System.out.println(statement.toString());
|
||||||
|
}
|
||||||
|
try (statement) {
|
||||||
|
statement.execute();
|
||||||
|
ResultSet resultSet = statement.getResultSet();
|
||||||
|
while (resultSet.next()) {
|
||||||
|
Reserva fila = new Reserva(
|
||||||
|
resultSet.getInt("id"),
|
||||||
|
resultSet.getDate("fecha_entrada"),
|
||||||
|
resultSet.getDate("fecha_salida"),
|
||||||
|
resultSet.getDouble("valor"),
|
||||||
|
resultSet.getString("forma_pago"),
|
||||||
|
resultSet.getInt("id_huesped")
|
||||||
|
);
|
||||||
|
resultado.add(fila);
|
||||||
|
}
|
||||||
|
return resultado;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int modificar(Reserva reserva) {
|
||||||
|
try {
|
||||||
|
final String query = "UPDATE categoria SET valor=? WHERE id=?;";
|
||||||
|
final PreparedStatement statement = con.prepareStatement(query);
|
||||||
|
try (statement) {
|
||||||
|
statement.setInt(1, reserva.getId());
|
||||||
|
statement.setDouble(2, reserva.getValor());
|
||||||
|
statement.execute();
|
||||||
|
int resultado = statement.getUpdateCount();
|
||||||
|
return resultado;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int eliminar(Integer id) {
|
||||||
|
try {
|
||||||
|
final PreparedStatement statement = con.prepareStatement("DELETE FROM reserva WHERE id=?;");
|
||||||
|
try (statement) {
|
||||||
|
statement.setInt(1, id);
|
||||||
|
statement.execute();
|
||||||
|
int resultado = statement.getUpdateCount();
|
||||||
|
return resultado;
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// public List<Reserva> listarConProductos() {
|
||||||
|
// List<Reserva> resultado = new ArrayList<>();
|
||||||
|
// final String query = "SELECT C.ID, C.NOMBRE, P.ID, P.NOMBRE, P.CANTIDAD FROM categoria C "
|
||||||
|
// + "INNER JOIN producto P ON C.ID = P.CATEGORIA_ID ";
|
||||||
|
// System.out.println(query);
|
||||||
|
// try {
|
||||||
|
// final PreparedStatement statement = con.prepareStatement(query);
|
||||||
|
// try (statement) {
|
||||||
|
// statement.execute();
|
||||||
|
// final ResultSet resultSet = statement.getResultSet();
|
||||||
|
// try (resultSet){
|
||||||
|
// while (resultSet.next()) {
|
||||||
|
// Integer categoriaId = resultSet.getInt("C.ID");
|
||||||
|
// String categoriaNombre = resultSet.getString("C.NOMBRE");
|
||||||
|
// var categoria = resultado
|
||||||
|
// .stream()
|
||||||
|
// .filter(cat -> cat.getId().equals(categoriaId))
|
||||||
|
// .findAny().orElseGet(() -> {
|
||||||
|
// Categoria cat = new Categoria(categoriaId, categoriaNombre);
|
||||||
|
// resultado.add(cat);
|
||||||
|
// return cat;
|
||||||
|
// });
|
||||||
|
// Reserva producto = new Reserva(resultSet.getInt("P.ID"),
|
||||||
|
// resultSet.getString("P.NOMBRE"),
|
||||||
|
// resultSet.getInt("P.CANTIDAD"));
|
||||||
|
// categoria.agregar(producto);
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// } catch (SQLException e) {
|
||||||
|
// throw new RuntimeException(e);
|
||||||
|
// }
|
||||||
|
// return resultado;
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
@ -4,7 +4,8 @@ import java.sql.Connection;
|
|||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
import com.mchange.v2.c3p0.ComboPooledDataSource;
|
import com.mchange.v2.c3p0.ComboPooledDataSource;
|
||||||
import io.github.cdimascio.dotenv.Dotenv;
|
|
||||||
|
import cl.com.alura.hotel.utils.GetEnvVars;
|
||||||
|
|
||||||
public class ConnectionFactory {
|
public class ConnectionFactory {
|
||||||
|
|
||||||
@ -15,14 +16,13 @@ public class ConnectionFactory {
|
|||||||
private DataSource datasource;
|
private DataSource datasource;
|
||||||
|
|
||||||
public ConnectionFactory() {
|
public ConnectionFactory() {
|
||||||
Dotenv dotenv = Dotenv.load();
|
dbname = GetEnvVars.getDbname();
|
||||||
dbname = dotenv.get("DBNAME");
|
dbaddr = GetEnvVars.getDbaddr();
|
||||||
dbaddr = dotenv.get("DBADDR");
|
|
||||||
final String dburl = driver + dbaddr +"/"+ dbname + params;
|
final String dburl = driver + dbaddr +"/"+ dbname + params;
|
||||||
var pooledDataSource = new ComboPooledDataSource();
|
var pooledDataSource = new ComboPooledDataSource();
|
||||||
pooledDataSource.setJdbcUrl(dburl);
|
pooledDataSource.setJdbcUrl(dburl);
|
||||||
pooledDataSource.setUser(dotenv.get("DBUSER"));
|
pooledDataSource.setUser(GetEnvVars.getDbuser());
|
||||||
pooledDataSource.setPassword(dotenv.get("DBPASS"));
|
pooledDataSource.setPassword(GetEnvVars.getDbpass());
|
||||||
pooledDataSource.setMaxPoolSize(500);
|
pooledDataSource.setMaxPoolSize(500);
|
||||||
this.datasource = pooledDataSource;
|
this.datasource = pooledDataSource;
|
||||||
}
|
}
|
||||||
|
@ -7,16 +7,31 @@ import java.util.List;
|
|||||||
public class Huesped {
|
public class Huesped {
|
||||||
|
|
||||||
private Integer id;
|
private Integer id;
|
||||||
private Integer nombre;
|
private String usuario;
|
||||||
private Integer apellido;
|
private String nombre;
|
||||||
|
private String apellido;
|
||||||
private Date fechaNacimiento;
|
private Date fechaNacimiento;
|
||||||
private String nacionalidad;
|
private String nacionalidad;
|
||||||
private String telefono;
|
private String telefono;
|
||||||
|
private String password;
|
||||||
private List<Reserva> reservas;
|
private List<Reserva> reservas;
|
||||||
|
|
||||||
public Huesped(Integer id, Integer nombre, Integer apellido, Date fechaNacimiento,
|
public Huesped(Integer id, String usuario, String nombre, String apellido,
|
||||||
String nacionalidad, String telefono) {
|
Date fechaNacimiento, String nacionalidad, String telefono,
|
||||||
|
String password) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
this.usuario = usuario;
|
||||||
|
this.nombre = nombre;
|
||||||
|
this.apellido = apellido;
|
||||||
|
this.fechaNacimiento = fechaNacimiento;
|
||||||
|
this.nacionalidad = nacionalidad;
|
||||||
|
this.telefono = telefono;
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Huesped(String usuario, String nombre, String apellido,
|
||||||
|
Date fechaNacimiento, String nacionalidad, String telefono) {
|
||||||
|
this.usuario = usuario;
|
||||||
this.nombre = nombre;
|
this.nombre = nombre;
|
||||||
this.apellido = apellido;
|
this.apellido = apellido;
|
||||||
this.fechaNacimiento = fechaNacimiento;
|
this.fechaNacimiento = fechaNacimiento;
|
||||||
@ -24,6 +39,38 @@ public class Huesped {
|
|||||||
this.telefono = telefono;
|
this.telefono = telefono;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Huesped(String usuario, String nombre, String apellido,
|
||||||
|
String nacionalidad, String telefono, String password) {
|
||||||
|
this.usuario = usuario;
|
||||||
|
this.nombre = nombre;
|
||||||
|
this.apellido = apellido;
|
||||||
|
this.nacionalidad = nacionalidad;
|
||||||
|
this.telefono = telefono;
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Huesped(Integer id, String usuario, String nombre, String apellido,
|
||||||
|
Date fechaNacimiento, String password, String telefono) {
|
||||||
|
this.id = id;
|
||||||
|
this.usuario = usuario;
|
||||||
|
this.nombre = nombre;
|
||||||
|
this.apellido = apellido;
|
||||||
|
this.fechaNacimiento = fechaNacimiento;
|
||||||
|
this.telefono = telefono;
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Huesped(String usuario, String nombre, String apellido,
|
||||||
|
String telefono, String password) {
|
||||||
|
this.usuario = usuario;
|
||||||
|
this.nombre = nombre;
|
||||||
|
this.apellido = apellido;
|
||||||
|
this.telefono = telefono;
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Huesped() {}
|
||||||
|
|
||||||
public Integer getId() {
|
public Integer getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@ -32,22 +79,38 @@ public class Huesped {
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getNombre() {
|
public String getUsuario() {
|
||||||
|
return usuario;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsuario(String usuario) {
|
||||||
|
this.usuario = usuario;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
return nombre;
|
return nombre;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNombre(Integer nombre) {
|
public void setNombre(String nombre) {
|
||||||
this.nombre = nombre;
|
this.nombre = nombre;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getApellido() {
|
public String getApellido() {
|
||||||
return apellido;
|
return apellido;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setApellido(Integer apellido) {
|
public void setApellido(String apellido) {
|
||||||
this.apellido = apellido;
|
this.apellido = apellido;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return this.password;
|
||||||
|
}
|
||||||
|
|
||||||
public Date getFechaNacimiento() {
|
public Date getFechaNacimiento() {
|
||||||
return fechaNacimiento;
|
return fechaNacimiento;
|
||||||
}
|
}
|
||||||
@ -83,5 +146,15 @@ public class Huesped {
|
|||||||
this.reservas.add(reserva);
|
this.reservas.add(reserva);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO toString();
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Huesped [" + (id != null ? "id=" + id + ", " : "")
|
||||||
|
+ (usuario != null ? "usuario=" + usuario + ", " : "")
|
||||||
|
+ (nombre != null ? "nombre=" + nombre + ", " : "")
|
||||||
|
+ (apellido != null ? "apellido=" + apellido + ", " : "")
|
||||||
|
+ (fechaNacimiento != null ? "fechaNacimiento=" + fechaNacimiento + ", " : "")
|
||||||
|
+ (nacionalidad != null ? "nacionalidad=" + nacionalidad + ", " : "")
|
||||||
|
+ (telefono != null ? "telefono=" + telefono : "") + "]";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -20,6 +20,8 @@ public class Reserva {
|
|||||||
this.idHuesped = idHuesped;
|
this.idHuesped = idHuesped;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Reserva() {}
|
||||||
|
|
||||||
public Integer getId() {
|
public Integer getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@ -68,5 +70,13 @@ public class Reserva {
|
|||||||
this.idHuesped = idHuesped;
|
this.idHuesped = idHuesped;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO toString();
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Reserva [" + (idHuesped != null ? "idHuesped=" + idHuesped + ", " : "")
|
||||||
|
+ (id != null ? "id=" + id + ", " : "")
|
||||||
|
+ (fechaEntrada != null ? "fechaEntrada=" + fechaEntrada + ", " : "")
|
||||||
|
+ (fechaSalida != null ? "fechaSalida=" + fechaSalida + ", " : "")
|
||||||
|
+ (valor != null ? "valor=" + valor + ", " : "") + (formaPago != null ? "formaPago=" + formaPago : "")
|
||||||
|
+ "]";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
21
src/cl/com/alura/hotel/pruebas/PruebaEncryptPass.java
Normal file
21
src/cl/com/alura/hotel/pruebas/PruebaEncryptPass.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package cl.com.alura.hotel.pruebas;
|
||||||
|
|
||||||
|
import cl.com.alura.hotel.utils.PassEncrypt;
|
||||||
|
|
||||||
|
public class PruebaEncryptPass {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
String password = "ést@ és 1 pru3ba!";
|
||||||
|
String password2 = "ést@";
|
||||||
|
|
||||||
|
String hashed = PassEncrypt.passEncrypt(password);
|
||||||
|
String hashed2 = PassEncrypt.passEncrypt(password2);
|
||||||
|
String hashed3 = PassEncrypt.passEncrypt("test");
|
||||||
|
|
||||||
|
System.out.println(PassEncrypt.passMatch(password, hashed)); // true
|
||||||
|
System.out.println(PassEncrypt.passMatch(password, hashed2)); // false
|
||||||
|
System.out.println(PassEncrypt.passMatch("test", hashed3)); // true
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
42
src/cl/com/alura/hotel/pruebas/PruebaQueryInsert.java
Normal file
42
src/cl/com/alura/hotel/pruebas/PruebaQueryInsert.java
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
package cl.com.alura.hotel.pruebas;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
import cl.com.alura.hotel.factory.ConnectionFactory;
|
||||||
|
import cl.com.alura.hotel.modelo.Huesped;
|
||||||
|
import cl.com.alura.hotel.utils.PassEncrypt;
|
||||||
|
|
||||||
|
public class PruebaQueryInsert {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
Huesped huesped = new Huesped("UsuarioTest", "NombreTest", "ApellidoTest",
|
||||||
|
"+56 987654321", "test");
|
||||||
|
String query = "INSERT INTO huesped(usuario, nombre, apellido, telefono, password)"
|
||||||
|
+ " VALUES(?,?,?,?,?);";
|
||||||
|
|
||||||
|
try {
|
||||||
|
Connection con = new ConnectionFactory().getConexion();
|
||||||
|
final PreparedStatement stmnt = con.prepareStatement(query);
|
||||||
|
stmnt.setString(1, huesped.getUsuario());
|
||||||
|
stmnt.setString(2, huesped.getNombre());
|
||||||
|
stmnt.setString(3, huesped.getApellido());
|
||||||
|
stmnt.setString(4, huesped.getTelefono());
|
||||||
|
stmnt.setString(5, PassEncrypt.passEncrypt(huesped.getPassword()));
|
||||||
|
System.out.println(stmnt.toString());
|
||||||
|
stmnt.execute();
|
||||||
|
int resultado = stmnt.getUpdateCount();
|
||||||
|
System.out.println(resultado+" huesped registrado");
|
||||||
|
} catch (SQLException e) {
|
||||||
|
if (e.getSQLState().startsWith("23")) {
|
||||||
|
System.out.println("Usuario ya existe");
|
||||||
|
} else {
|
||||||
|
e.printStackTrace();
|
||||||
|
//throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
57
src/cl/com/alura/hotel/pruebas/PruebaQueryJoin.java
Normal file
57
src/cl/com/alura/hotel/pruebas/PruebaQueryJoin.java
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
package cl.com.alura.hotel.pruebas;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
import com.mysql.cj.jdbc.result.ResultSetMetaData;
|
||||||
|
|
||||||
|
import cl.com.alura.hotel.factory.ConnectionFactory;
|
||||||
|
|
||||||
|
public class PruebaQueryJoin {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws SQLException {
|
||||||
|
Connection con = new ConnectionFactory().getConexion();
|
||||||
|
String query = "SELECT H.id, H.usuario, R.valor, R.forma_pago,"
|
||||||
|
+ " DATEDIFF(R.fecha_salida, R.fecha_entrada)+1 AS estadia"
|
||||||
|
+ " FROM huesped H INNER JOIN reserva R on R.id_huesped = H.id"
|
||||||
|
+ " ORDER BY id;";
|
||||||
|
System.out.println(query);
|
||||||
|
final PreparedStatement stmnt = con.prepareStatement(query);
|
||||||
|
stmnt.execute();
|
||||||
|
final ResultSet resultSet = stmnt.getResultSet();
|
||||||
|
printResult(resultSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void printResult(ResultSet result) throws SQLException {
|
||||||
|
ResultSetMetaData rsmd = (ResultSetMetaData) result.getMetaData();
|
||||||
|
int colsNum = rsmd.getColumnCount();
|
||||||
|
|
||||||
|
for (int i = 1; i <= colsNum; i++) {
|
||||||
|
if (i > 1) System.out.print(" ");
|
||||||
|
String header = "| "+rsmd.getColumnName(i);
|
||||||
|
System.out.print(padRight(header.toUpperCase(), 12));
|
||||||
|
if (i == colsNum) System.out.println(" |");
|
||||||
|
}
|
||||||
|
while (result.next()) {
|
||||||
|
for (int i = 1; i <= colsNum; i++) {
|
||||||
|
if (i > 1) System.out.print(" ");
|
||||||
|
String columnValue = result.getString(i);
|
||||||
|
System.out.print("| "+ padLeft(columnValue, 10));
|
||||||
|
if (i == colsNum) System.out.print(" |");
|
||||||
|
}
|
||||||
|
System.out.println("");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String padRight(String s, int n) {
|
||||||
|
return String.format("%-" + n + "s", s);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String padLeft(String s, int n) {
|
||||||
|
return String.format("%" + n + "s", s);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
46
src/cl/com/alura/hotel/pruebas/PruebaQuerySelect.java
Normal file
46
src/cl/com/alura/hotel/pruebas/PruebaQuerySelect.java
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
package cl.com.alura.hotel.pruebas;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
import cl.com.alura.hotel.factory.ConnectionFactory;
|
||||||
|
import cl.com.alura.hotel.modelo.Huesped;
|
||||||
|
import cl.com.alura.hotel.utils.PassEncrypt;
|
||||||
|
|
||||||
|
public class PruebaQuerySelect {
|
||||||
|
|
||||||
|
@SuppressWarnings("static-access")
|
||||||
|
public static void main(String[] args) {
|
||||||
|
new PruebaQueryInsert().main(null);;
|
||||||
|
String query = "SELECT * FROM huesped WHERE usuario=?;";
|
||||||
|
|
||||||
|
try {
|
||||||
|
Connection con = new ConnectionFactory().getConexion();
|
||||||
|
final PreparedStatement stmnt = con.prepareStatement(query);
|
||||||
|
stmnt.setString(1, "UsuarioTest");
|
||||||
|
System.out.println(stmnt.toString());
|
||||||
|
stmnt.execute();
|
||||||
|
final ResultSet resultSet = stmnt.getResultSet();
|
||||||
|
Huesped huesped = new Huesped();
|
||||||
|
while (resultSet.next()) {
|
||||||
|
if (PassEncrypt.passMatch("test",resultSet.getString("password"))) {
|
||||||
|
huesped.setId(resultSet.getInt("id"));
|
||||||
|
huesped.setNombre(resultSet.getString("usuario"));
|
||||||
|
huesped.setNombre(resultSet.getString("nombre"));
|
||||||
|
huesped.setApellido(resultSet.getString("apellido"));
|
||||||
|
huesped.setFechaNacimiento(resultSet.getDate("fecha_nacimiento"));
|
||||||
|
huesped.setNacionalidad(resultSet.getString("nacionalidad"));
|
||||||
|
huesped.setTelefono(resultSet.getString("telefono"));
|
||||||
|
System.out.println(huesped.toString());
|
||||||
|
} else {
|
||||||
|
System.out.println("Verifica el nombre y/o contraseña");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
28
src/cl/com/alura/hotel/pruebas/PruebasDao.java
Normal file
28
src/cl/com/alura/hotel/pruebas/PruebasDao.java
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package cl.com.alura.hotel.pruebas;
|
||||||
|
|
||||||
|
import cl.com.alura.hotel.controller.HuespedController;
|
||||||
|
import cl.com.alura.hotel.controller.ReservaController;
|
||||||
|
import cl.com.alura.hotel.modelo.Huesped;
|
||||||
|
|
||||||
|
public class PruebasDao {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
HuespedController huespedControler = new HuespedController();
|
||||||
|
Huesped huesped = new Huesped();
|
||||||
|
huesped.setId(0);
|
||||||
|
var huesped_list = huespedControler.listar(huesped);
|
||||||
|
huesped_list.forEach(huesped_ -> System.out.println(huesped_));
|
||||||
|
|
||||||
|
huesped.setId(1);
|
||||||
|
var huesped_info = huespedControler.listar(huesped);
|
||||||
|
huesped_info.forEach(huesped_ -> System.out.println(huesped_));
|
||||||
|
|
||||||
|
ReservaController reservaController = new ReservaController();
|
||||||
|
var reservas = reservaController.listar();
|
||||||
|
reservas.forEach(reserva_ -> System.out.println(reserva_));
|
||||||
|
var reserva_huesped = reservaController.listar(huesped);
|
||||||
|
reserva_huesped.forEach(reserva_ -> System.out.println(reserva_));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
33
src/cl/com/alura/hotel/utils/GetEnvVars.java
Normal file
33
src/cl/com/alura/hotel/utils/GetEnvVars.java
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
package cl.com.alura.hotel.utils;
|
||||||
|
|
||||||
|
import io.github.cdimascio.dotenv.Dotenv;
|
||||||
|
|
||||||
|
public abstract class GetEnvVars {
|
||||||
|
private final static Dotenv dotenv = Dotenv.load();
|
||||||
|
private final static String dbname = dotenv.get("DBNAME");
|
||||||
|
private final static String dbaddr = dotenv.get("DBADDR");
|
||||||
|
private final static String dbuser = dotenv.get("DBUSER");
|
||||||
|
private final static String dbpass = dotenv.get("DBPASS");
|
||||||
|
private final static String pepper = dotenv.get("PEPPER");
|
||||||
|
|
||||||
|
public static String getDbname() {
|
||||||
|
return dbname;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getDbaddr() {
|
||||||
|
return dbaddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getDbuser() {
|
||||||
|
return dbuser;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getDbpass() {
|
||||||
|
return dbpass;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getPepper() {
|
||||||
|
return pepper;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
16
src/cl/com/alura/hotel/utils/PassEncrypt.java
Normal file
16
src/cl/com/alura/hotel/utils/PassEncrypt.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package cl.com.alura.hotel.utils;
|
||||||
|
|
||||||
|
import org.mindrot.jbcrypt.BCrypt;
|
||||||
|
|
||||||
|
public abstract class PassEncrypt {
|
||||||
|
|
||||||
|
private final static String pepper = GetEnvVars.getPepper();
|
||||||
|
|
||||||
|
public final static String passEncrypt(String password) {
|
||||||
|
return BCrypt.hashpw(password, BCrypt.gensalt(12) + pepper);
|
||||||
|
}
|
||||||
|
|
||||||
|
public final static Boolean passMatch(String candidate, String password) {
|
||||||
|
return BCrypt.checkpw(candidate, password);
|
||||||
|
}
|
||||||
|
}
|
@ -32,7 +32,7 @@ public class RegistroHuesped extends JFrame {
|
|||||||
private JTextField txtNombre;
|
private JTextField txtNombre;
|
||||||
private JTextField txtApellido;
|
private JTextField txtApellido;
|
||||||
private JTextField txtTelefono;
|
private JTextField txtTelefono;
|
||||||
private JTextField txtNreserva;
|
private JTextField txtNombreUsuario;
|
||||||
private JDateChooser txtFechaN;
|
private JDateChooser txtFechaN;
|
||||||
private JComboBox<Format> txtNacionalidad;
|
private JComboBox<Format> txtNacionalidad;
|
||||||
private JLabel labelExit;
|
private JLabel labelExit;
|
||||||
@ -128,7 +128,7 @@ public class RegistroHuesped extends JFrame {
|
|||||||
|
|
||||||
txtNombre = new JTextField();
|
txtNombre = new JTextField();
|
||||||
txtNombre.setFont(new Font("Roboto", Font.PLAIN, 16));
|
txtNombre.setFont(new Font("Roboto", Font.PLAIN, 16));
|
||||||
txtNombre.setBounds(560, 135, 285, 33);
|
txtNombre.setBounds(598, 209, 243, 33);
|
||||||
txtNombre.setBackground(Color.WHITE);
|
txtNombre.setBackground(Color.WHITE);
|
||||||
txtNombre.setColumns(10);
|
txtNombre.setColumns(10);
|
||||||
txtNombre.setBorder(javax.swing.BorderFactory.createEmptyBorder());
|
txtNombre.setBorder(javax.swing.BorderFactory.createEmptyBorder());
|
||||||
@ -136,75 +136,72 @@ public class RegistroHuesped extends JFrame {
|
|||||||
|
|
||||||
txtApellido = new JTextField();
|
txtApellido = new JTextField();
|
||||||
txtApellido.setFont(new Font("Roboto", Font.PLAIN, 16));
|
txtApellido.setFont(new Font("Roboto", Font.PLAIN, 16));
|
||||||
txtApellido.setBounds(560, 204, 285, 33);
|
txtApellido.setBounds(598, 278, 243, 33);
|
||||||
txtApellido.setColumns(10);
|
txtApellido.setColumns(10);
|
||||||
txtApellido.setBackground(Color.WHITE);
|
txtApellido.setBackground(Color.WHITE);
|
||||||
txtApellido.setBorder(javax.swing.BorderFactory.createEmptyBorder());
|
txtApellido.setBorder(javax.swing.BorderFactory.createEmptyBorder());
|
||||||
contentPane.add(txtApellido);
|
contentPane.add(txtApellido);
|
||||||
|
|
||||||
txtFechaN = new JDateChooser();
|
txtFechaN = new JDateChooser();
|
||||||
txtFechaN.setBounds(560, 278, 285, 36);
|
txtFechaN.setBounds(558, 349, 287, 36);
|
||||||
txtFechaN.getCalendarButton()
|
txtFechaN.getCalendarButton()
|
||||||
.setIcon(new ImageIcon(RegistroHuesped.class.getResource("/imagenes/icon-reservas.png")));
|
.setIcon(new ImageIcon(RegistroHuesped.class.getResource("/imagenes/icon-reservas.png")));
|
||||||
txtFechaN.getCalendarButton().setBackground(SystemColor.textHighlight);
|
txtFechaN.getCalendarButton().setBackground(SystemColor.textHighlight);
|
||||||
txtFechaN.setDateFormatString("yyyy-MM-dd");
|
txtFechaN.setDateFormatString("yyyy-MM-dd");
|
||||||
|
txtFechaN.setFont(new Font("Roboto", Font.PLAIN, 18));
|
||||||
contentPane.add(txtFechaN);
|
contentPane.add(txtFechaN);
|
||||||
|
|
||||||
txtNacionalidad = new JComboBox();
|
txtNacionalidad = new JComboBox();
|
||||||
txtNacionalidad.setBounds(560, 350, 289, 36);
|
txtNacionalidad.setBounds(558, 423, 287, 36);
|
||||||
txtNacionalidad.setBackground(SystemColor.text);
|
txtNacionalidad.setBackground(SystemColor.text);
|
||||||
txtNacionalidad.setFont(new Font("Roboto", Font.PLAIN, 16));
|
txtNacionalidad.setFont(new Font("Roboto", Font.PLAIN, 16));
|
||||||
txtNacionalidad.setModel(new DefaultComboBoxModel(new String[] { "afgano-afgana", "alemán-", "alemana",
|
txtNacionalidad.setModel(new DefaultComboBoxModel(new String[] { "afgana", "alemana",
|
||||||
"árabe-árabe", "argentino-argentina", "australiano-australiana", "belga-belga", "boliviano-boliviana",
|
"árabe", "argentina", "australiana", "belga", "boliviana", "brasileña",
|
||||||
"brasileño-brasileña", "camboyano-camboyana", "canadiense-canadiense", "chileno-chilena", "chino-china",
|
"camboyana", "canadiense", "chilena", "china", "colombiana", "coreana",
|
||||||
"colombiano-colombiana", "coreano-coreana", "costarricense-costarricense", "cubano-cubana",
|
"costarricense", "cubana", "danesa", "ecuatoriana", "egipcia", "salvadoreña",
|
||||||
"danés-danesa", "ecuatoriano-ecuatoriana", "egipcio-egipcia", "salvadoreño-salvadoreña",
|
"escocesa", "española", "estadounidense", "estonia", "etiope", "filipina",
|
||||||
"escocés-escocesa", "español-española", "estadounidense-estadounidense", "estonio-estonia",
|
"finlandesa", "francesa", "galesa", "griega", "guatemalteca", "haitiana",
|
||||||
"etiope-etiope", "filipino-filipina", "finlandés-finlandesa", "francés-francesa", "galés-galesa",
|
"holandesa", "hondureña", "indonesa", "inglesa", "iraquí", "iraní", "irlandesa",
|
||||||
"griego-griega", "guatemalteco-guatemalteca", "haitiano-haitiana", "holandés-holandesa",
|
"israelí", "italiana", "japonesa", "jordana", "laosiana", "letona", "letonesa",
|
||||||
"hondureño-hondureña", "indonés-indonesa", "inglés-inglesa", "iraquí-iraquí", "iraní-iraní",
|
"malaya", "marroquí", "mexicana", "nicaragüense", "noruega", "neozelandesa",
|
||||||
"irlandés-irlandesa", "israelí-israelí", "italiano-italiana", "japonés-japonesa", "jordano-jordana",
|
"panameña", "paraguaya", "peruana", "polaca", "portuguesa", "puertorriqueño",
|
||||||
"laosiano-laosiana", "letón-letona", "letonés-letonesa", "malayo-malaya", "marroquí-marroquí",
|
"dominicana", "rumana", "rusa", "sueca", "suizo-suiza", "tailandesa", "taiwanesa",
|
||||||
"mexicano-mexicana", "nicaragüense-nicaragüense", "noruego-noruega", "neozelandés-neozelandesa",
|
"turca", "ucraniana", "uruguaya", "venezolana", "vietnamita" }));
|
||||||
"panameño-panameña", "paraguayo-paraguaya", "peruano-peruana", "polaco-polaca", "portugués-portuguesa",
|
|
||||||
"puertorriqueño-puertorriqueño", "dominicano-dominicana", "rumano-rumana", "ruso-rusa", "sueco-sueca",
|
|
||||||
"suizo-suiza", "tailandés-tailandesa", "taiwanes-taiwanesa", "turco-turca", "ucraniano-ucraniana",
|
|
||||||
"uruguayo-uruguaya", "venezolano-venezolana", "vietnamita-vietnamita" }));
|
|
||||||
contentPane.add(txtNacionalidad);
|
contentPane.add(txtNacionalidad);
|
||||||
|
|
||||||
JLabel lblNombre = new JLabel("NOMBRE");
|
JLabel lblNombre = new JLabel("NOMBRE");
|
||||||
lblNombre.setBounds(562, 119, 253, 14);
|
lblNombre.setBounds(558, 191, 253, 14);
|
||||||
lblNombre.setForeground(SystemColor.textInactiveText);
|
lblNombre.setForeground(SystemColor.textInactiveText);
|
||||||
lblNombre.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
lblNombre.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
||||||
contentPane.add(lblNombre);
|
contentPane.add(lblNombre);
|
||||||
|
|
||||||
JLabel lblApellido = new JLabel("APELLIDO");
|
JLabel lblApellido = new JLabel("APELLIDO");
|
||||||
lblApellido.setBounds(560, 189, 255, 14);
|
lblApellido.setBounds(556, 259, 255, 14);
|
||||||
lblApellido.setForeground(SystemColor.textInactiveText);
|
lblApellido.setForeground(SystemColor.textInactiveText);
|
||||||
lblApellido.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
lblApellido.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
||||||
contentPane.add(lblApellido);
|
contentPane.add(lblApellido);
|
||||||
|
|
||||||
JLabel lblFechaN = new JLabel("FECHA DE NACIMIENTO");
|
JLabel lblFechaN = new JLabel("FECHA DE NACIMIENTO");
|
||||||
lblFechaN.setBounds(560, 256, 255, 14);
|
lblFechaN.setBounds(556, 323, 255, 14);
|
||||||
lblFechaN.setForeground(SystemColor.textInactiveText);
|
lblFechaN.setForeground(SystemColor.textInactiveText);
|
||||||
lblFechaN.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
lblFechaN.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
||||||
contentPane.add(lblFechaN);
|
contentPane.add(lblFechaN);
|
||||||
|
|
||||||
JLabel lblNacionalidad = new JLabel("NACIONALIDAD");
|
JLabel lblNacionalidad = new JLabel("NACIONALIDAD");
|
||||||
lblNacionalidad.setBounds(560, 326, 255, 14);
|
lblNacionalidad.setBounds(556, 397, 255, 14);
|
||||||
lblNacionalidad.setForeground(SystemColor.textInactiveText);
|
lblNacionalidad.setForeground(SystemColor.textInactiveText);
|
||||||
lblNacionalidad.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
lblNacionalidad.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
||||||
contentPane.add(lblNacionalidad);
|
contentPane.add(lblNacionalidad);
|
||||||
|
|
||||||
JLabel lblTelefono = new JLabel("TELÉFONO");
|
JLabel lblTelefono = new JLabel("TELÉFONO");
|
||||||
lblTelefono.setBounds(562, 406, 253, 14);
|
lblTelefono.setBounds(558, 477, 253, 14);
|
||||||
lblTelefono.setForeground(SystemColor.textInactiveText);
|
lblTelefono.setForeground(SystemColor.textInactiveText);
|
||||||
lblTelefono.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
lblTelefono.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
||||||
contentPane.add(lblTelefono);
|
contentPane.add(lblTelefono);
|
||||||
|
|
||||||
txtTelefono = new JTextField();
|
txtTelefono = new JTextField();
|
||||||
txtTelefono.setFont(new Font("Roboto", Font.PLAIN, 16));
|
txtTelefono.setFont(new Font("Roboto", Font.PLAIN, 16));
|
||||||
txtTelefono.setBounds(560, 424, 285, 33);
|
txtTelefono.setBounds(598, 497, 243, 33);
|
||||||
txtTelefono.setColumns(10);
|
txtTelefono.setColumns(10);
|
||||||
txtTelefono.setBackground(Color.WHITE);
|
txtTelefono.setBackground(Color.WHITE);
|
||||||
txtTelefono.setBorder(javax.swing.BorderFactory.createEmptyBorder());
|
txtTelefono.setBorder(javax.swing.BorderFactory.createEmptyBorder());
|
||||||
@ -216,52 +213,32 @@ public class RegistroHuesped extends JFrame {
|
|||||||
lblTitulo.setFont(new Font("Roboto Black", Font.PLAIN, 23));
|
lblTitulo.setFont(new Font("Roboto Black", Font.PLAIN, 23));
|
||||||
contentPane.add(lblTitulo);
|
contentPane.add(lblTitulo);
|
||||||
|
|
||||||
JLabel lblNumeroReserva = new JLabel("NÚMERO DE RESERVA");
|
|
||||||
lblNumeroReserva.setBounds(560, 474, 253, 14);
|
|
||||||
lblNumeroReserva.setForeground(SystemColor.textInactiveText);
|
|
||||||
lblNumeroReserva.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
|
||||||
contentPane.add(lblNumeroReserva);
|
|
||||||
|
|
||||||
txtNreserva = new JTextField();
|
|
||||||
txtNreserva.setFont(new Font("Roboto", Font.PLAIN, 16));
|
|
||||||
txtNreserva.setBounds(560, 495, 285, 33);
|
|
||||||
txtNreserva.setColumns(10);
|
|
||||||
txtNreserva.setBackground(Color.WHITE);
|
|
||||||
txtNreserva.setBorder(javax.swing.BorderFactory.createEmptyBorder());
|
|
||||||
contentPane.add(txtNreserva);
|
|
||||||
|
|
||||||
JSeparator separator_1_2 = new JSeparator();
|
JSeparator separator_1_2 = new JSeparator();
|
||||||
separator_1_2.setBounds(560, 170, 289, 2);
|
separator_1_2.setBounds(556, 244, 289, 2);
|
||||||
separator_1_2.setForeground(new Color(12, 138, 199));
|
separator_1_2.setForeground(new Color(12, 138, 199));
|
||||||
separator_1_2.setBackground(new Color(12, 138, 199));
|
separator_1_2.setBackground(new Color(12, 138, 199));
|
||||||
contentPane.add(separator_1_2);
|
contentPane.add(separator_1_2);
|
||||||
|
|
||||||
JSeparator separator_1_2_1 = new JSeparator();
|
JSeparator separator_1_2_1 = new JSeparator();
|
||||||
separator_1_2_1.setBounds(560, 240, 289, 2);
|
separator_1_2_1.setBounds(556, 314, 289, 2);
|
||||||
separator_1_2_1.setForeground(new Color(12, 138, 199));
|
separator_1_2_1.setForeground(new Color(12, 138, 199));
|
||||||
separator_1_2_1.setBackground(new Color(12, 138, 199));
|
separator_1_2_1.setBackground(new Color(12, 138, 199));
|
||||||
contentPane.add(separator_1_2_1);
|
contentPane.add(separator_1_2_1);
|
||||||
|
|
||||||
JSeparator separator_1_2_2 = new JSeparator();
|
JSeparator separator_1_2_2 = new JSeparator();
|
||||||
separator_1_2_2.setBounds(560, 314, 289, 2);
|
separator_1_2_2.setBounds(556, 386, 289, 2);
|
||||||
separator_1_2_2.setForeground(new Color(12, 138, 199));
|
separator_1_2_2.setForeground(new Color(12, 138, 199));
|
||||||
separator_1_2_2.setBackground(new Color(12, 138, 199));
|
separator_1_2_2.setBackground(new Color(12, 138, 199));
|
||||||
contentPane.add(separator_1_2_2);
|
contentPane.add(separator_1_2_2);
|
||||||
|
|
||||||
JSeparator separator_1_2_3 = new JSeparator();
|
JSeparator separator_1_2_3 = new JSeparator();
|
||||||
separator_1_2_3.setBounds(560, 386, 289, 2);
|
separator_1_2_3.setBounds(556, 461, 289, 2);
|
||||||
separator_1_2_3.setForeground(new Color(12, 138, 199));
|
separator_1_2_3.setForeground(new Color(12, 138, 199));
|
||||||
separator_1_2_3.setBackground(new Color(12, 138, 199));
|
separator_1_2_3.setBackground(new Color(12, 138, 199));
|
||||||
contentPane.add(separator_1_2_3);
|
contentPane.add(separator_1_2_3);
|
||||||
|
|
||||||
JSeparator separator_1_2_4 = new JSeparator();
|
|
||||||
separator_1_2_4.setBounds(560, 457, 289, 2);
|
|
||||||
separator_1_2_4.setForeground(new Color(12, 138, 199));
|
|
||||||
separator_1_2_4.setBackground(new Color(12, 138, 199));
|
|
||||||
contentPane.add(separator_1_2_4);
|
|
||||||
|
|
||||||
JSeparator separator_1_2_5 = new JSeparator();
|
JSeparator separator_1_2_5 = new JSeparator();
|
||||||
separator_1_2_5.setBounds(560, 529, 289, 2);
|
separator_1_2_5.setBounds(556, 537, 289, 2);
|
||||||
separator_1_2_5.setForeground(new Color(12, 138, 199));
|
separator_1_2_5.setForeground(new Color(12, 138, 199));
|
||||||
separator_1_2_5.setBackground(new Color(12, 138, 199));
|
separator_1_2_5.setBackground(new Color(12, 138, 199));
|
||||||
contentPane.add(separator_1_2_5);
|
contentPane.add(separator_1_2_5);
|
||||||
@ -333,6 +310,26 @@ public class RegistroHuesped extends JFrame {
|
|||||||
labelExit.setHorizontalAlignment(SwingConstants.CENTER);
|
labelExit.setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
labelExit.setForeground(SystemColor.black);
|
labelExit.setForeground(SystemColor.black);
|
||||||
labelExit.setFont(new Font("Roboto", Font.PLAIN, 18));
|
labelExit.setFont(new Font("Roboto", Font.PLAIN, 18));
|
||||||
|
|
||||||
|
txtNombreUsuario = new JTextField();
|
||||||
|
txtNombreUsuario.setBounds(598, 143, 243, 33);
|
||||||
|
contentPane.add(txtNombreUsuario);
|
||||||
|
txtNombreUsuario.setFont(new Font("Roboto", Font.PLAIN, 16));
|
||||||
|
txtNombreUsuario.setColumns(10);
|
||||||
|
txtNombreUsuario.setBackground(Color.WHITE);
|
||||||
|
txtNombreUsuario.setBorder(javax.swing.BorderFactory.createEmptyBorder());
|
||||||
|
|
||||||
|
JLabel lblNombreUsuario = new JLabel("NOMBRE DE USUARIO");
|
||||||
|
lblNombreUsuario.setBounds(556, 121, 253, 14);
|
||||||
|
contentPane.add(lblNombreUsuario);
|
||||||
|
lblNombreUsuario.setForeground(SystemColor.textInactiveText);
|
||||||
|
lblNombreUsuario.setFont(new Font("Roboto Black", Font.PLAIN, 18));
|
||||||
|
|
||||||
|
JSeparator separator_1_2_4 = new JSeparator();
|
||||||
|
separator_1_2_4.setBounds(556, 179, 289, 2);
|
||||||
|
contentPane.add(separator_1_2_4);
|
||||||
|
separator_1_2_4.setForeground(new Color(12, 138, 199));
|
||||||
|
separator_1_2_4.setBackground(new Color(12, 138, 199));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Código que permite mover la ventana por la pantalla según la posición de "x"
|
// Código que permite mover la ventana por la pantalla según la posición de "x"
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
module hotel_alura {
|
|
||||||
exports cl.com.alura.hotel.pruebas;
|
|
||||||
|
|
||||||
requires io.github.cdimascio.dotenv.java;
|
|
||||||
requires java.sql;
|
|
||||||
requires java.desktop;
|
|
||||||
requires jcalendar;
|
|
||||||
requires c3p0;
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user