package accounts.internal; import java.util.List; import java.util.Map; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; import accounts.ReportManager; @Repository public class JdbcReportManager implements ReportManager{ private JdbcTemplate jdbcTemplate; @Autowired public JdbcReportManager(DataSource dataSource){ this.jdbcTemplate = new JdbcTemplate(dataSource); } public List<Map<String, Object>> getAllAccounts(){ StringBuilder query = new StringBuilder(); query.append(" select a.number as numeroCuenta,"); query.append(" a.name as titular,"); query.append(" b.name as beneficiario,"); query.append(" b.allocation_percentage as beneficio,"); query.append(" b.savings as acumulado"); query.append(" from t_account a join t_account_beneficiary b "); query.append(" on b.account_id = a.id"); List<Map<String, Object>> accounts = jdbcTemplate.queryForList(query.toString()); return accounts; } }