HTML 表单连接到本地 H2 数据库
HTML form connecting to local H2 database
我想为本地主机上的 entering/viewing 数据创建一个 HTML 表单。
数据位于本地主机上基于文件的 H2 数据库中。
理想情况下,我只想使用客户端 javascript 和 HTML,这样用户就不需要 运行 本地 Web 服务器。
我在这里找到了一些关于如何连接的信息:http://blog.jooq.org/2014/06/06/java-8-friday-javascript-goes-sql-with-nashorn-and-jooq/
但我想知道下一步如何将 connection/SQL 查询集成到 Web 表单中。
我知道出于安全原因,通常不赞成使用 javascript 连接到数据库,但对于这个用例,它只会访问本地主机上的数据。
此外,是否有任何推荐的 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();
I'd like to use only client-side javascript and HTML
您的 JVM 要去哪里 运行? H2 是一个 Java 数据库。它 运行 在 JVM 中。
- 您是否将其嵌入到 Java Applet 中?
- 您在使用 Java Web Start 吗?
这是我所知道的在客户端机器上 运行 Java 的唯一方法。
任何其他都连接到服务器。
如果我的任务是实现这个,我会 运行 H2 嵌入到 Java Applet 中,然后让我的 javascript 与 Applet 对话。虽然它非常笨重,并且只将数据保存在内存中。为什么不将所有数据保存在 javascript 数组中?
使用纯 java 脚本解决方案连接到像 H2 这样基于 java 的数据库并不容易(尽管事实上 H2 通过 JDBC 和 HTML 公开了自己).
但是,在 pure-html 中肯定有使用数据库的方法。这些本质上利用了浏览器内置的 indexeddb 和 websql 存储机制。
此处讨论了 java 脚本库的不完整列表 http://nolanlawson.com/2015/09/29/indexeddb-websql-localstorage-what-blocks-the-dom/:
- 草坪椅
- PouchDB
- LocalForage
- 德西
- 洛夫菲尔德
- LokiJS
- 阿拉SQL
- MakeDrive
- ForerunnerDB
- YDN-DB
这些是对纯 Web 的补充SQL。就我而言,纯 WebSQL 是最好的解决方案,例如:http://www.tutorialspoint.com/html5/html5_web_sql.htm
我愿意失去 IE/Firefox 兼容性。
但也有将 WebSQL shiming 到 IndexedDB 的选项,例如:
http://nparashuram.com/IndexedDBShim/
因此,总而言之,您可以使用 SQL 纯 java 脚本的客户端,但 H2 不是执行此操作的最佳数据库。 WebSQL 的优点是数据库实际上由浏览器存储为 SQLite 文件(基于文件的存储对我的应用程序很重要)
我想为本地主机上的 entering/viewing 数据创建一个 HTML 表单。
数据位于本地主机上基于文件的 H2 数据库中。
理想情况下,我只想使用客户端 javascript 和 HTML,这样用户就不需要 运行 本地 Web 服务器。
我在这里找到了一些关于如何连接的信息:http://blog.jooq.org/2014/06/06/java-8-friday-javascript-goes-sql-with-nashorn-and-jooq/
但我想知道下一步如何将 connection/SQL 查询集成到 Web 表单中。
我知道出于安全原因,通常不赞成使用 javascript 连接到数据库,但对于这个用例,它只会访问本地主机上的数据。
此外,是否有任何推荐的 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();
I'd like to use only client-side javascript and HTML
您的 JVM 要去哪里 运行? H2 是一个 Java 数据库。它 运行 在 JVM 中。
- 您是否将其嵌入到 Java Applet 中?
- 您在使用 Java Web Start 吗?
这是我所知道的在客户端机器上 运行 Java 的唯一方法。
任何其他都连接到服务器。
如果我的任务是实现这个,我会 运行 H2 嵌入到 Java Applet 中,然后让我的 javascript 与 Applet 对话。虽然它非常笨重,并且只将数据保存在内存中。为什么不将所有数据保存在 javascript 数组中?
使用纯 java 脚本解决方案连接到像 H2 这样基于 java 的数据库并不容易(尽管事实上 H2 通过 JDBC 和 HTML 公开了自己).
但是,在 pure-html 中肯定有使用数据库的方法。这些本质上利用了浏览器内置的 indexeddb 和 websql 存储机制。
此处讨论了 java 脚本库的不完整列表 http://nolanlawson.com/2015/09/29/indexeddb-websql-localstorage-what-blocks-the-dom/:
- 草坪椅
- PouchDB
- LocalForage
- 德西
- 洛夫菲尔德
- LokiJS
- 阿拉SQL
- MakeDrive
- ForerunnerDB
- YDN-DB
这些是对纯 Web 的补充SQL。就我而言,纯 WebSQL 是最好的解决方案,例如:http://www.tutorialspoint.com/html5/html5_web_sql.htm
我愿意失去 IE/Firefox 兼容性。 但也有将 WebSQL shiming 到 IndexedDB 的选项,例如: http://nparashuram.com/IndexedDBShim/
因此,总而言之,您可以使用 SQL 纯 java 脚本的客户端,但 H2 不是执行此操作的最佳数据库。 WebSQL 的优点是数据库实际上由浏览器存储为 SQLite 文件(基于文件的存储对我的应用程序很重要)