2012-05-20 16 views

Odpowiedz

67

Można użyć RUNSCRIPT SQL statement:

RUNSCRIPT FROM 'test.sql' 

lub można użyć RunScript standalone/command line tool:

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

Można również użyć narzędzia runscript w aplikacji:

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

Czy jest jakaś sztuczka przy używaniu pierwszego przykładu? Mam 'bootstrap.sql', który nie zawiera niczego prócz' RUNSCRIPT FROM 'test.sql'' a mój test.sql jest rodzajem pliku bootstrap. Jeśli uruchomię 'jdbc: h2: mem: etsnom; INIT = RUNSCRIPT FROM 'C:/workspace/bootstrap.sql'', otrzymam' FileNotFoundException' – Snekse

+0

Jeśli użyjemy drugiej metody Thomasa do utworzenia bazy danych, to domyślna nazwa użytkownika i hasło zostaną ustawione, tzn. "" [pusty ciąg]. co jest zaimplementowane w klasie "RunScript" Jednak zawsze jest bardzo ważne, aby ustawić nazwę użytkownika i hasło dostępu do bazy danych, a robiąc to w przypadku bazy danych H2, możemy uruchomić poniżej polecenia, java -cp h2 *.jar org.h2.tools.RunScript -url jdbc: h2: ~/test -user sa -password sa -script test.sql –

1

Na OSX (nie powinno to naprawdę sprawa) z v. 1.4.192 z następującymi poleceniami, bez względu na to, co zrobiłem, nie mogłem zobaczyć żadnych wyników:

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

gdzie select.sql miał po prostu:

select * from PUBLIC.MYTABLE; 

musiałem dodać -showResults przed wyjście zaczęły pojawiać. Oto pełna komenda:

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 

Jeśli nie ma potrzebnej słoik, pobranie od here (Kliknij na jar linki obok każdej wersji). Niektóre bezpośrednie linki do słoików są następujące:

1.4.193(Aktualizacja 31-paź-2016)

1.4.192(Aktualizacja 26-maj-2016)

1.4.191(Aktualizacja 21-okresie styczeń 2016)

1.4.190(Aktualizacja 11-paź-2016)