AcquistoDAO.java
package model.acquisto;
import model.DAOInterface;
import model.DBConnection;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
public class AcquistoDAO implements DAOInterface<AcquistoBean, Integer> {
private static final String TABLE_NAME = "Acquisto";
private static DataSource ds;
public AcquistoDAO() {
ds = DBConnection.getDataSource();
}
public AcquistoDAO(DataSource ds) {
AcquistoDAO.ds = ds;
}
@Override
public AcquistoBean doRetrieveByKey(Integer code) throws SQLException {
AcquistoBean acquistoBean = new AcquistoBean();
String query = "SELECT * FROM " + TABLE_NAME + " WHERE IDAcquisto = ?";
try (Connection connection = ds.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(query)) {
preparedStatement.setInt(1, code);
ResultSet resultSet = preparedStatement.executeQuery();
setAcquisto(resultSet, acquistoBean);
}
return acquistoBean;
}
public Collection<AcquistoBean> doRetrieveByOrdine(Integer codeOrdini) throws SQLException {
Collection<AcquistoBean> acquisti = new ArrayList<>();
String query = "SELECT * FROM " + TABLE_NAME + " WHERE IDOrdine = ?";
try (Connection connection = ds.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(query)) {
preparedStatement.setInt(1, codeOrdini);
ResultSet resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
AcquistoBean acquistoBean = new AcquistoBean();
setAcquisto(resultSet, acquistoBean);
acquisti.add(acquistoBean);
}
}
return acquisti;
}
@Override
public Collection<AcquistoBean> doRetriveAll(String order) {
return new ArrayList<>();
}
@Override
public void doSave(AcquistoBean acquistoBean) throws SQLException {
String query = "INSERT INTO " + TABLE_NAME + " (IDOrdine, IDMaglietta, quantita, immagine, prezzoAq, ivaAq, taglia) "+
"VALUES(?, ?, ?, ?, ?, ?, ?)";
try (Connection connection = ds.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(query)) {
setAcquistoStatement(acquistoBean, preparedStatement);
preparedStatement.executeUpdate();
}
}
@Override
public void doUpdate(AcquistoBean product) {
// Update operation is not supported for Acquisto entities
}
@Override
public boolean doDelete(Integer code) {
return false;
}
private void setAcquisto(ResultSet resultSet, AcquistoBean acquistoBean) throws SQLException {
acquistoBean.setIDAcquisto(resultSet.getInt("IDAcquisto"));
acquistoBean.setIDOrdine(resultSet.getInt("IDOrdine"));
acquistoBean.setIDMaglietta(resultSet.getInt("IDMaglietta"));
acquistoBean.setQuantita(resultSet.getInt("quantita"));
acquistoBean.setImmagine(resultSet.getString("immagine"));
acquistoBean.setPrezzoAq(resultSet.getFloat("prezzoAq"));
acquistoBean.setIvaAq(resultSet.getInt("ivaAq"));
acquistoBean.setTaglia(resultSet.getString("taglia"));
}
private void setAcquistoStatement(AcquistoBean acquistoBean, PreparedStatement preparedStatement) throws SQLException {
preparedStatement.setInt(1, acquistoBean.getIDOrdine());
preparedStatement.setInt(2, acquistoBean.getIDMaglietta());
preparedStatement.setInt(3, acquistoBean.getQuantita());
preparedStatement.setString(4, acquistoBean.getImmagine());
preparedStatement.setFloat(5, acquistoBean.getPrezzoAq());
preparedStatement.setInt(6, acquistoBean.getIvaAq());
preparedStatement.setString(7, acquistoBean.getTaglia());
}
}