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 airport.database.dispatcher.airplane; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.stereotype.Repository; /** * * @author mcdoker */ @Repository public class RunawayDaoImpl implements RunawayDao { private final static Logger LOG = Logger.getLogger(RunawayDao.class); @Autowired private NamedParameterJdbcTemplate jdbcTemplate; private final static String SQL_QUERY_SELECT_ALL = "SELECT runaway_id, is_taken, user_id FROM runaway"; private final static String SQL_QUERY_CHECK_AVAILABLE = "SELECT is_taken FROM runaway WHERE runaway_id = :runawayId"; private final static String SQL_PARAMETER_RUNAWAY_ID = "runawayId"; private final static String SQL_QUERY_OCCUPAY = "UPDATE runaway SET is_taken = false WHERE runaway_id = :runawayId;"; private final static String SQL_QUERY_LIBERATE = "UPDATE runaway SET is_taken = true WHERE runaway_id = :runawayId;"; private final static String SQL_QUERY_LIBERATE_ALL = "UPDATE runaway SET is_taken = true"; @Override public List<Runaway> getAvailableRunaway() { List<Runaway> runawaysResult = jdbcTemplate.getJdbcOperations().query(SQL_QUERY_SELECT_ALL, new RunawayMapper()); if (LOG.isInfoEnabled()) { LOG.info("get runaways all. Result : " + runawaysResult); } return runawaysResult; } @Override public boolean checkAvailablerRunaway(int runawayId) { MapSqlParameterSource parameterSource = new MapSqlParameterSource(SQL_PARAMETER_RUNAWAY_ID, runawayId); boolean checkAvailableResult = jdbcTemplate.queryForObject(SQL_QUERY_CHECK_AVAILABLE, parameterSource, Boolean.class); if (LOG.isInfoEnabled()) { LOG.info("check available runawat. RunawayId : " + runawayId + ". Result : " + checkAvailableResult); } return checkAvailableResult; } @Override public void occupayRunaway(int runawayId) { MapSqlParameterSource parameterSource = new MapSqlParameterSource(SQL_PARAMETER_RUNAWAY_ID, runawayId); jdbcTemplate.update(SQL_QUERY_OCCUPAY, parameterSource); if (LOG.isInfoEnabled()) { LOG.info("occupay runaway. RunawayId : " + runawayId); } } @Override public void liberateRunaway(int runawayId) { MapSqlParameterSource parameterSource = new MapSqlParameterSource(SQL_PARAMETER_RUNAWAY_ID, runawayId); jdbcTemplate.update(SQL_QUERY_LIBERATE, parameterSource); if (LOG.isInfoEnabled()) { LOG.info("occupay runaway. RunawayId : " + runawayId); } } @Override public void liberateAll() { jdbcTemplate.getJdbcOperations().update(SQL_QUERY_LIBERATE_ALL); if (LOG.isInfoEnabled()) { LOG.info("occupay liberate all runaways"); } } private static class RunawayMapper implements RowMapper<Runaway> { private final static String PARAMETER_RUNAWAY_ID = "runaway_id"; private final static String PARAMETER_IS_TAKEN = "is_taken"; @Override public Runaway mapRow(ResultSet rs, int rowNum) throws SQLException { Runaway runawayResult = new Runaway(); runawayResult.setId(rs.getInt(PARAMETER_RUNAWAY_ID)); runawayResult.setIsTaken(rs.getBoolean(PARAMETER_IS_TAKEN)); return runawayResult; } } }