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

FGi*_*ndo 6 html javascript 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();
Run Code Online (Sandbox Code Playgroud)

FGi*_*ndo 1

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

  • 草坪椅
  • PouchDB
  • 本地饲料
  • 德克西
  • 洛夫菲尔德
  • 洛基JS
  • 阿拉SQL
  • 创行
  • 先行者数据库
  • YDN-DB

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

我愿意失去 IE/Firefox 兼容性。但也有将 WebSQL shiming 到 IndexedDB 的选项,例如: http: //nparashuram.com/IndexedDBShim/

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