2010-04-19 2 views
2

이러한 메커니즘을 만들어야합니다.H2DB를 통해 생성 된 "메모리 내"데이터베이스로 스트림을 가져 오는 방법은 무엇입니까?

  1. 메모리 내 (H2DB) 데이터베이스 만들기;
  2. 테이블을 만들고 일부 데이터를 사용하여 테이블을 채 웁니다.
  3. 해당 데이터베이스로 스트림을 가져옵니다.
  4. WebDAV 또는 다른 것을 통해 해당 스트림을 보냅니다.

"H2DB를 통해 생성 된"메모리에 "스트림을 가져 오는 방법"을 제외한 모든 내용을 알고 있습니까?


그리고 어떤 설명 :

    나는 때문에 일부 서버 제한으로 파일을 만들 수 없습니다
  • ;
  • 파일을 만들려면 해당 스트림이 필요합니다.

답변

2

org.h2.tools.Script.execute(String url, String user, String password, OutputStream out)을 사용하여 데이터베이스에서 SQL 스크립트를 만들 수 있습니다. 이는 메모리 내 데이터베이스에서도 작동합니다.

소위 'in-memory file system'을 사용할 수 있습니다. 파일을 스트림으로 가져 오려면 내부 H2 파일 API (org.h2.IOUtils.openFileInputStream)를 사용해야합니다.

+0

파일 시스템 옵션 링크를 가져 주셔서 감사합니다. 이 질문과 관련이 없지만 300MB 데이터 세트에 대해 nioMapped FileSystem이 더 빨리 주문되었습니다. – HRJ

0

H2jdbc:h2:mem:을 사용하는 In-Memory Databases을 지원합니다.

부록 : 일단 데이터베이스에 연결하면 jdbc을 사용하여 쿼리를 제출하여 원하는 데이터를 얻을 수 있습니다. DatabaseMetaData은 포괄적 인 액세스에 유용 할 수 있습니다. 스트리밍 형식은 의도 된 대상에 따라 달라집니다.

+0

예, 데이터베이스를 만드는 방법과 조작 방법을 알고 있습니다. 그러나 데이터베이스를 "덤프 (dump)"하여 스트림을 다른 앱에 보내는 방법을 모르겠습니다. –

+1

나는 위에서 정교했다. 이 문맥에서 "덤프"와 "스트림"을 명확히 할 수 있습니까? – trashgod

관련 문제