# LocationInqDAOImpl.java

    package com.mycim.server.reticle.dao.impl;

    import com.mycim.framework.jdbc.JdbcTemplate;
    import com.mycim.framework.jdbc.mapper.RowMapper;
    import com.mycim.server.reticle.dao.LocationInqDAO;
    import com.mycim.valueobject.consts.DataBaseNames;
    import com.mycim.valueobject.ems.Location;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Repository;

    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;

    /**
     * location查询实现类
     * @author can.yang
     */
    @Repository
    public class LocationInqDAOImpl implements LocationInqDAO {

        @Autowired
        private JdbcTemplate jdbcTemplate;

        @Override
        public Location getLocationById(String locationId) {
            StringBuilder sql = new StringBuilder("SELECT ");
            sql.append(" LOCATION_RRN, LOCATION_ID, LOCATION_ID_MAIN, LOCATION_R, LOCATION_C, LOCATION_P,LOCATION_TYPE FROM ");
            sql.append(DataBaseNames.LOCATION);
            sql.append(" WHERE LOCATION_ID = ? ");
            List arge = new ArrayList();
            arge.add(locationId);

            return jdbcTemplate.queryForObjectWithNull(sql.toString(), arge.toArray(), new RowMapper<Location>() {
                @Override
                public Location mapRow(ResultSet rs, int rowNum) throws SQLException {
                    Location location = new Location();
                    location.setInstanceRrn(rs.getLong("LOCATION_RRN"));
                    location.setLocationIdMain(rs.getString("LOCATION_ID_MAIN"));
                    location.setLocationR(rs.getString("LOCATION_R"));
                    location.setLocationC(rs.getString("LOCATION_C"));
                    location.setLocationP(rs.getLong("LOCATION_P"));
                    location.setLocationId(rs.getString("LOCATION_ID"));
                    location.setLocationType(rs.getString("LOCATION_TYPE"));
                    return location;
                };
            });
        }

        @Override
        public Location getLocationByRrn(Long locationRrn) {
            StringBuilder sql = new StringBuilder("SELECT ");
            sql.append(" LOCATION_RRN, LOCATION_ID, LOCATION_ID_MAIN, LOCATION_R, LOCATION_C, LOCATION_P,LOCATION_TYPE FROM ");
            sql.append(DataBaseNames.LOCATION);
            sql.append(" WHERE LOCATION_RRN = ? ");
            List arge = new ArrayList();
            arge.add(locationRrn);

            return jdbcTemplate.queryForObjectWithNull(sql.toString(), arge.toArray(), new RowMapper<Location>() {
                @Override
                public Location mapRow(ResultSet rs, int rowNum) throws SQLException {
                    Location location = new Location();
                    location.setInstanceRrn(rs.getLong("LOCATION_RRN"));
                    location.setLocationIdMain(rs.getString("LOCATION_ID_MAIN"));
                    location.setLocationR(rs.getString("LOCATION_R"));
                    location.setLocationC(rs.getString("LOCATION_C"));
                    location.setLocationP(rs.getLong("LOCATION_P"));
                    location.setLocationId(rs.getString("LOCATION_ID"));
                    location.setLocationType(rs.getString("LOCATION_TYPE"));
                    return location;
                };
            });
        }
    }