기록용

하겅 ·2025년 10월 25일

Capstone

목록 보기
14/14

DB

Insert

Entity

busInfo


public class Bus {
	@Id
	@Column(name="bus_num", length=50) // varchar(50) pk
	private String busNum;
	
	@Column(name="bus_root", length=50) // varchar(50)
	private String busRoot;
	
}

gps

public class Gps {
	 	@Column(name = "bus_num", length = 50) 
	    private String busNum;

	    @Column(name = "lan")
	    private Character lan;

	    @Column(name = "lng") 
	    private Character lng;
	    
	    @Id
	    @Column(name="time")
	    private LocalDateTime time;
}

sensor


@Table(name = "sensor") // 테이블명.. sensor
public class Sensor {
	
    @Column(name = "bus_num", length = 50) 
    private String busNum;

    @Column(name = "count")
    private Integer count;

    @Column(name = "status") 
    private Byte status;
    
    @Id
    @Column(name="time")
    private LocalDateTime time;
}

Repository

busInfo


@Repository
public interface BusRepo extends JpaRepository<Bus, Integer>{
}

gps


public interface GpsRepository extends JpaRepository<Gps, LocalDateTime> {
	Optional<Sensor> findTopByBusNumOrderByTimeDesc(LocalDateTime time);

	
}

sensor

public interface SensorRepository extends JpaRepository<Sensor, LocalDateTime> {
	Optional<Sensor> findTopByBusNumOrderByTimeDesc(LocalDateTime time);
	
}

Service


@Service
public class InsertService {
	@Autowired
	private SensorRepository sensorRepository;
	private GpsRepository gpsRepository;
	private BusRepo busRepo;
	
	public void addSensor(String busNum, int count, Byte status, LocalDateTime time) {
		
		// 도착했는지 판별 후에..
		
		Sensor sensor = new Sensor();
		sensor.setBusNum(busNum); // ex
		sensor.setCount(count);
		sensor.setStatus(status != null ? status : (byte)1);
		sensor.setTime(time != null ? time : LocalDateTime.now());
		
		//sensorRepository.save(sensor);
		
	}
}



오늘 요약

  • 스키마 변경 (하나의 테이블 > 세 개의 테이블로)
  • 변경된 스키마에 맞춰 엔티티 추가 및 수정 (하나의 엔티티 > 세 개의 엔티티 파일)
  • 변경된 엔티티에 따른 리포지토리 추가 및 수정 (위와 같음)
  • 데이터 insert를 위한 서비스 작성 (덜 완성됨)

앞으로 해야 할 일

  • 조건(도착 유무)에 따른 데이터 입력 확인 (test: 코드 작성 위치로..) [InsertService.java]
  • 조건.. 도착 유무 코드도 수정해야 한다 정확한지 테스트도 필요한데 현재로서는 못 하고 있는 중.. 날 잡고 해야 하는디
  • count 저장 타이밍을 생각해야 함
profile
건강합시다

0개의 댓글