Tôi đang tạo cơ sở dữ liệu H2 trong các bài kiểm tra đơn vị của mình. Cơ sở dữ liệu sử dụng các thuộc tính sau:Không thể duyệt tệp cơ sở dữ liệu H2?
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="org.h2.Driver"/>
<property name="url" value="jdbc:h2:file:target/db/testdb"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
</bean>
Tôi đang sử dụng phiên bản 1.3.166 của tệp com.h2database.h2
jar.
Khi tôi chạy thử nghiệm của mình, tôi thấy cơ sở dữ liệu được tạo trong thư mục target/db
và có một tệp testdb.h2.db
. Các thử nghiệm của tôi chạy và tải dữ liệu từ cơ sở dữ liệu. Tôi có thể mở tệp target/db/testdb.h2.db
và xem các câu lệnh SQL mà tôi đã sử dụng để tạo cơ sở dữ liệu.
Tuy nhiên, khi tôi cố tải tệp target/db/testsb.h2.db
vào công cụ duyệt cơ sở dữ liệu như DBVisualizer, tôi không thể thấy bất kỳ bảng hoặc dữ liệu nào. Đối với DBVisualizer tôi chỉ định chế độ H2 (Embedded).
Tôi cũng đã thử bảng điều khiển H2 nhưng lệnh show tables
trả về tập hợp kết quả trống.
Tôi không thể nhìn thấy những gì tôi đang làm sai: tệp cơ sở dữ liệu tồn tại, các kiểm tra chạy đúng cách, nhưng tôi không thể mở tệp này trong trình duyệt cơ sở dữ liệu.
Mọi đề xuất?
Thực ra vấn đề là cách tôi đã chỉ định tệp trong DBVisualizer. Nó yêu cầu một tập tin cơ sở dữ liệu, và mở một hộp thoại chọn tập tin, và tôi tự nhiên nhấn đúp vào tập tin 'target/db/testdb.h2.db'. Nhưng phương pháp đúng là xóa phần mở rộng '.h2.db'. Thiết kế giao diện người dùng xấu IMHO. –
Tôi nghĩ rằng trong phiên bản thị trưởng kế tiếp của H2 (2.0 có thể) sẽ không có hậu tố tên tệp cứng. –
@JohnQCitizen Bạn giành được tất cả Internet của tôi trong một tuần! Đây là vấn đề. Tôi đã sử dụng di chuyển cơ sở dữ liệu và không thể tìm ra lý do tại sao các bảng không được tạo. Hóa ra là loại bỏ .h2.db đã làm được điều đó. Sử dụng ui không thành công!Và cảm ơn vì giải pháp! – Maik