Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.ignite.dao; import com.ignite.domain.Account; import com.ignite.domain.Client; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import javax.sql.DataSource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.simple.ParameterizedRowMapper; import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport; import org.springframework.security.access.prepost.PreAuthorize; /** * * @author maslo */ public class AccountDao extends SimpleJdbcDaoSupport { @Autowired DataSource dataSource; protected final Log logger = LogFactory.getLog(getClass()); public List<Account> getAccountsForClient(Client client) { logger.info("Getting clients"); JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); List<Account> products = jdbcTemplate.query( "select id, client, balance from account where client=" + "'" + client.getLogin() + "'", new AccountMapper()); return products; } @PreAuthorize("hasRole('ROLE_TELLER')") public void saveAccount(Account account) { logger.info("Saving account: " + account.getOwner().getLogin()); int count = getSimpleJdbcTemplate().update( "insert into account (client,balance) values (:client, :balance)", new MapSqlParameterSource().addValue("client", account.getOwner().getLogin()).addValue("balance", account.getBalance())); logger.info("Rows affected: " + count); } private static class AccountMapper implements ParameterizedRowMapper<Account> { @Override public Account mapRow(ResultSet rs, int rowNum) throws SQLException { Account account = new Account(); account.setOwner(null); account.setBalance(rs.getDouble("balance")); account.setPid(rs.getString("id")); return account; } } }