//Implements the trails repository using JDBC package Team5.SmartTowns.data; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; import java.util.List; @Repository public class TrailsRepositoryJDBC implements TrailsRepository { private JdbcTemplate jdbc; private RowMapper<Trail> trailMapper; public TrailsRepositoryJDBC(JdbcTemplate aJdbc){ this.jdbc = aJdbc; settrailsMapper(); } private void settrailsMapper(){ trailMapper = (rs, i) -> new Trail( rs.getLong("trailID"), rs.getString("trailName"), rs.getString("trailNumber") ); } public List<Trail> getAllTrails(){ String sql= "SELECT * FROM trails"; return jdbc.query(sql, trailMapper); } @Override public String getTrailNameWithID(String trailsID){ String resultName = jdbc.queryForObject( "SELECT trailName FROM trails WHERE trailID=?", String.class, trailsID); return resultName; } @Override public List<Trail> getAllTrailsFromCity(String cityName) { String sql = "SELECT * FROM trails WHERE city = ?"; return jdbc.query(sql, trailMapper, cityName); } @Override public int getTrailIDFromTrailName(String trailsName){ return jdbc.queryForObject("SELECT trailID FROM trails WHERE trailName=?", Integer.class, trailsName); } }