/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package model.database; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import model.object.ReturnAmount; /** * * @author Yoldark34 <yoldark@gmail.com> */ public class ReturnAmountMapper extends AbstractMapper { /** * get all return amount from a database * * @return ArrayList<ReturnAmount> * @throws SQLException * @throws ClassNotFoundException */ public ArrayList<ReturnAmount> getAllReturnAmount() throws SQLException, ClassNotFoundException { DbConnection adapter = DbConnection.getDbConnection(); adapter.executeSelectQuery("Select * from " + DataBaseElements.RETURNAMOUNT); return (ArrayList<ReturnAmount>) adapter.getModelsFromRequest(this); } /** * Insert returnAmount if id == -1 or update returnAmount instead * * @param returnAmount * @return int number of rows */ public int save(ReturnAmount returnAmount) { int nbRows = 0; String query; int idResult = -1; if (returnAmount.getId() != -1) { query = "UPDATE `" + DataBaseElements.RETURNAMOUNT + "` SET "; //query += "`"+DataBaseElements.RETURNAMOUNT_ID+"` = '"+returnAmount.getId()+"',";Can't be updated because used in where if (returnAmount.getIdSubscription() == -1) { query += "`" + DataBaseElements.RETURNAMOUNT_IDSUBSCRIPTION + "` = NULL,"; } else { query += "`" + DataBaseElements.RETURNAMOUNT_IDSUBSCRIPTION + "` = '" + returnAmount.getIdSubscription() + "',"; } if (returnAmount.getAmount() != -1) { query += "`" + DataBaseElements.RETURNAMOUNT_AMOUNT + "` = '" + returnAmount.getAmount() + "',"; } else { query += "NULL,"; } if (returnAmount.getReturnDate() == null) { query += "`" + DataBaseElements.RETURNAMOUNT_RETURNDATE + "` = " + returnAmount.getReturnDate() + ","; } else { query += "`" + DataBaseElements.RETURNAMOUNT_RETURNDATE + "` = '" + returnAmount.getReturnDate() + "'"; } query += " WHERE `" + DataBaseElements.RETURNAMOUNT_ID + "` = '" + returnAmount.getId() + "';"; try { DbConnection adapter = DbConnection.getDbConnection(); nbRows = adapter.executeUpdateQuery(query); } catch (Exception e) { } return nbRows; } else { query = "INSERT INTO " + DataBaseElements.RETURNAMOUNT + " ("; //query += "`" + DataBaseElements.RETURNAMOUNT_ID + "`,"; query += "`" + DataBaseElements.RETURNAMOUNT_IDSUBSCRIPTION + "`,"; query += "`" + DataBaseElements.RETURNAMOUNT_AMOUNT + "`,"; query += "`" + DataBaseElements.RETURNAMOUNT_RETURNDATE + "` "; query += ") VALUES ("; //query += "'" + returnAmount.getId() + "',"; if (returnAmount.getIdSubscription() == -1) { query += "NULL,"; } else { query += "'" + returnAmount.getIdSubscription() + "',"; } if (returnAmount.getAmount() != -1) { query += "'" + returnAmount.getAmount() + "',"; } else { query += "NULL,"; } if (returnAmount.getReturnDate() == null) { query += returnAmount.getReturnDate() + ","; } else { query += "'" + returnAmount.getReturnDate() + "'"; } query += ")"; try { DbConnection adapter = DbConnection.getDbConnection(); idResult = adapter.executeInsertQuery(query); } catch (Exception e) { } return idResult; } } @Override public Object populateModel(ResultSet row) throws SQLException { ReturnAmount obj = new ReturnAmount(); if (this.hasColumn(DataBaseElements.RETURNAMOUNT_ID, row)) { obj.setId(row.getInt(DataBaseElements.RETURNAMOUNT_ID)); } if (this.hasColumn(DataBaseElements.RETURNAMOUNT_IDSUBSCRIPTION, row)) { obj.setIdSubscription(row.getInt(DataBaseElements.RETURNAMOUNT_IDSUBSCRIPTION)); } if (this.hasColumn(DataBaseElements.RETURNAMOUNT_AMOUNT, row)) { obj.setAmount(row.getFloat(DataBaseElements.RETURNAMOUNT_AMOUNT)); } if (this.hasColumn(DataBaseElements.RETURNAMOUNT_RETURNDATE, row)) { obj.setReturnDate(row.getTimestamp(DataBaseElements.RETURNAMOUNT_RETURNDATE)); } return obj; } @Override Object getEmptyModel() { return new ReturnAmount(); } /** * delete a return amount * * @param idReturnAmountToDelete * @return boolean */ public boolean deleteReturnAmountById(ArrayList<Integer> idReturnAmountToDelete) { if (idReturnAmountToDelete.size() <= 0) { return true; } String query; int nbRows = 0; query = "DELETE"; query += " FROM "; query += DataBaseElements.RETURNAMOUNT; query += " WHERE "; query += DataBaseElements.RETURNAMOUNT_ID; query += " IN "; query += " ( "; int size = idReturnAmountToDelete.size() - 1; for (Integer idReturnAmount : idReturnAmountToDelete) { query += "'" + idReturnAmount + "'"; if (size != 0) { query += ", "; } size--; } query += " ) "; try { DbConnection adapter = DbConnection.getDbConnection(); nbRows = adapter.executeUpdateQuery(query); } catch (Exception e) { } if (nbRows <= 0) { return false; } return true; } }