본문 바로가기
PROJECT

[JSP] Datetime-local을 DB에 넣기

by 로햐 2022. 1. 29.

JSP에서 받아온 datatime-local은 2022-01-01T15:33 이런 형태.

 

:::구현하고 싶은 기능:::

영화 상영 시각을 여러개 등록하면 하단 테이블에 datatime-local 순으로 정렬하여 임시저장했다가,

'영화 등록' 시에 해당 값들을 넘기기

 

:::내가 한 방법:::

- JQuery상에서의 정렬 처리

$(function(){
	var schedules =[]; //객체배열 활용
	$('#addSchedule').click(function(){
    	var schOne = {
              'auditoriumNo': $('#theater').val()
            , 'auditoriumName': $('.auditorium:selected').text()
            , 'schedule': $('#schedule').val()
            };
        schedules.push(schOne);
        
        //객체배열을 schedule 속성으로 오름차순 정렬
        schedules.sort(function(a, b) {
			var c = new Date(a.schedule);
			var d = new Date(b.schedule);
			return c-d;
		});
        
        //해당 값을 테이블에 저장
        var result='';
		for(var i in schedules){
			result+='<tr><td>'+schedules[i].auditoriumNo+'</td><td>'
				+scheduls[i].auditoriumName+'</td><td>'+scheduls[i].schedule+'</td>'
				+'<td><button type="button" class="removeSch">X</button></td></tr>';
		}
		$('#schedules tbody').html(result);
		$('#schedule').val('');
	})
    
    //등록버튼에 return submitMovie();로 onclick 부여
    function submitMovie(){
    	var scheduleRows = $('#schedules>tbody').children().length;
    	var $scheduleRows = $('#schedules>tbody').children()
    	var bundle = $scheduleRows.eq(0).children().eq(0).text()
        	+'/'+$scheduleRows.eq(0).children().eq(2).text();
    	for(var i = 1; i < schduleRows ; i++){
    		bundle += ','+$scheduleRows.eq(i).children().eq(0).text()
            	+'/'+$scheduleRows.eq(i).children().eq(2).text();
    	}
        $('input[name=schedules]').val(bundle);
        return true;
    }
})

- Servlet 상에서 값 처리

ArrayList<Schedule> schedules = new ArrayList<>();
String schParameter = multiRequest.getParameter("schedules");
String[] schRows = schParameter.split(",");

for(String s : schRows) {
	String[] schBundle = s.split("/");
	Schedule sch = new Schedule();
	sch.setAuditoriumNo(Integer.parseInt(schBundle[0]));
    
	//int로 TO_DATE하기위한 작업
	String runsch = schBundle[1].replace("-","").replace("T","").replace(":", "");
	sch.setRunSch(runsch);

	schedules.add(sch);
}

영화 등록 파트 진짜 오늘 혼신의 힘을 다해서 짰는데 ㅋㅋ 진짜 기능 짱많음

이런식으로 스케줄 등록, 삭제도 하고,

배우/역할 목록도 짜서 테이블 보여주면서 순서 조정도 버튼으로 할 수 있게 짜고,

영화 장르도 버튼 누르면 불 들어오고 해당되는 값들 넘기고,

포스터/스틸컷 등록도 하고 등등...

될 수 있는 한 기본 정보는 불러와서 선택을 하는 방향으로, 사용자의 편의성을 증대시키기~~

 

중간에 Date형을 String 형으로 바꿔서 작업했는데 갑자기 안나던 오류가 계속 났었다.

Java Console 창에서 "Schedule의 주소Ljava.sql.Date;" 이런 식으로 오류가 나는데, 오만군데 찾아보고 서버 restart를 수십번해도 해결이 안됐었다. 혹시나 혹시나 싶어.. 컴퓨터 껐다 켰는데 됐음... 너무 허무했다..........

'PROJECT' 카테고리의 다른 글

[MyBatis] PersistenceException 해결방법  (0) 2022.03.16
오늘의 문제점  (0) 2022.03.15
내 첫 프로젝트 리뷰!!  (0) 2022.02.03
[GITHUB] 깃허브 revert  (0) 2022.02.01
[JDBC] JDBC 상에서 해당 값을 null 처리  (0) 2022.01.30