Skip to content
Snippets Groups Projects
TrailsRepositoryJDBC.java 1.28 KiB
Newer Older
//Implements the trails repository using JDBC
package Team5.SmartTowns.data;
Rhys Nute's avatar
Rhys Nute committed

import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
Gabriel Copat's avatar
Gabriel Copat committed
public class TrailsRepositoryJDBC implements TrailsRepository {
Rhys Nute's avatar
Rhys Nute committed
    private JdbcTemplate jdbc;
Gabriel Copat's avatar
Gabriel Copat committed
    private RowMapper<Trail> trailMapper;
        public TrailsRepositoryJDBC(JdbcTemplate aJdbc){
Rhys Nute's avatar
Rhys Nute committed
        this.jdbc = aJdbc;
        settrailsMapper();
    }
    private void settrailsMapper(){
Gabriel Copat's avatar
Gabriel Copat committed
        trailMapper = (rs, i) -> new Trail(
                rs.getString("trailNumber")
Rhys Nute's avatar
Rhys Nute committed
        );
    }
Gabriel Copat's avatar
Gabriel Copat committed
    public List<Trail> getAllTrails(){
Rhys Nute's avatar
Rhys Nute committed
        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 int getTrailIDFromTrailName(String trailsName){
        return jdbc.queryForObject("SELECT trailID FROM trails WHERE trailName=?", Integer.class, trailsName);
    }

Rhys Nute's avatar
Rhys Nute committed
}