连接到本地H2数据库的HTML表单

时间:2016-01-10 05:07:18

标签: javascript html sql h2

我想创建一个HTML表单,用于在localhost上输入/查看数据。

数据位于localhost上基于文件的H2数据库中。

理想情况下,我只想使用客户端javascript和HTML,这样用户就不需要运行本地Web服务器了。

我在这里找到了一些关于如何连接的信息:http://blog.jooq.org/2014/06/06/java-8-friday-javascript-goes-sql-with-nashorn-and-jooq/

但我想知道如何将连接/ SQL查询集成到Web表单中的下一步。

我知道出于安全原因,使用javascript连接到数据库通常是不受欢迎的,但对于这个用例,它只会访问localhost上的数据。

此外,是否有任何推荐的javascript库可以让这更容易?

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();

2 个答案:

答案 0 :(得分:1)

使用纯JavaScript解决方案连接到基于Java的数据库(如H2)并不容易(尽管H2通过JDBC和HTML公开自己)。 但是,有一些方法可以在pure-html中使用数据库。这些本质上利用了浏览器内置的indexeddb和websql存储机制。 这里讨论了一个不完整的JavaScript库列表http://nolanlawson.com/2015/09/29/indexeddb-websql-localstorage-what-blocks-the-dom/

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

这些是使用纯WebSQL的补充。就我的目的而言,纯WebSQL是最好的解决方案,例如:http://www.tutorialspoint.com/html5/html5_web_sql.htm

我愿意失去IE / Firefox的兼容性。 但是也有一些选项可以将WebSQL提升到IndexedDB,例如: http://nparashuram.com/IndexedDBShim/

因此,总而言之,您可以使用纯JavaScript来使用SQL客户端,但H2不是最好的数据库来执行此操作。 WebSQL的优势在于,数据库实际上是由浏览器存储为SQLite文件(基于文件的存储对我的应用程序很重要)

答案 1 :(得分:0)

  
    

我只想使用客户端javascript和HTML

  

您的JVM将在哪里运行? H2是一个Java数据库。它在JVM中运行。

  • 您是否将其嵌入Java Applet中?
  • 您使用的是Java Web Start吗?

他们是我所知道的在客户端机器上运行Java的唯一方法。

其他任何 连接到服务器。

如果我的任务是实现这个,我会在Java Applet中运行H2嵌入,然后让我的javascript与Applet对话。但它非常笨重,只能将数据保存在内存中。为什么不将所有数据保存在javascript数组中呢?