2013-07-21 2 views
2

Netbeans에 Derby Embeded DB를 만들었습니다. 이제 netbeans에 의해 DB가 배치 된 폴더를 찾을 수 없습니다. 내 연결 URL은 jdbc:derby:Inventory;create=true;입니다. netbeans는 기본적으로 DB 파일을 어디에 배치합니까? 우분투 12.04를 사용하고 있습니다.NetBeans가 Derby Embeded DB를 만드는 위치

답변

4

기본 리눅스 넷빈즈 데이터베이스 폴더 : 폴더가 Inventory

넷빈즈 7.2.1이

/home/username/.netbeans-derby/ 

:

/home/username/.netbeans/7.2.1/derby/ 

당신과 함께 검색 할 수 있습니다

sudo find/-name Inventory -print 

속성 :

바로 Java DB가 데이터베이스 만들기 선택을 클릭합니다.

enter image description here

+0

고마워. 그것은 .netbeans-derby가 아니고'/ home/tariq/.netbeans/7.2.1/derby/Inventory'에 있습니다.이 디렉토리에 그것을 게시하십시오. 나는 이것을 답으로 표시 할 것입니다. – Tariq

1

데이터베이스 이름 "Inventory"는 상대 이름이므로 Derby 홈 디렉토리의 "Inventory"서브 디렉토리에 있습니다. Derby 홈 디렉토리의 기본값은 프로그램이 실행될 때 현재 작업 디렉토리입니다. 따라서 프로그램이 실행될 때 현재 작업 디렉토리가 어디에 있는지 파악해야합니다.

그러나 이것은 어려운 일입니다. 대신 연결 이름을 변경하여

jdbc:derby:/home/tariq/myDerbyDBs/Inventory 

과 같이 이름을 지정하면 데이터베이스를 쉽게 찾을 수 있습니다. (먼저 '/ 홈/타리크/myDerbyDBs'디렉토리를 만들 수 있는지 확인합니다.)

+0

현재 작업 디렉토리는 프로젝트 넷빈즈 실행 디렉토리를 의미? 내 JRE가있는 곳? 또는 Derby jre 파일이있는 위치? 모든 경우에 내 DB를 찾을 수 없습니다. – Tariq

+0

나는 절대 URL이 좋지 않다고 생각한다. 이렇게하면 응용 프로그램이 _ 특정 위치의 데이터베이스에 연결됩니다 _. 예를 들어, 다른 누군가가 소스 코드를 복제하고 사용자 이름이 'tariq'가 아닌 경우 어떻게해야합니까? 예를 들어, 단순한 사람이 응용 프로그램을 실행하려고하고 동일한 사용자 이름을 갖고 있지 않은 경우 어떻게해야합니까? 테스트/개발 중에도 이것이 좋지 않은 관행입니다. 정답은 임베디드 Derby에서 기본적으로 데이터베이스를 저장하는 위치를 이해하는 것입니다. http://db.apache.org/derby/docs/10.14/devguide/cdevdvlp846369.html – Kerry

+0

OK, @Kerry, 좋은 생각입니다. 포인트. 현재 작업 디렉토리가 어디에 있는지 알면 상대 파일 경로도 정상입니다. 원래의 질문은 현재 작업 디렉토리가 무엇인지에 대해 혼란스러워했던 사용자를 포함하고, 데이터베이스가 어디로 갔는지 알아 내기 위해'find' 명령을 실행해야했습니다. 그건 그렇고, 당신이 문서를 읽게되어 기쁩니다! –

관련 문제