2013-05-23 6 views
1

웹 기반 애플리케이션의 일부 데이터를 Mysql 데이터베이스에 삽입하려면 Excel 파일을 처리해야한다. Spring MVC를 아키텍처로 사용하고 있습니다.Spring MVC에서 컨트롤러 액션 사이의 파일 데이터 전달

문제는 사용자가 실제 삽입 전에 삽입 할 데이터를 검토 할 수있는 중간 단계를 포함해야한다는 것입니다. 따라서 일반적인 프로세스는 사용자가 파일을 업로드 한 다음 응용 프로그램이 처리 된 정보가있는 다른 웹 페이지와 실제로이 모든 정보를 가져 와서 내 데이터베이스에 저장하는 "변경 적용"버튼을 보여줍니다.

처음에는 3 단계 (업로드 한 첫 번째 페이지, 중간 단계 페이지 및 최종 컨트롤러 작업)에서 파일의 데이터를 전파하기 위해 숨겨진 페이지를 사용하는 양식을 사용했습니다. 필드를 사용하여 파일을 두 번 처리하지 않아도됩니다 (중간 단계의 결과 표시 용 및 실제 데이터 저장 용 중 하나). 문제는 Excel 파일에 너무 많은 정보가있어 중간 단계 페이지가 과부하되고 렌더링하는 데 너무 오래 걸립니다 (매개 변수를 가져올 때 컨트롤러에서 처리하는 데 너무 오래 걸립니다).

그렇다면 데이터베이스간에 임시 파일이나 임시 관계를 사용하여 단계간에 데이터를 저장하는 것이 좋습니다. 컨트롤러 작업간에 이러한 데이터를 전파하는 다른 방법이 있습니까? 나는 쓰레기 데이터를 남겨 두거나 파일을 다시 처리하는 것을 원하지 않을 것이다. (꽤 오랜 시간이 걸리기 때문에) 이걸위한 최선의 방법은 무엇일까?

답변

1

처리가 너무 오래 걸리지 않으면 임시 테이블로 이동합니다. 먼저 최종 테이블 에서처럼 시퀀스를 사용할 수 있으며 사용자가 두 번째 화면에서 확인을 클릭하면 "select into select from"문을 발행해야합니다. 이것은 구현할 수있는 간단한 솔루션이 될 것이라고 말하고 모든 처리가 완료됩니다.

이 큰 작업 전에 처리 부분이 "거대"하고 사용자가 특정 작업을 확인할 수있는 경우 솔루션은 처리를 두 부분으로 나누어 첫 번째 결과를 임시 파일에 저장하고 하나. 사용자가 ok를 클릭하면 과도한 작업을 수행하는 비동기 작업을 시작할 수 있으며 작업이 완료된 후 파일을 정리합니다.

관련 문제