/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package model.database;
import model.object.StorageType;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
/**
*
* @author Yoldark34 <yoldark@gmail.com>
*/
public class StorageTypeMapper extends AbstractMapper {
/**
* Get all storages types from the database
*
* @return ArrayList<StorageType>
* @throws SQLException
* @throws ClassNotFoundException
*/
public ArrayList<StorageType> getAllStorageTypes() throws SQLException, ClassNotFoundException {
DbConnection adapter = DbConnection.getDbConnection();
adapter.executeSelectQuery("Select * from " + DataBaseElements.STORAGETYPE);
return (ArrayList<StorageType>) adapter.getModelsFromRequest(this);
}
/**
* Insert storageType if id == -1 or update storageType instead
*
* @param storageType
* @return int number of rows
*/
public int save(StorageType storageType) {
int nbRows = 0;
int idResult = -1;
String query;
if (storageType.getId() != -1) {
query = "UPDATE `" + DataBaseElements.STORAGETYPE + "` SET ";
//query += "`"+DataBaseElements.STORAGETYPE_ID+"` = '"+storageType.getId()+"',";Can't be updated because used in where
query += "`" + DataBaseElements.STORAGETYPE_CODE + "` = '" + storageType.getCode() + "',";
query += "`" + DataBaseElements.STORAGETYPE_NAME + "` = '" + storageType.getName() + "',";
query += "`" + DataBaseElements.STORAGETYPE_DESCRIPTION + "` = '" + storageType.getDescription() + "' ";
query += "WHERE `" + DataBaseElements.STORAGETYPE_ID + "` = '" + storageType.getId() + "';";
try {
DbConnection adapter = DbConnection.getDbConnection();
nbRows = adapter.executeUpdateQuery(query);
} catch (Exception e) {
}
return nbRows;
} else {
query = "INSERT INTO " + DataBaseElements.STORAGETYPE + " (";
//query += "`" + DataBaseElements.STORAGETYPE_ID + "`,";
query += "`" + DataBaseElements.STORAGETYPE_CODE + "`,";
query += "`" + DataBaseElements.STORAGETYPE_NAME + "`,";
query += "`" + DataBaseElements.STORAGETYPE_DESCRIPTION + "` ";
query += ") VALUES (";
//query += "'" + storageType.getId() + "',";
query += "'" + storageType.getCode() + "',";
query += "'" + storageType.getName() + "',";
query += "'" + storageType.getDescription() + "' ";
query += ")";
try {
DbConnection adapter = DbConnection.getDbConnection();
idResult = adapter.executeInsertQuery(query);
} catch (Exception e) {
}
return idResult;
}
}
@Override
public Object populateModel(ResultSet row) throws SQLException {
StorageType obj = new StorageType();
if (this.hasColumn(DataBaseElements.STORAGETYPE_ID, row)) {
obj.setId(row.getInt(DataBaseElements.STORAGETYPE_ID));
}
if (this.hasColumn(DataBaseElements.STORAGETYPE_CODE, row)) {
obj.setCode(row.getString(DataBaseElements.STORAGETYPE_CODE));
}
if (this.hasColumn(DataBaseElements.STORAGETYPE_NAME, row)) {
obj.setName(row.getString(DataBaseElements.STORAGETYPE_NAME));
}
if (this.hasColumn(DataBaseElements.STORAGETYPE_DESCRIPTION, row)) {
obj.setDescription(row.getString(DataBaseElements.STORAGETYPE_DESCRIPTION));
}
return obj;
}
@Override
Object getEmptyModel() {
return new StorageType();
}
}