package org.pegadi.server.publication; import org.pegadi.model.Disp; import org.pegadi.server.DisposalServer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; import javax.sql.DataSource; import java.sql.ResultSet; import java.sql.SQLException; public class DisposalServerImpl implements DisposalServer{ private JdbcTemplate template; private DisposalRowMapper mapper; private final Logger log = LoggerFactory.getLogger(getClass()); public DisposalServerImpl() { mapper = new DisposalRowMapper(); } public void setDataSource(DataSource dataSource) { template = new JdbcTemplate(dataSource); } public Disp getDisposalByID(int ID) { return template.queryForObject("SELECT * FROM disp WHERE id=?", mapper, ID); } public Disp getDisposalByPublicationID(int publicationID) { try { return template.queryForObject("SELECT * FROM disp WHERE publicationid=?", mapper, publicationID); } catch (EmptyResultDataAccessException ee) { return null; } } public Disp createNewDisposal(int publicationID) { template.update("INSERT INTO disp (publicationid) VALUES(?)", publicationID); return getDisposalByPublicationID(publicationID); } private class DisposalRowMapper implements ParameterizedRowMapper<Disp> { public Disp mapRow(ResultSet rs, int rowNum) throws SQLException { Disp disp = new Disp(); disp.setId(rs.getInt("id")); disp.setPublicationId(rs.getInt("publicationid")); return disp; } } }