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.services.users; import airport.database.dispatcher.airplane.FlightDaoImpl; import java.sql.ResultSet; import java.sql.SQLException; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import org.springframework.jdbc.core.namedparam.SqlParameterSource; import org.springframework.stereotype.Repository; /** * * @author mcdoker */ @Repository public class DispatcherDaoImpl implements DispatcherDaoRead { private final static Logger LOG = Logger.getLogger(DispatcherDaoImpl.class); @Autowired private NamedParameterJdbcTemplate jdbcTemplate; private final static String SQL_QUERY_GET_DISPATCHER = "SELECT name, surname, rank " + "FROM dispatcher " + "WHERE user_id = (SELECT u.user_id FROM users u WHERE u.login = :login)"; private final static String SQL_QUERY_EXIST_DISPATCHER = "SELECT COUNT(*)" + "FROM dispatcher " + "WHERE user_id = (SELECT u.user_id FROM users u WHERE u.login = :login)"; public void addDispathcer(User user, Dispatcher dispatcher) { } @Override public Dispatcher getDispatcher(User user) { SqlParameterSource parameterUser = new BeanPropertySqlParameterSource(user); Dispatcher dispatcherResult; try { dispatcherResult = jdbcTemplate.queryForObject(SQL_QUERY_GET_DISPATCHER, parameterUser, new DispatcherMapper()); } catch (EmptyResultDataAccessException e) { LOG.info("such dispatcher isn't present. User : " + user); return new Dispatcher(); } LOG.info("such dispatcher is present. User : " + user + ". Dispatcher : " + dispatcherResult); return dispatcherResult; } @Override public boolean isThere(User user) { SqlParameterSource parameterUser = new BeanPropertySqlParameterSource(user); int countDispatcher = jdbcTemplate.queryForObject(SQL_QUERY_EXIST_DISPATCHER, parameterUser, Integer.class); boolean result = countDispatcher > 0; if (LOG.isInfoEnabled()) { if (result) { LOG.info("User is exist. User : " + user); } else { LOG.info("User isn't exist. User : " + user); } } return result; } private static final class DispatcherMapper implements RowMapper<Dispatcher> { private final static String ARGUMENT_NAME_NAME = "name"; private final static String ARGUMENT_NAME_SURNAME = "surname"; private final static String ARGUMENT_NAME_RANK = "rank"; @Override public Dispatcher mapRow(ResultSet rs, int i) throws SQLException { Dispatcher dispatcherResult = new Dispatcher(); dispatcherResult.setName(rs.getString(ARGUMENT_NAME_NAME)); dispatcherResult.setRank(rs.getString(ARGUMENT_NAME_RANK)); dispatcherResult.setSurname(rs.getString(ARGUMENT_NAME_SURNAME)); return dispatcherResult; } } }