2016-01-10 18 views
6

Sto cercando di creare un modulo HTML per inserire/visualizzare dati su localhost.Modulo HTML che si collega al database H2 locale

I dati si trovano in un database H2 basato su file su localhost.

Idealmente, mi piacerebbe utilizzare solo javascript e HTML lato client in modo che l'utente non abbia bisogno di eseguire un server web locale.

ho trovato alcune informazioni qui su come collegare: http://blog.jooq.org/2014/06/06/java-8-friday-javascript-goes-sql-with-nashorn-and-jooq/

ma sto chiedendo circa il prossimo passo di come integrare le query di connessione/SQL nel modulo web.

Sono consapevole del fatto che l'uso di javascript per connettersi a un database è solitamente disapprovato per motivi di sicurezza, ma per questo caso d'uso, accederà solo ai dati su localhost.

Inoltre, ci sono delle librerie javascript raccomandate che renderebbero tutto più semplice?

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

Quel tutorial è per l'esecuzione di JavaScript in Nashorn/JVM, non JavaScript sul web. Quel codice non può essere eseguito lato client. – approxiblue

+0

Esiste qualcosa di simile che potrebbe eseguire lato client (con il database H2 e l'interfaccia JDBC in esecuzione anche su localhost?) – FGiorlando

risposta

1

La connessione a un database basato su Java come H2 non è semplice con una soluzione javascript pura (nonostante il fatto che H2 si esponga tramite JDBC e HTML).
Tuttavia, ci sono certamente modi di lavorare con i database in puro-html. Questi essenzialmente sfruttano i meccanismi di archiviazione indexeddb e websql integrati nel browser. un elenco incompleto di librerie javascript vengono discussi qui http://nolanlawson.com/2015/09/29/indexeddb-websql-localstorage-what-blocks-the-dom/:

  • Lawnchair
  • PouchDB
  • LocalForage
  • Dexie
  • Lovefield
  • LokiJS
  • AlaSQL
  • MakeDrive
  • 0.123.
  • ForerunnerDB
  • YDN-DB

Questi sono in aggiunta a lavorare con puro WebSQL. Per i miei scopi, puro WebSQL era la soluzione migliore, ad esempio: http://www.tutorialspoint.com/html5/html5_web_sql.htm

Sto perdendo la compatibilità IE/Firefox. Ma ci sono anche opzioni di Shiming WebSQL a IndexedDB, ad esempio: http://nparashuram.com/IndexedDBShim/

Così, in sintesi, è possibile lavorare con lato client SQL con puro javascript ma H2 non è la migliore DB per fare questo con. WebSQL ha il vantaggio che il database è effettivamente memorizzato dal browser come un file SQLite (l'archiviazione basata su file è importante per la mia applicazione)

0

mi piacerebbe utilizzare solo JavaScript lato client e HTML

Dov'è la tua JVM andare a correre? H2 è un database Java. Funziona all'interno di una JVM.

  • Lo si incorpora in un'applet Java?
  • Stai usando Java Web Start?

Sarebbero gli unici modi che conosco per eseguire Java sul computer del cliente.

Tutto il resto dispone di per connettersi a un server.


Se fossi incaricato di attuare questo, vorrei correre H2 incorporato in un applet Java, poi il mio discorso javascript per l'applet. Tuttavia, è molto goffo e conserva solo i dati in memoria. Perché non tenere tutti i tuoi dati in matrici javascript?

+0

H2 fornisce un'interfaccia JDBC locale tramite il JRE locale. L'utente avrà java installato sul loro computer locale – FGiorlando

+0

Quindi hai H2 in esecuzione come un server sulla macchina 'localhost'? La tua domanda è chiedere quale sarebbe l'URL di connessione per questo? – Stewart

+0

la domanda principale è se è possibile connettersi a H2 utilizzando javascript sul lato client e quindi configurare un modulo web per visualizzare/immettere dati – FGiorlando

Problemi correlati