2012-05-20 12 views

Trả lời

67

Bạn có thể sử dụng RUNSCRIPT SQL statement:

RUNSCRIPT FROM 'test.sql' 

hoặc bạn có thể sử dụng RunScript standalone/command line tool:

java -cp h2*.jar org.h2.tools.RunScript -url jdbc:h2:~/test -script test.sql 

Bạn cũng có thể sử dụng công cụ lệnh RunScript trong một ứng dụng:

RunScript.execute(conn, new FileReader("test.sql")); 
+0

Có mẹo nào để sử dụng ví dụ đầu tiên của bạn không? Tôi có một 'bootstrap.sql' không có gì ngoài' RUNSCRIPT FROM 'test.sql'' và test.sql của tôi là một anh chị em với tệp tin bootstrap. Nếu tôi chạy 'jdbc: h2: mem: etsnom; INIT = RUNSCRIPT TỪ 'C:/workspace/bootstrap.sql'', tôi nhận được' FileNotFoundException' – Snekse

+0

Nếu chúng ta sử dụng phương pháp thứ 2 của Thomas để tạo cơ sở dữ liệu, thì tên người dùng và mật khẩu mặc định sẽ được đặt là "" [chuỗi rỗng]. Tuy nhiên, nó luôn luôn rất quan trọng để thiết lập tên người dùng và mật khẩu để truy cập cơ sở dữ liệu, và làm như vậy trong trường hợp cơ sở dữ liệu H2, chúng ta có thể chạy lệnh dưới đây, java -cp h2 *.jar org.h2.tools.RunScript -url jdbc: h2: ~/test -user sa -password sa -script test.sql –

1

Ngày OSX (điều này nên không thực sự quan trọng) với câu 1.4.192 với các lệnh sau, bất kể tôi đã làm gì tôi không thể thấy bất kỳ kết quả nào:

java -cp h2*.jar org.h2.tools.RunScript -url "jdbc:h2:file:~/testdb" -user someusername -password somepass -script select.sql 

nơi select.sql có đơn giản:

select * from PUBLIC.MYTABLE; 

tôi phải thêm -showResults trước khi sản lượng đã bắt đầu xuất hiện. Dưới đây là hoàn toàn lệnh:

java -cp /Users/az/.m2/repository/com/h2database/h2/1.4.192/h2-1.4.192.jar org.h2.tools.RunScript -url "jdbc:h2:file:~/testdb" -user someusername -password somepass -script select.sql -showResults 

Nếu bạn không có bình cần thiết, tải về từ here (Click vào jar liên kết bên cạnh mỗi phiên bản). Một số liên kết trực tiếp đến các lọ như sau:

1.4.193(Cập nhật ngày 31-Oct-2016)

1.4.192(Cập nhật ngày 26-May-2016)

1.4.191(Cập nhật ngày 21-Jan- 2016)

1.4.190(Cập nhật 11-Oct-2016)