Google App Script - 如何在 JDBC 查询中加入多个数据库

Posted

技术标签:

【中文标题】Google App Script - 如何在 JDBC 查询中加入多个数据库【英文标题】:Google App Script - How to join multiple databases in JDBC query 【发布时间】:2020-01-04 19:50:45 【问题描述】:

是否可以通过 GAS 查询连接多个数据库?我能够成功地跨表连接数据,但无法弄清楚如何连接数据库。

这是我加入表格的脚本。我需要添加/更改什么才能将此查询加入另一个数据库表(数据库在同一台服务器上)。


  var docs = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = docs.getSheetByName('sheet1');
  var protocol = docs.getSheetName();
  var siteName = docs.getName();
  var conn = Jdbc.getConnection('jdbc:mysql://ip:port/database', 'foo', 'bar'); 

var stmt = conn.prepareStatement("select a.ex, a.ex2, a.ex3, b.ex1, b.ex2 from table1 a join table2 b on a.ex = b.ex;"); 

  var start = new Date(); // Get script starting time
  var rs = stmt.executeQuery();
  var doc = SpreadsheetApp.getActiveSpreadsheet(); 
  var sheets = docs.getSheetByName('sheet1');
  var cell = sheets.getRange('C1');
  var row = 0;
  var getCount = rs.getMetaData().getColumnCount(); 

  for (var i = 0; i < getCount; i++)  
     cell.offset(row, i).setValue(rs.getMetaData().getColumnName(i+1)); 
    

  var row = 1; 
  while (rs.next()) 
    for (var col = 0; col < rs.getMetaData().getColumnCount(); col++)  
      cell.offset(row, col).setValue(rs.getString(col + 1)); 
    
    row++;
  

  rs.close();
  stmt.close();
  conn.close();
  var end = new Date(); // Get script ending time
  Logger.log('Time elapsed: ' + (end.getTime() - start.getTime())); // To generate script log. To view log click on View -> Logs.
  Logger.log(protocol);
  Logger.log(rs);

```

【问题讨论】:

我猜尝试声明两个单独的连接 conn1 和 conn2 @Cooper 试过了——问题变成了在“var stmt = conn.prepareStatement()”区域中声明两个连接。不知道我将如何将这两个变量连接到该语句...... 【参考方案1】:

解决方案是在 MySQL 中创建一个存储过程。您可以在那里链接数据库,创建复杂的查询,然后使用与保存存储过程的数据库的单个连接来调用 JDBC 查询中的过程。

这对我有用。

相关资料链接:

开发 MySQL 站点:MySQL Stored Procedure

MySQL 教程:MySQL Stored Procedure

【讨论】:

以上是关于Google App Script - 如何在 JDBC 查询中加入多个数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何收听Telegram Bot错误? (Google App Script + Webhooks)

Google App Script - 如何在 JDBC 查询中加入多个数据库

在Google-App-Script for Google云端硬盘中如果标题包含某个字词,如何将某些文件从root移动到某个文件夹?

如何向 Google Apps Script Web App 发送有效的 HTTP 请求?

如何使用 Google App Script 从 Youtube 搜索中创建 RSS 提要?

如何从 Google App Script 中的文件运行保存的 Big Query 脚本? [关闭]