Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Modelo; import com.mysql.jdbc.Connection; import com.mysql.jdbc.PreparedStatement; import com.mysql.jdbc.Statement; import java.util.Date; import java.sql.DriverManager; import java.sql.ResultSet; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.List; import java.util.TreeSet; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; /** * * @author aaron */ public class Manager_BD { private Connection connect = null; private final Statement statement = null; private final PreparedStatement preparedStatement = null; private final ResultSet resultSet = null; // private final String Usuario="telmexbb"; // private final String Password="8OjWarUdChakKa"; // private final String baseDatos="telmexbb_sitio_sapflock"; private final String Usuario = "sapflock"; private final String Password = "b8jeHbyTEeWwpLVw"; private final String baseDatos = "sapflock"; public void iniciarConexion() { try { Class.forName("com.mysql.jdbc.Driver"); connect = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/" + baseDatos + "", Usuario, Password); } catch (Exception e) { System.err.println("Iniciar conexion: " + e); } } public List<Tarea> obtenerTareasdeHoyUsuario(String usuario_Mail) { List<Tarea> lista = new ArrayList<>(); try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st .executeQuery("select nombre_Cliente,nombre_Proyecto, nombre_Tarea, horas_Tarea, fecha from " + baseDatos + ".Usuarios inner join " + baseDatos + ".Tareas on Usuarios.idUsuarios=Tareas.idUsuarios and Usuarios.email=\"" + usuario_Mail + "\" inner join " + baseDatos + ".Clientes on Clientes.idClientes=Tareas.idCliente"); Date fecha = new Date(); SimpleDateFormat formatoFecha = new SimpleDateFormat("YYYY-MM-dd"); while (rs.next()) { System.out.println(formatoFecha.format(fecha)); System.out.println(rs.getDate("fecha")); if (rs.getString("fecha").equals(formatoFecha.format(fecha))) { Tarea tar = new Tarea(); tar.setCliente(rs.getString("nombre_Cliente")); tar.setProyecto(rs.getString("nombre_Proyecto")); tar.setNombre(rs.getString("nombre_Tarea")); tar.setHoras_asignadas(rs.getInt("horas_Tarea")); tar.setFecha(rs.getDate("fecha")); System.err.println(rs.getDate("fecha")); lista.add(tar); } } rs.close(); st.close(); } catch (Exception e) { e.printStackTrace(); } return lista; } public List<Tarea> obtenerTodaslasTareasUsuario(String usuario_Mail) { List<Tarea> lista = new ArrayList<>(); try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery( "select email,nombre_Cliente,nombre_Proyecto, nombre_Tarea, horas_Tarea, fecha from " + baseDatos + ".Usuarios inner join " + baseDatos + ".Tareas on Usuarios.idUsuarios=Tareas.idUsuarios and Usuarios.email=\"" + usuario_Mail + "\" inner join " + baseDatos + ".Clientes on Clientes.idClientes=Tareas.idCliente"); while (rs.next()) { Tarea tar = new Tarea(); tar.setCliente(rs.getString("nombre_Cliente")); tar.setProyecto(rs.getString("nombre_Proyecto")); tar.setNombre(rs.getString("nombre_Tarea")); tar.setHoras_asignadas(rs.getInt("horas_Tarea")); tar.setFecha(rs.getDate("fecha")); System.err.println(rs.getDate("fecha")); lista.add(tar); } rs.close(); st.close(); } catch (Exception e) { e.printStackTrace(); } return lista; } public String login(String email) { String liga = "Login Fail"; try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery("select email,tipo_Usuario from " + baseDatos + ".Usuarios"); while (rs.next()) { if (rs.getString("email").equals(email)) { if (rs.getInt("tipo_Usuario") == 0) { liga = "inicio_dios.jsp"; } else if (rs.getInt("tipo_Usuario") == 1) { liga = "inicio_admin.jsp"; } else { liga = "inicio_normal.jsp"; } } else { System.err.println("Algo valio Mothers"); } } rs.close(); st.close(); } catch (Exception e) { System.err.println("Router Fail"); } return liga; } public boolean registraUsuario(String email, String nombre, String apellido, int nivelUsuario) { boolean x = false; try { Statement st = (Statement) connect.createStatement(); st.execute("INSERT INTO " + baseDatos + ".Usuarios (nombre, ap_Paterno, email, tipo_Usuario) VALUES ('" + nombre + "', '" + apellido + "', '" + email + "', " + nivelUsuario + ");"); x = true; st.close(); } catch (Exception e) { x = false; System.err.println("Fallo al Crear Cliente Proyecto" + e); } return x; } public boolean checkExistenciaUsuario(String email) { boolean x = false; try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery("select email, tipo_Usuario from " + baseDatos + ".Usuarios"); while (rs.next()) { if (email.equals(rs.getString("email"))) { x = true; } } rs.close(); st.close(); } catch (Exception e) { x = false; System.err.println("Router Fail"); } return x; } public int routearUsuario(String email) { int tipo_usuario = 99; //0 dios, 1 admin , 2 normal try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery("select email, tipo_Usuario from " + baseDatos + ".Usuarios"); while (rs.next()) { if (email.equals(rs.getString("email"))) { tipo_usuario = rs.getInt("tipo_Usuario"); } } rs.close(); st.close(); } catch (Exception e) { System.err.println("Router Fail"); } return tipo_usuario; } public void crearClienteProyecto(String cliente, String proyecto) { try { Statement st = (Statement) connect.createStatement(); st.execute("INSERT INTO " + baseDatos + ".Clientes (nombre_Cliente, nombre_Proyecto) VALUES (\"" + cliente.toUpperCase() + "\", \"" + proyecto.toUpperCase() + "\");"); st.close(); } catch (Exception e) { System.err.println("Fallo al Crear Cliente Proyecto" + e); } } public TreeSet<String> obtenerClientes() { TreeSet<String> listaClientes = new TreeSet<>(); try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery("select * from " + baseDatos + ".Clientes"); while (rs.next()) { listaClientes.add(rs.getString("nombre_Cliente").toUpperCase()); } rs.close(); st.close(); } catch (Exception e) { e.printStackTrace(); } return listaClientes; } public TreeSet<String> obtenerProyectos() { TreeSet<String> listaClientes = new TreeSet<>(); try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery("select * from " + baseDatos + ".Clientes"); while (rs.next()) { listaClientes.add(rs.getString("nombre_Proyecto").toUpperCase()); } rs.close(); st.close(); } catch (Exception e) { e.printStackTrace(); } return listaClientes; } public TreeSet<String> obtenerProyectosporCliente(String cliente) { TreeSet<String> listaClientes = new TreeSet<>(); try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery( "select * from " + baseDatos + ".Clientes where nombre_Cliente=\"" + cliente + "\""); while (rs.next()) { listaClientes.add(rs.getString("nombre_Proyecto").toUpperCase()); } rs.close(); st.close(); } catch (Exception e) { e.printStackTrace(); } return listaClientes; } public void crearTareaSimple(String cliente, String proyecto, String tarea) { try { Statement st = (Statement) connect.createStatement(); st.execute("INSERT INTO " + baseDatos + ".TareasSimples (Cliente, Proyecto, Tarea) VALUES (\"" + cliente + "\", \"" + proyecto + "\", \"" + tarea + "\")"); st.close(); } catch (Exception e) { System.err.println("Fallo al Crear Tarea" + e); } } public TreeSet<String> obtenerTareasSimples() { TreeSet<String> listaTareas = new TreeSet<>(); try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery("select * from " + baseDatos + ".TareasSimples"); while (rs.next()) { listaTareas.add(rs.getString("Tarea").toUpperCase()); } rs.close(); st.close(); } catch (Exception e) { e.printStackTrace(); } return listaTareas; } public void asignarTarea(int idUsuario, int idCliente, String nombreTarea, String fecha, int horasTarea) { //INSERT INTO "+baseDatos+".Tareas (nombre_Tarea, fecha, horas_Tarea, idUsuarios, idCliente) VALUES ('nombre tarea', '2014-02-10', 2, X, Z); try { Statement st = (Statement) connect.createStatement(); st.execute("INSERT INTO " + baseDatos + ".Tareas (nombre_Tarea, fecha, horas_Tarea, idUsuarios, idCliente) VALUES (\"" + nombreTarea + "\", \"" + fecha + "\", " + horasTarea + ", " + idUsuario + ", " + idCliente + ")"); st.close(); } catch (Exception e) { System.err.println("Fallo al Crear Tarea" + e); } } public int getIdUsuario(String email) { int idUsuario = -1; try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery("Select idUsuarios,email from " + baseDatos + ".Usuarios"); while (rs.next()) { if (rs.getString("email").equals(email)) { idUsuario = rs.getInt("idUsuarios"); } } rs.close(); st.close(); } catch (Exception e) { System.err.println("Router Fail"); } return idUsuario; } public int obtenerHorasPorDia(String mail, String fecha) { int horas_diarias = 0; try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery("SELECT SUM(horas_Tarea) FROM " + baseDatos + ".Tareas inner join " + baseDatos + ".Usuarios on Usuarios.idUsuarios=Tareas.idUsuarios and Usuarios.email=\"" + mail + "\" and Tareas.fecha=\"" + fecha + "\""); while (rs.next()) { horas_diarias = rs.getInt(1); } rs.close(); st.close(); } catch (Exception e) { System.err.println("Router Fail"); } return horas_diarias; } public List<String> verificarUsuarioRelacionProyecto(String email, String Cliente, String Proyecto) { List<String> listadatos = new ArrayList<>(); try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery( "select email, idUsuarios, idClientes from " + baseDatos + ".Usuarios inner join " + baseDatos + ".Clientes where Usuarios.email=\"" + email + "\" and Clientes.nombre_Cliente=\"" + Cliente + "\" and Clientes.nombre_Proyecto=\"" + Proyecto + "\""); while (rs.next()) { listadatos.add(rs.getString("email")); listadatos.add(rs.getInt("idUsuarios") + ""); listadatos.add(rs.getInt("idClientes") + ""); } rs.close(); st.close(); } catch (Exception e) { System.err.println("Router Fail"); } return listadatos; } public List<Tarea> obtenerTareasNOHechasODeLaFecha(String email, String fechaInicio, String fechaFinal) { List<Tarea> listaTareas = new ArrayList<>(); try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM " + baseDatos + ".Tareas inner join " + baseDatos + ".Usuarios on Usuarios.idUsuarios=Tareas.idUsuarios inner join " + baseDatos + ".Clientes on Clientes.idClientes=Tareas.idCliente where (Tareas.fecha between \"" + fechaInicio + "\" and \"" + fechaFinal + "\" || Tareas.fecha=\"2014-02-00\") and Usuarios.email=\"" + email + "\""); while (rs.next()) { Tarea tarea = new Tarea(); tarea.setIdTarea(rs.getInt("idTareas")); tarea.setNombre(rs.getString("nombre_Tarea")); tarea.setHoras_asignadas(rs.getInt("horas_Tarea")); tarea.setFecha(rs.getDate("fecha")); tarea.setProyecto(rs.getString("nombre_Proyecto")); tarea.setCliente(rs.getString("nombre_Cliente")); listaTareas.add(tarea); } rs.close(); st.close(); } catch (Exception e) { System.err.println("Router Fail"); } return listaTareas; } public void actualizarHorasdeunDia(int idUsuario, String fecha, int horas, String tarea, int idTarea) { try { Statement st = (Statement) connect.createStatement(); st.execute("UPDATE " + baseDatos + ".Tareas SET horas_Tarea=" + horas + ", fecha=\"" + fecha + "\" WHERE idUsuarios=" + idUsuario + " and nombre_Tarea=\"" + tarea + "\" and idTareas=" + idTarea + ";"); st.close(); } catch (Exception e) { System.err.println("Fallo al Crear Tarea" + e); } } public void eliminarTarea(int id) { try { Statement st = (Statement) connect.createStatement(); st.execute("DELETE FROM " + baseDatos + ".Tareas WHERE idTareas=" + id + ";"); st.close(); } catch (Exception e) { System.err.println("Fallo al Crear Tarea" + e); } } public List<Tarea> obtenerTareasporFecha(String email, String fecha) { List<Tarea> lista = new ArrayList<>(); try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM " + baseDatos + ".Tareas inner join " + baseDatos + ".Usuarios on Usuarios.idUsuarios=Tareas.idUsuarios inner join " + baseDatos + ".Clientes on Tareas.idCliente=Clientes.idClientes where Usuarios.email=\"" + email + "\" and Tareas.fecha=\"" + fecha + "\""); while (rs.next()) { Tarea tar = new Tarea(); tar.setIdTarea(rs.getInt("idTareas")); tar.setCliente(rs.getString("nombre_Cliente")); tar.setProyecto(rs.getString("nombre_Proyecto")); tar.setNombre(rs.getString("nombre_Tarea")); tar.setHoras_asignadas(rs.getInt("horas_Tarea")); tar.setFecha(rs.getDate("fecha")); lista.add(tar); } rs.close(); st.close(); } catch (Exception e) { e.printStackTrace(); } return lista; } public Workbook tareasParaReporte(String fechaI, String fechaF, String cliente, String proyecto) { Workbook libro = new XSSFWorkbook(); // Se crea una hoja dentro del libro Sheet hoja = libro.createSheet(); // Se crea una fila dentro de la hoja Row fila = hoja.createRow(1); try { Statement st = (Statement) connect.createStatement(); ResultSet rs = st.executeQuery("select * from " + baseDatos + ".Tareas inner join " + baseDatos + ".Usuarios on Tareas.idUsuarios=Usuarios.idUsuarios inner join " + baseDatos + ".Clientes on Clientes.idClientes=Tareas.idCliente ORDER BY nombre_Cliente"); Calendar c1 = GregorianCalendar.getInstance(); Calendar c2 = GregorianCalendar.getInstance(); Calendar fb = GregorianCalendar.getInstance(); SimpleDateFormat formatoSlash = new SimpleDateFormat("MM/dd/yyyy"); SimpleDateFormat formatoGuion = new SimpleDateFormat("yyyy-MM-dd"); c1.setTime(formatoSlash.parse(fechaI)); c2.setTime(formatoSlash.parse(fechaF)); // Se crea una celda dentro de la fila Cell celda = fila.createCell(1); celda.setCellValue("Reporte de Horas de:"); fila.createCell(2).setCellValue(fechaI); fila.createCell(3).setCellValue("al"); fila.createCell(4).setCellValue(fechaF); int filas = 3; int filasabajo = filas + 3; while (rs.next()) { fb.setTime(formatoGuion.parse(rs.getString("fecha").toString())); for (int i = 0; i < 999; i++) { } if (fb.before(c2) && fb.after(c1)) { if (cliente.equals("TODOS")) { if (proyecto.equals("TODOS")) { } else { } } else { if (proyecto.equals("TODOS")) { } else { hoja.createRow(filas).createCell(1).setCellValue(cliente); hoja.createRow(filas + 1).createCell(1).setCellValue(proyecto); if (cliente.equals(rs.getString("nombre_Cliente"))) { Row filaX = hoja.createRow(filasabajo); filaX.createCell(2).setCellValue(rs.getString("email")); filaX.createCell(3).setCellValue(rs.getString("nombre_Tarea")); filaX.createCell(4).setCellValue(rs.getString("horas_Tarea")); filaX.createCell(5).setCellValue(rs.getString("fecha")); filasabajo++; } } } } } rs.close(); st.close(); } catch (Exception e) { e.printStackTrace(); } return libro; } public void cerrarConexion() { try { connect.close(); } catch (Exception e) { System.err.println("Cerrar conexion: " + e); } } }