连接到本地 H2 数据库的 HTML 表单
Posted
技术标签:
【中文标题】连接到本地 H2 数据库的 HTML 表单【英文标题】:HTML form connecting to local H2 database 【发布时间】:2016-04-14 15:00:21 【问题描述】:我想创建一个 html 表单,用于在 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();
【问题讨论】:
该教程适用于在 Nashorn/JVM 中运行 JavaScript,而不是在 Web 上运行 JavaScript。该代码不能在客户端运行。 是否有类似的东西可以在客户端运行(H2 数据库和 JDBC 接口也在 localhost 上运行?) 【参考方案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 本地觅食 德谢 洛夫菲尔德 LokiJS AlaSQL 制作驱动器 先行者数据库 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 文件(基于文件的存储对我的应用程序很重要)
【讨论】:
【参考方案2】:我只想使用客户端 javascript 和 HTML
您的 JVM 将在哪里运行? H2 是一个 Java 数据库。它在 JVM 中运行。
您是否将其嵌入到 Java Applet 中? 您在使用 Java Web Start 吗?它们将是我所知道的在客户端机器上运行 Java 的唯一方法。
任何其他必须连接到服务器。
如果我的任务是实现这个,我会运行嵌入在 Java Applet 中的 H2,然后让我的 javascript 与 Applet 对话。虽然它非常笨重,并且只将数据保存在内存中。为什么不将所有数据保存在 javascript 数组中?
【讨论】:
H2 通过本地 JRE 提供本地 JDBC 接口。用户将在其本地计算机上安装 java 所以你有 H2 作为服务器在机器上运行localhost
?你的问题是问这个连接 URL 是什么?
主要问题是是否可以使用客户端 javascript 连接到 H2,然后设置用于查看/输入数据的网络表单
好吧,不管 H2 在哪里(在哪台机器上)运行,它仍然作为服务器运行。因此,您正在连接到服务器。因此这个问题适用。就 JDBC 连接而言,mysql 与 H2 没有什么不同。 ***.com/questions/3020751/…以上是关于连接到本地 H2 数据库的 HTML 表单的主要内容,如果未能解决你的问题,请参考以下文章