2016-01-10 12 views
6

Chcę utworzyć formularz HTML do wprowadzania/przeglądania danych na localhost.Formularz HTML łączący się z lokalną bazą danych H2

Dane znajdują się w bazie danych H2 opartej na plikach na localhost.

Idealnie chciałbym używać tylko javascript i HTML po stronie klienta, aby użytkownik nie musiał uruchamiać lokalnego serwera WWW.

znalazłem pewne informacje tutaj o tym, jak połączyć: http://blog.jooq.org/2014/06/06/java-8-friday-javascript-goes-sql-with-nashorn-and-jooq/

ale zastanawiam się o kolejnym kroku, w jaki sposób zintegrować zapytania połączenia/SQL w formie internetowej.

Jestem świadomy, że używanie javascript do łączenia się z bazą danych jest zwykle źle postrzegane ze względów bezpieczeństwa, ale w tym przypadku będzie on uzyskiwał dostęp tylko do danych na localhost.

Czy są też zalecane biblioteki javascript, które ułatwiłyby to działanie?

var someDatabaseFun = function() { 
    var Properties = Java.type("java.util.Properties"); 
    var Driver = Java.type("org.h2.Driver"); //JDBC interface for H2 

    var driver = new Driver(); 
    var properties = new Properties(); 

    properties.setProperty("user", "");  // database username 
    properties.setProperty("password", ""); // database password 

    try { 
     var conn = driver.connect(
      "jdbc:h2:~/db", properties); // connect to database 

     // Database code here 
    } 
    finally { 
     try { 
      if (conn) conn.close(); 
     } catch (e) {} 
    } 
} 

someDatabaseFun(); 
+0

Ten samouczek służy do uruchamiania JavaScript w Nashorn/JVM, a nie JavaScript w Internecie. Ten kod nie może być uruchamiany po stronie klienta. – approxiblue

+0

Czy istnieje coś podobnego, które może działać po stronie klienta (z bazą danych H2 i interfejsem JDBC również działającym na localhost?) – FGiorlando

Odpowiedz

1

Łączenie z opartą na java bazą danych, taką jak H2, nie jest łatwe z czystym rozwiązaniem javascript (pomimo tego, że H2 eksponuje się poprzez JDBC i HTML).
Jednak istnieją oczywiście sposoby pracy z bazami danych w czystym html. Te zasadniczo wykorzystują mechanizmy pamięciowe indexeddb i websql wbudowane w przeglądarkę. niekompletny wykaz bibliotek JavaScript są tutaj omawiane http://nolanlawson.com/2015/09/29/indexeddb-websql-localstorage-what-blocks-the-dom/:

  • lawnchair
  • PouchDB
  • LocalForage
  • Dexie
  • Lovefield
  • LokiJS
  • AlaSQL
  • MakeDrive
  • ForerunnerDB
  • YDN-DB

Są oprócz pracy z czystego WebSQL. Dla moich celów czystym WebSQL było najlepszym rozwiązaniem, na przykład: http://www.tutorialspoint.com/html5/html5_web_sql.htm

Wiem, że straciłem zgodność z IE/Firefox. Ale są też opcje Shiming WebSQL do IndexedDB, na przykład: http://nparashuram.com/IndexedDBShim/

Tak, w skrócie, można pracować ze strony klienta SQL z czystego javascript ale H2 nie jest najlepszym DB to zrobić z. WebSQL ma tę zaletę, że baza danych jest faktycznie przechowywana przez przeglądarkę jako plik SQLite (przechowywanie plików jest ważne dla mojej aplikacji)

0

chciałbym używać tylko po stronie klienta JavaScript i HTML

Gdzie jest Twój JVM zamiar uruchomić? H2 to baza danych Java. Działa w JVM.

  • Czy umieszczasz go w aplecie Java?
  • Czy używasz Java Web Start?

Będą to jedyne znane mi sposoby uruchamiania Java na komputerze klienta.

Wszystko inne ma, aby połączyć się z serwerem.


Gdybym zadanie wdrożenie tego, chciałbym uruchomić H2 osadzony w apletu Java, to mam mówić javascript do apletu. Jest to bardzo przylegające i zachowuje dane tylko w pamięci. Dlaczego po prostu nie przechowywać wszystkich danych w tablicach javascript?

+0

H2 zapewnia lokalny interfejs JDBC za pośrednictwem lokalnego środowiska JRE. Użytkownik będzie miał zainstalowaną java na swojej lokalnej maszynie. – FGiorlando

+0

Więc masz H2 działa jako serwer na komputerze 'localhost'? Czy Twoje pytanie z pytaniem, jaki będzie adres URL połączenia? – Stewart

+0

głównym pytaniem jest, czy można połączyć się z H2 przy użyciu javascript po stronie klienta, a następnie skonfigurować formularz internetowy do przeglądania/wprowadzania danych – FGiorlando

Powiązane problemy