【问题标题】:Connection to a local embedded H2 database连接到本地嵌入式 H2 数据库
【发布时间】:2019-12-05 09:19:33
【问题描述】:

我有一个本地 H2 数据库存储在我的笔记本电脑上:C:\Users\patri\Documents\Collectionneur de recettes v2 在 Google Apps 电子表格中: 我复制了我找到​​的代码:

var address = 'h2:file:C:\Users\patri\Documents\Collectionneur de recettes v2';
var user = 'SA';
var userPwd = '';
var db = '\recipes';
var dbUrl = 'jdbc:'+ address + ';databaseName=' + db;


function readData() {
 var conn = Jdbc.getConnection(dbUrl, user, userPwd);
 var stmt = conn.createStatement();
 var results = stmt.executeQuery('SELECT * FROM FOLDERS');
 var metaData=results.getMetaData();
 var numCols = metaData.getColumnCount();

 var spreadsheet = SpreadsheetApp.getActive();
 var sheet = spreadsheet.getSheetByName("Sheet1");
 //you can use the following line to get the active sheet
 //var sheet = SpreadsheetApp.getActiveSheet();
 sheet.clearContents();
 var arr=[];
 for (var col = 0; col < numCols; col++) {
  arr.push(metaData.getColumnName(col + 1));
 }
 sheet.appendRow(arr);
 while (results.next()) {
  arr=[];
  for (var col = 0; col < numCols; col++) {
   arr.push(results.getString(col + 1));
  }

当我执行代码时,我收到一条错误消息:

连接 URL 使用了不受支持的 JDBC 协议。

我能做什么?

【问题讨论】:

  • 我从未使用过 H2,所以我不知道具体细节,但我建议您搜索“h2 server localhost”,然后使用 ngrok 之类的内容使其可以通过以下方式访问网络。这应该仅用于开发目的,而不是用于生产或持久使用。

标签: database google-apps-script connection h2 spreadsheet


【解决方案1】:

Google 应用在基于云的服务器上运行。它不会在您的本地计算机上运行,​​因此,除非您的本地数据库在公开可用的 IP 地址上公开,否则 Google 脚本无法连接到数据库。

【讨论】:

    【解决方案2】:

    错误信息:

    连接 URL 使用了不受支持的 JDBC 协议。

    告诉你Class Jdbc不支持子协议h2

    要了解 Apps 脚本可以处理哪些子协议,您可以查看 External Databases via JDBC

    【讨论】:

      猜你喜欢
      • 2020-04-12
      • 2016-04-14
      • 2022-01-20
      • 2017-03-05
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      • 2016-01-22
      • 2016-11-02
      相关资源
      最近更新 更多