Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Modelo;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.util.Properties;
- import vistas.Vista_global;
- import vistas.Vista_login;
- import vistas.Vista_mod;
- import vistas.Vista_singin;
- import controlador.Controlador;
- public class bbdd {
- private Vista_global vistaGlobal;
- private Controlador controlador;
- private Vista_login vista_login;
- private Vista_singin vista_singin;
- private Vista_mod vista_mod;
- public Vista_mod getVista_mod() {
- return vista_mod;
- }
- public void setVista_mod(Vista_mod vista_mod) {
- this.vista_mod = vista_mod;
- }
- private File config;
- private Properties propiedades;
- private InputStream entrada = null;
- private String bd;
- private String user;
- private String password;
- private String ubicacion;
- private String driver;
- private String url;
- private Connection conexion;
- private int nIntentos = 3;
- /**
- * CONSTRUCTOR: establece el nombre del archivo con los datos de
- * configuración Llama a método setDatosAcceso()
- *
- * @param archivo
- * : objeto File.
- * @throws FileNotFoundException
- * @throws SQLException
- * @throws ClassNotFoundException
- */
- public bbdd(File archivo) throws FileNotFoundException, ClassNotFoundException, SQLException {
- config = archivo;
- setDatosAcceso();
- conexionON();
- }
- /**
- * Establece la conexión con la base de datos.
- *
- * @throws ClassNotFoundException
- * @throws SQLException
- */
- public void conexionON() throws ClassNotFoundException, SQLException {
- Class.forName("com.mysql.jdbc.Driver");
- conexion = DriverManager.getConnection(url, user, password);
- }
- /**
- * Cierra la conexión con la base de datos.
- */
- public void conexionOFF() {
- try {
- conexion.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- /* **************************** */
- /* MÉTODO SETTER DE PROPIEDADES */
- /* **************************** */
- public void setVistaGlobal(Vista_global eVistaGlobal) {
- vistaGlobal = eVistaGlobal;
- }
- public void setControlador(Controlador eControlador) {
- controlador = eControlador;
- }
- public void setVista_login(Vista_login eVista_login) {
- vista_login = eVista_login;
- }
- public void setVista_singin(Vista_singin vista_singin) {
- this.vista_singin = vista_singin;
- }
- /*
- * public void setVista_mod(Vista_mod eVista_mod) { vista_mod = eVista_mod;
- * }
- */
- /**
- * setDatosAcceso() establece los valores de las propiedades de acceso a la
- * bbdd
- *
- * @throws FileNotFoundException
- */
- private void setDatosAcceso() throws FileNotFoundException {
- entrada = new FileInputStream(config);
- propiedades = new Properties();
- try {
- propiedades.load(entrada);
- // Establecer valores de las propiedades de acceso a la bbdd.
- bd = propiedades.getProperty("bd");
- user = propiedades.getProperty("user");
- password = propiedades.getProperty("password");
- ubicacion = propiedades.getProperty("ubicacion");
- driver = propiedades.getProperty("driver");
- url = driver + ubicacion + bd;
- } catch (IOException e1) {
- vista_login.failConection();
- }
- }
- /* ******************************************** */
- /* MÉTODOS RELACIONADOS SELECT, INSERT Y UPDATE */
- /* ******************************************** */
- public void setLogeo(String eEmail, String ePassword) throws SQLException,
- ClassNotFoundException {
- if (eEmail.equals("") || ePassword.equals("")) {
- vista_login.showMessage("No debes dejar ningun campo vacío");
- } else {
- try {
- String select = "SELECT * FROM inventario.usuario WHERE email=? AND password=?";
- PreparedStatement stmt = conexion.prepareStatement(select);
- stmt.setString(1, eEmail);
- stmt.setString(2, ePassword);
- ResultSet resultados = stmt.executeQuery();
- resultados.next();
- if (ePassword.equals(resultados.getString("password"))) {
- vista_login.irAlPrograma();
- resultados.close();
- stmt.close();
- } else {
- throw new Exception();
- }
- } catch (Exception e) {
- nIntentos--;
- if (nIntentos == 0) {
- vista_login.cerrarApp();
- } else {
- vista_login.failLogin(nIntentos);
- }
- }
- }
- }
- public void register(String name, String eEmail, String ePassword,
- String passwordConfirm) throws ClassNotFoundException {
- boolean cojemos;
- String marcaEmail;
- if (name.equals("") || ePassword.equals("") || eEmail.equals("")
- || passwordConfirm.equals("")) {
- vista_singin
- .showMessage("Todos los campos son necesarios para completar el registro");
- } else if (!ePassword.equals(passwordConfirm)) {
- vista_singin
- .showMessage("Las contraseñas deben coincidir para continuar con el registro");
- } else {
- cojemos = false;
- marcaEmail = "";
- for (int i = 0; i < eEmail.length(); i++) {
- if (eEmail.charAt(i) == '@') {
- cojemos = true;
- }
- if (cojemos == true) {
- marcaEmail += eEmail.charAt(i);
- }
- }
- if (cojemos == false) {
- vista_singin
- .showMessage("La estructura del email debe ser tunombre@tuservidor.es/com");
- } else if (marcaEmail.equals("@hotmail.com")
- || marcaEmail.equals("@hotmail.es")
- || marcaEmail.equals("@gmail.com")
- || marcaEmail.equals("@yahoo.com")) {
- // SI TODO ESTA CORRECTO SE REGISTRA
- System.out.println(eEmail);
- try {
- String comprobar = "SELECT * FROM inventario.usuario WHERE email=?";
- PreparedStatement stmt = conexion
- .prepareStatement(comprobar);
- stmt.setString(1, eEmail);
- ResultSet resultados = stmt.executeQuery();
- resultados.next();
- String texto = resultados.getString("email");
- vista_singin
- .showMessage("El email "
- + texto
- + " ya esta registrado en nuestra base de datos \n Utilize otro E-mail");
- resultados.close();
- stmt.close();
- } catch (SQLException e1) {
- // SI SE PRODUCE LA EXCEPCION SE GENERARA EL MENSAJE DE
- // REGISTRO; SINO, SE DIRÁ QUE EL EMAIL YA ESTA REGISTRADO
- // EN LA BBDD
- String insercion = ("INSERT INTO inventario.usuario(nombre,password,email) VALUES ('"
- + name + "','" + ePassword + "','" + eEmail + "')");
- vista_singin.showMessage("El registro se ha completado");
- vista_singin.desactivarVista();
- vista_login.activarVista(vista_singin.getX(),
- vista_singin.getY());
- try {
- PreparedStatement stmt2 = conexion
- .prepareStatement(insercion);
- stmt2.executeUpdate();
- } catch (SQLException e) {
- vista_singin
- .showMessage("Fallo al registrarse en la base de datos");
- }
- }
- } else {
- vista_singin
- .showMessage("Tu email debe ser de los siguientes dominios \n - hotmail.com \n - hotmail.es \n - gmail.com \n - yahoo.com");
- }
- }
- }
- public void getTabla(String eTabla) throws SQLException {
- String tabla = "";
- if (eTabla.equals("Usuarios")) {
- tabla = "usuario";
- } else if (eTabla.equals("Equipos")) {
- tabla = "equipo";
- } else if (eTabla.equals("Prestamos")) {
- tabla = "reserva";
- }
- if (tabla.equals("usuario")) {
- String select = "SELECT * FROM inventario." + tabla;
- PreparedStatement stmt = conexion.prepareStatement(select);
- ResultSet resultados = stmt.executeQuery();
- while (resultados.next()) {
- int id_usuario = resultados.getInt("id_usuario");
- String nombre = resultados.getString("nombre");
- String password = resultados.getString("password");
- String email = resultados.getString("email");
- vistaGlobal.recibirUsuario(id_usuario, nombre, password, email);
- }
- } else if (tabla.equals("equipo")) {
- String select = "SELECT * FROM inventario." + tabla;
- PreparedStatement stmt = conexion.prepareStatement(select);
- ResultSet resultados = stmt.executeQuery();
- while (resultados.next()) {
- int id_equipo = resultados.getInt("id_equipo");
- String placa_base = resultados.getString("placa_base");
- int num_armario = resultados.getInt("num_armario");
- vistaGlobal.recibirEquipo(id_equipo, placa_base, num_armario);
- }
- } else if (tabla.equals("reserva")) {
- // vistaGlobal.recibirPrestamo(id_equipo, placa_base, armario,
- // usuario, fecha_prestamo, fecha_devolucion);
- // consulta para juntar las 3 tablas (equipo, usuario y reserva):
- String select = "SELECT * FROM inventario.usuario user INNER JOIN inventario.reserva res ON user.id_usuario = res.id_usuario INNER JOIN inventario.equipo eq ON res.id = eq.id_equipo";
- PreparedStatement stmt = conexion.prepareStatement(select);
- ResultSet resultados = stmt.executeQuery();
- while (resultados.next()) {
- int id_equipo = resultados.getInt("id_equipo");
- String placa_base = resultados.getString("placa_base");
- int num_armario = resultados.getInt("num_armario");
- int id_usuario = resultados.getInt("id_usuario");
- String nombre = resultados.getString("nombre");
- String fecha_inicio = resultados.getString("fecha_inicio");
- String fecha_fin = resultados.getString("fecha_fin");
- vistaGlobal.recibirPrestamo(id_equipo, placa_base, num_armario,
- id_usuario, nombre, fecha_inicio, fecha_fin);
- }
- } else {
- // ///////////////////////////////////////////
- // ////////// MENSAJE DE ERROR ///////////////
- // ///////////////////////////////////////////
- }
- }
- public void enviarDatosArchivo() {
- vista_mod.recibirDatosArchivo(user, password, bd, ubicacion, driver);
- }
- public void modificarDatosArchivo(String eUsuario, String ePassword,
- String eBd, String eUbicacion, String eDriver) throws IOException {
- OutputStream salida = new FileOutputStream(config);
- propiedades.setProperty("bd", eBd);
- propiedades.setProperty("user", eUsuario);
- propiedades.setProperty("password", ePassword);
- propiedades.setProperty("ubicacion", eUbicacion);
- propiedades.setProperty("driver", eDriver);
- propiedades.store(salida, "");
- setDatosAcceso();
- }
- /**
- * Modifica, elimina o incorpora registros en tabla "usuario"
- *
- * @param orden
- * @param id_usuario
- * @param nombre
- * @param password
- * @param email
- * @throws SQLException
- */
- public void modificacionDatosUsuario(String orden, int id_usuario,
- String nombre, String password, String email) throws SQLException {
- if (orden.equals("modificar")) {
- String select = "UPDATE inventario.usuario SET nombre = ?, password= ?, email= ? WHERE id_usuario = ?";
- PreparedStatement stmt = conexion.prepareStatement(select);
- stmt.setString(1, nombre);
- stmt.setString(2, password);
- stmt.setString(3, email);
- stmt.setInt(4, id_usuario);
- int resultados = stmt.executeUpdate();
- } else if (orden.equals("insertar")) {
- String select = "INSERT INTO inventario.usuario (nombre, password, email) VALUES (?, ?, ?)";
- PreparedStatement stmt = conexion.prepareStatement(select);
- stmt.setString(1, nombre);
- stmt.setString(2, password);
- stmt.setString(3, email);
- int resultados = stmt.executeUpdate();
- } else if (orden.equals("eliminar")) {
- String select = "DELETE FROM inventario.usuario WHERE id_usuario=?";
- PreparedStatement stmt = conexion.prepareStatement(select);
- stmt.setInt(1, id_usuario);
- int resultados = stmt.executeUpdate();
- }
- }
- /**
- * Modifica, elimina o incorpora registros en tabla "reserva"
- *
- * @param orden
- * @param id_equipo
- * @param placa_base
- * @param armario
- * @param usuario
- * @param fecha_prestamo
- * @param fecha_devolucion
- * @throws SQLException
- */
- public void modificacionDatosPrestamos(String orden, int id_equipo,
- String placa_base, int armario, int id_usuario, String usuario,
- String fecha_prestamo, String fecha_devolucion) throws SQLException {
- /*
- * id_equipo placa_base armario usuario - id_usuario fecha préstamo
- * fecha devolucion
- */
- if (orden.equals("modificar")) {
- ResultSet idUser;
- try {
- // 1ª Buscar el id del usuario por si hubiera cambiado y
- // asociarlo a la reserva.
- String selectUser = "SELECT id_usuario FROM inventario.usuario WHERE nombre= ?";
- PreparedStatement statementUser = conexion
- .prepareStatement(selectUser);
- statementUser.setString(1, usuario);
- idUser = statementUser.executeQuery();
- idUser.next();
- id_usuario = idUser.getInt("id_usuario");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- // Modificar en tabla reservas el id_equipo, el id_usuario,
- // fecha_inicio (fecha_prestamo), fecha_fin (fecha_devolucion)
- String update1 = "UPDATE inventario.reserva SET id_usuario= ?, id= ?, fecha_inicio= ?, fecha_fin=? WHERE id_usuario = "
- + id_usuario + " AND id = " + id_equipo + " AND fecha_inicio = " + fecha_prestamo;
- PreparedStatement stmt = conexion.prepareStatement(update1);
- stmt.setInt(1, id_usuario);
- stmt.setInt(2, id_equipo);
- stmt.setString(3, fecha_prestamo);
- stmt.setString(4, fecha_devolucion);
- int resultados = stmt.executeUpdate();
- } else if (orden.equals("insertar")) {
- String insert1 = "INSERT INTO inventario.reserva (id_usuario, id, fecha_inicio, fecha_fin) VALUES (?, ?, ?, ?)";
- PreparedStatement stmt2 = conexion.prepareStatement(insert1);
- stmt2.setInt(1, id_usuario);
- stmt2.setInt(2, id_equipo);
- stmt2.setString(3, fecha_prestamo);
- stmt2.setString(4, fecha_devolucion);
- ResultSet resultados = stmt2.executeQuery();
- }
- }
- /**
- * Modifica, elimina o incorpora registros en tabla "equipo"
- *
- * @param orden
- * @param id_equipo
- * @param placa_base
- * @param armario
- * @throws SQLException
- */
- public void modificacionDatosEquipo(String orden, int id_equipo,
- String placa_base, int armario) throws SQLException {
- if (orden.equals("modificar")) {
- String select = "UPDATE inventario.equipo SET placa_base= ?, num_armario= ? WHERE id_equipo = ?";
- PreparedStatement stmt = conexion.prepareStatement(select);
- stmt.setString(1, placa_base);
- stmt.setInt(2, armario);
- stmt.setInt(3, id_equipo);
- int resultados = stmt.executeUpdate();
- } else if (orden.equals("insertar")) {
- String select = "INSERT INTO inventario.equipo (id, placa_base, num_armario) VALUES (?, ?, ?)";
- PreparedStatement stmt = conexion.prepareStatement(select);
- stmt.setInt(1, id_equipo);
- stmt.setString(2, placa_base);
- stmt.setInt(3, armario);
- int resultados = stmt.executeUpdate();
- } else if (orden.equals("eliminar")) {
- String select = "DELETE FROM inventario.equipo WHERE id_equipo=?";
- PreparedStatement stmt = conexion.prepareStatement(select);
- stmt.setInt(1, id_equipo);
- int resultados = stmt.executeUpdate();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement