/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package model.database; import model.object.BikeUsageType; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.logging.Level; import resource.log.ProjectLogger; /** * * @author Yoldark34 <yoldark@gmail.com> */ public class BikeUsageTypeMapper extends AbstractMapper { /** * retriev all bike usages type from the database * * @return ArrayList<BikeUsageType> * @throws SQLException * @throws ClassNotFoundException */ public ArrayList<BikeUsageType> getAllBikeUsagesType() throws SQLException, ClassNotFoundException { DbConnection adapter = DbConnection.getDbConnection(); adapter.executeSelectQuery("Select * from " + DataBaseElements.BIKEUSAGETYPE); return (ArrayList<BikeUsageType>) adapter.getModelsFromRequest(this); } /** * get bike usage type from a string * * @param String name of bike usage type * @return BikeUsageType */ public BikeUsageType getBikeUsagesType(String bikeUsageType) { String query; BikeUsageType result = null; query = "SELECT "; query += "*"; query += " FROM "; query += DataBaseElements.BIKEUSAGETYPE + " " + DataBaseElements.ALIAS_BIKEUSAGETYPE + " "; query += " WHERE "; query += DataBaseElements.ALIAS_BIKEUSAGETYPE + "." + DataBaseElements.BIKEUSAGETYPE_NAME + " = '" + bikeUsageType + "'"; try { DbConnection adapter = DbConnection.getDbConnection(); adapter.executeSelectQuery(query); result = (BikeUsageType) adapter.getModelFromRequest(this); } catch (SQLException | ClassNotFoundException ex) { ProjectLogger.log(this, Level.SEVERE, "Erreur d'exécution de la requête de la fonction bookFirstAvailableBikeForTerminal", ex); } return result; } /** * Insert bikeUsageType if id == -1 or update bikeUsageType instead * * @param bikeUsageType * @return int number of rows */ public int save(BikeUsageType bikeUsageType) { int nbRows = 0; int idResult = -1; String query; if (bikeUsageType.getId() != -1) { query = "UPDATE `" + DataBaseElements.BIKEUSAGETYPE + "` SET "; //query += "`"+DataBaseElements.BIKEUSAGETYPE_ID+"` = '"+bikeUsageType.getId()+"',";Can't be updated because used in where if (bikeUsageType.getId_parent_bike_usage_type() == -1) { query += "`" + DataBaseElements.BIKEUSAGETYPE_IDPARENT + "` = NULL,"; } else { query += "`" + DataBaseElements.BIKEUSAGETYPE_IDPARENT + "` = '" + bikeUsageType.getId_parent_bike_usage_type() + "',"; } query += "`" + DataBaseElements.BIKEUSAGETYPE_NAME + "` = '" + bikeUsageType.getName() + "',"; query += "`" + DataBaseElements.BIKEUSAGETYPE_DESCRIPTION + "` = '" + bikeUsageType.getDescription() + "' "; query += "WHERE `" + DataBaseElements.BIKEUSAGETYPE_ID + "` = '" + bikeUsageType.getId() + "';"; try { DbConnection adapter = DbConnection.getDbConnection(); nbRows = adapter.executeUpdateQuery(query); } catch (Exception e) { } return nbRows; } else { query = "INSERT INTO " + DataBaseElements.BIKEUSAGETYPE + " ("; //query += "`" + DataBaseElements.BIKEUSAGETYPE_ID + "`,"; query += "`" + DataBaseElements.BIKEUSAGETYPE_IDPARENT + "`,"; query += "`" + DataBaseElements.BIKEUSAGETYPE_NAME + "`,"; query += "`" + DataBaseElements.BIKEUSAGETYPE_DESCRIPTION + "` "; query += ") VALUES ("; //query += "'" + bikeUsageType.getId() + "',"; if (bikeUsageType.getId_parent_bike_usage_type() == -1) { query += "NULL,"; } else { query += "'" + bikeUsageType.getId_parent_bike_usage_type() + "',"; } query += "'" + bikeUsageType.getName() + "',"; query += "'" + bikeUsageType.getDescription() + "' "; query += ")"; try { DbConnection adapter = DbConnection.getDbConnection(); idResult = adapter.executeInsertQuery(query); } catch (Exception e) { } return idResult; } } @Override public Object populateModel(ResultSet row) throws SQLException { BikeUsageType obj = new BikeUsageType(); if (this.hasColumn(DataBaseElements.BIKEUSAGETYPE_ID, row)) { obj.setId(row.getInt(DataBaseElements.BIKEUSAGETYPE_ID)); } if (this.hasColumn(DataBaseElements.BIKEUSAGETYPE_IDPARENT, row)) { obj.setId_parent_bike_usage_type(row.getInt(DataBaseElements.BIKEUSAGETYPE_IDPARENT)); } if (this.hasColumn(DataBaseElements.BIKEUSAGETYPE_NAME, row)) { obj.setName(row.getString(DataBaseElements.BIKEUSAGETYPE_NAME)); } if (this.hasColumn(DataBaseElements.BIKEUSAGETYPE_DESCRIPTION, row)) { obj.setDescription(row.getString(DataBaseElements.BIKEUSAGETYPE_DESCRIPTION)); } return obj; } @Override Object getEmptyModel() { return new BikeUsageType(); } }