save excel in MySQL and delete an existing one

1

I am saving an excel file in MySQL using a jsp in java. How do I make sure that when I save another excel file in the same database, I delete the existing file and replace it with the new one?

I enclose the class code where I read the excel and where I keep it in MySQL

public class ReadExcel2 {

    public static void leerArchivoExcel2(FileInputStream inputStream) throws IOException {

        XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
        Sheet firstSheet = workbook.getSheetAt(0);
        int con = 1;
        String nombre_ant = "";

        Row fila;
        List<TablaJira> lst = new ArrayList<>();
        TablaJira ji = null;

        for (int i = 1; i < firstSheet.getLastRowNum(); i++) {

            fila = firstSheet.getRow(i);

            ji = new TablaJira();

            for (int j = 0; j < fila.getLastCellNum(); j++) {
                Cell celda = fila.getCell(j);

                if (j == 0) {

                    if (celda == null || celda.getCellType() == Cell.CELL_TYPE_BLANK) {
                        break;
                    }

                }

                switch (j) {

                    case 0:
                        if (celda.getCellType() == Cell.CELL_TYPE_STRING) {
                            ji.setProyecto(celda.getStringCellValue());

                        }

                        //   n.setNovedad(celda.getStringCellValue());
                        break;

                    case 1:
                        if (celda.getCellType() == Cell.CELL_TYPE_STRING) {
                            ji.setTipo(celda.getStringCellValue());
                        }
                        //ne.setFecha_inicio(celda.getStringCellValue());
                        break;

                    case 2:
                        if (celda.getCellType() == Cell.CELL_TYPE_STRING) {
                            ji.setClave(celda.getStringCellValue());
                        }
                        //ne.setFecha_fin(celda.getStringCellValue());

                        break;

                    case 3:
                        if (celda.getCellType() == Cell.CELL_TYPE_STRING) {
                            ji.setTitulo(celda.getStringCellValue());
                        }
                        //ne.setAño(celda.getStringCellValue());

                        break;
                    case 4:
                        if (celda.getCellType() == Cell.CELL_TYPE_STRING) {
                            ji.setNombres(celda.getStringCellValue());

                            // System.out.println(celda.getStringCellValue());
                        }

                        break;
                    case 5:
                        if (celda.getCellType() == Cell.CELL_TYPE_NUMERIC) {
                            ji.setTiempo_horas((int) celda.getNumericCellValue());
                        }

                        //else if (celda.getCellType()== Cell.CELL_TYPE_STRING){
                        //ne.setHoras(celda.getStringCellValue());
                        break;
                }
            }

            //Se guardan los datos por cada fila
            //guardarTablaNovedadEmpleado(ne);
            //guardarTablaNovedades(n);
            if (ji.getNombres() != null) {
                lst.add(ji);

            }

        }

        Collections.sort(lst, TablaJira.comparet);

        // en este for se esta asiendo la comparacion de los nombres para reiniciar
        //los id por cada nombre diferente
        for (int i = 0; i < lst.size(); i++) {

            String nombre = lst.get(i).getNombres();

            if (nombre == null ? nombre_ant != null : !nombre.equals(nombre_ant)) {
                con = 1;
                               lst.get(i).setPosicion(con);

                nombre_ant = nombre;
            } else {
                con++;
                lst.get(i).setPosicion(con);

            }

        }

        lst.forEach(ReadExcel2::guardarTblJira);

    }

    private static void guardarTblJira(TablaJira ji) {
        TablaJiraDao dao = new TablaJiraDao();
        dao.insertarTablaJira(ji);

    }

    /* private static void guardarTablaNovedadEmpleado(TablaNovedadEmpleado ne) {
        TablaNovedadEmpleadoDao dao = new TablaNovedadEmpleadoDao();
        dao.insertarTablaNovedadEmpleado(ne);
    }

    private static void guardarTablaNovedades(TablaNovedades n) {
        TablaNovedadesDao dao = new TablaNovedadesDao();
        dao.insertarTablan(n);//To change body of generated methods, choose Tools | Templates.
    }*/
}

and where I keep it

/**
 *
 * @author pcc
 */
public class TablaJiraDao {

    public int insertarTablaJira(TablaJira ji) {
        int bandera = 0;
        Conexion con = null;
        try {
            con = new Conexion();
            String query = "INSERT INTO tbljira (posicion , proyecto , tipo , clave , titulo , nombres , tiempo_horas) values (? , ? , ? , ? , ? , ? , ? )";
            PreparedStatement st = con.getConn().prepareStatement(query);
            // Empieza desde 1, cada número coresponde a la posición de cada signo de interrogación (?)
            //  st.setString(1, r.getNro_Documento());
            st.setInt(1, ji.getPosicion());
            st.setString(2, ji.getProyecto());
            st.setString(3, ji.getTipo());
            st.setString(4, ji.getClave());
            st.setString(5, ji.getTitulo());
            st.setString(6, ji.getNombres());
            st.setInt(7, ji.getTiempo_horas());

            bandera = st.executeUpdate();

            //System.out.println ("El archivo se a guardado exitosamente");
        } catch (SQLException ex) {

            Logger.getLogger(TablaJiraDao.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            if (con != null) {
                con.close();
            }

        }
        return bandera;
    }
}
    
asked by user26116 21.12.2016 в 14:03
source

1 answer

1

You have to see based on which field of the table tbljira the records to be deleted are grouped and make a delete on that table.

String query = "DELETE FROM tbljira where proyecto=? and clave=?";
PreparedStatement st = con.getConn().prepareStatement(query);
st.setString(1, ji.getProyecto());
st.setString(2, ji.getClave());
st.executeUpdate();

The fields of the where do not know if they will be those, that you have not explained the model of your database. Once that's done, make the call to insert TablJira and you're done.

    
answered by 21.12.2016 / 14:35
source