안녕하세요 ~ 오늘은 미세먼지에 대해서 설명해드리겠습니다. 백 부분에 대해서 좀 더 설명해드릴 예정입니다 ~ ლ(╹◡╹ლ)

 

제일 먼저 테이블에 있는 내용과 동일하게 작성한 

 

AirqualityDTO 먼저 보여드리겠습니다.

package com.project.airquality;

public class AirqualityDTO {
	private String stationname; //측정소 이름
	private String datatime;	//데이터 시간
	private String pm10value;		//미세먼지
	private String pm25value;		//초미세먼지
	
	public AirqualityDTO() {
		super();
	}

	public AirqualityDTO(String stationname, String datatime, String pm10value, String pm25value) {
		super();
		this.stationname = stationname;
		this.datatime = datatime;
		this.pm10value = pm10value;
		this.pm25value = pm25value;
	}

	@Override
	public String toString() {
		return "AirqualityDTO [stationname=" + stationname + ", datatime=" + datatime + ", pm10value=" + pm10value
				+ ", pm25value=" + pm25value + "]";
	}

	public String getStationname() {
		return stationname;
	}

	public void setStationname(String stationname) {
		this.stationname = stationname;
	}

	public String getDatatime() {
		return datatime;
	}

	public void setDatatime(String datatime) {
		this.datatime = datatime;
	}

	public String getPm10value() {
		return pm10value;
	}

	public void setPm10value(String pm10value) {
		this.pm10value = pm10value;
	}

	public String getPm25value() {
		return pm25value;
	}

	public void setPm25value(String pm25value) {
		this.pm25value = pm25value;
	}
	
	
	
}

 

AirqualityController 입니다.

package com.project.airquality;

import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.project.station.StationDTO;
import com.project.station.StationService;
import com.project.weather.WeatherUtil;

@Controller
public class AirqualityController {
	AirqualityAPIPull pull;
	StationService stationservice;
	AirqualityService airqualityService;
	
	@Autowired
	public AirqualityController(AirqualityAPIPull pull, StationService stationservice,
			AirqualityService airqualityService) {
		super();
		this.pull = pull;
		this.stationservice = stationservice;
		this.airqualityService = airqualityService;
	}
	
	@RequestMapping("/airquality/getDataDust.do")
	public String WeathergetData(String stationId, String path,Model model) throws IOException{
		String result = pull.GetAPIDataDust();
		airqualityService.delete();
		List<AirqualityDTO> dustList = pull.DataSaveDust(result);
		for (int i = 0; i < dustList.size(); i++) {
			airqualityService.insert(dustList.get(i));
		}
		return "redirect:/monitoring/main?stationId="+stationId;
	}
	
	@RequestMapping("/airquality/getDataDustWeather.do")
	public String WeathergetData2(String stationId, String path,Model model) throws IOException{
		String result = pull.GetAPIDataDust();
		airqualityService.delete();
		List<AirqualityDTO> dustList = pull.DataSaveDust(result);
		for (int i = 0; i < dustList.size(); i++) {
			airqualityService.insert(dustList.get(i));
		}
		return "redirect:/weather/getlistDust.do?stationId="+stationId;
	}
	
}

 

AirqualityDAO입니다 ~

package com.project.airquality;

import java.util.List;

import com.project.station.StationDTO;

public interface AirqualityDAO {
	List<AirqualityDTO> readList(String statilonname);
	int insert(AirqualityDTO dto);
	int delete();
	AirqualityDTO read(String stationname);
	List<AirqualityDTO> allReadList();
}

 

AirqualityDAOImpl 입니다 ~

package com.project.airquality;

import java.util.HashMap;
import java.util.List;

import org.apache.ibatis.session.SqlSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

@Repository
public class AirqualityDAOImpl implements AirqualityDAO{
	SqlSession sqlSession;
	
	@Autowired
	public AirqualityDAOImpl(SqlSession sqlSession) {
		super();
		this.sqlSession = sqlSession;
	}
	
	@Override
	public List<AirqualityDTO> readList(String stationname) {
		return sqlSession.selectList("com.project.airquality.select", stationname);
	}

	@Override
	public int insert(AirqualityDTO dto) {
		return sqlSession.insert("com.project.airquality.insert", dto);
	}

	@Override
	public int delete() {
		return sqlSession.delete("com.project.airquality.delete");
	}

	@Override
	public AirqualityDTO read(String stationname) {
		return sqlSession.selectOne("com.project.airquality.read", stationname);
	}

	@Override
	public List<AirqualityDTO> allReadList() {
		return sqlSession.selectList("com.project.airquality.allreadlist");
	}

}

 

AirqualityService 입니다.

package com.project.airquality;

import java.util.List;

import com.project.station.StationDTO;

public interface AirqualityService {
	List<AirqualityDTO> airqualityList(String stationname);
	int insert(AirqualityDTO dto);
	int delete();
	AirqualityDTO read(StationDTO station);
	List<AirqualityDTO> allReadList();
}

 

AirqualityServiceImpl 입니다.

package com.project.airquality;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.project.station.StationDTO;

@Service
public class AirqualityServiceImpl implements AirqualityService {
	AirqualityDAO dao;

	@Autowired
	public AirqualityServiceImpl(AirqualityDAO dao) {
		super();
		this.dao = dao;
	}

	@Override
	public int insert(AirqualityDTO dto) {
		return dao.insert(dto);
	}

	@Override
	public List<AirqualityDTO> airqualityList(String stationname) {
		return dao.readList(stationname);
	}

	@Override
	public int delete() {
		return dao.delete();
	}

	@Override
	public AirqualityDTO read(StationDTO station) {
		String stationname = "";
		double lon = Double.parseDouble(station.getMap_longtude());
		double lat = Double.parseDouble(station.getMap_latitude());
		String mapaddr = station.getAddr_detail().substring(0,3);
		if(mapaddr.equals("한림읍")) { //주소에서 한번 거름
			stationname = "한림읍";
		}else if(mapaddr.equals("성산읍")){
			stationname = "성산읍";
		}else if(mapaddr.equals("대정읍")){
			stationname = "대정읍";
		}else if(mapaddr.equals("애월읍")){
			stationname = "애월읍";
		}else if(mapaddr.equals("남원읍")){
			stationname = "남원읍";
		}else if(mapaddr.equals("조천읍")){
			stationname = "조천읍";
		}else { //나머지는 좌표로 대략적으로
			if(lon<=126.22) {
				if(lat<33.28) {
					stationname = "대정읍";
				}else {
					stationname = "고산리";
				}
			}else if(lon<=126.27) {
				if(lat<=33.28) {
					stationname = "대정읍";
				}else if(lat<=33.38) {
					stationname = "고산리";
				}else {
					stationname = "한림읍";
				}
			}else if(lat<=33.33) {
				if(lon<=126.37) {
					stationname = "대정읍";
				}else if(lon<=126.54) {
					stationname = "강정동";
				}else if(lon<=126.67) {
					stationname = "동홍동";
				}else {
					stationname = "남원읍";
				}
			}else if(lat>33.33) {
				if(lon<=126.30) {
					stationname = "한림읍";
				}else if(lat<=33.38 && lon<126.37) {
					stationname = "한림읍";
				}else if(lat>33.38 && lon<126.37) {
					stationname = "애월읍";
				}else if(lon<126.42) {
					stationname = "애월읍";
				}else if(lon<126.49) {
					stationname = "노형로";
				}else if(lon<126.53) {
					stationname = "연동";
				}else if(lon<126.55) {
					stationname = "이도동";
				}else if(lon<126.62) {
					stationname = "화북동";
				}else if(lon<126.82) {
					stationname = "조천읍";
				}else {
					stationname = "성산읍";
				}
			}
		}
		return dao.read(stationname);
	}

	@Override
	public List<AirqualityDTO> allReadList() {
		System.out.println("에어퀄리티서비스임플 실행되나?????????????????????????");
		return dao.allReadList();
	}
	

}

 

airquality.xml 메퍼입니다 ~

새로 받아올 경우 기존에 있는 데이터를 삭제하고 새로운 데이터를 받아오도록 하였습니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.project.airquality">
	<insert id="insert" parameterType="airquality">
		insert into AIRQUALITY_TB values(
		#{stationname}, #{datatime}, #{pm10value}, #{pm25value})
	</insert>
	<delete id="delete">
		delete from AIRQUALITY_TB 
	</delete>
	<select id="read" parameterType="String" resultType="airquality">
		select * from AIRQUALITY_TB where stationname = #{stationname}
	</select>
	<select id="allreadlist" resultType="airquality">
		select * from AIRQUALITY_TB
	</select>
</mapper>

+ Recent posts