Jdbc 如何在google应用程序脚本中共享连接?

Jdbc 如何在google应用程序脚本中共享连接?,jdbc,google-apps-script,connection-pooling,Jdbc,Google Apps Script,Connection Pooling,以前在谷歌应用脚本中编写脚本时,我打开并关闭了所有函数中的Jdbc连接 为了加速我的应用程序,最好保持连接打开,并在其他功能中使用它。然而,我不知道如何在谷歌应用程序脚本中做到这一点 有人能给我一个建议或例子吗?下面是一个如何在ScriptDB中保持连接的例子 函数myFunction(){ var conn=ScriptDb.getMyDb().query({name:“我的连接”}); var连接=null; var itemId=null; 如果(连接getSize()==0){ log(

以前在谷歌应用脚本中编写脚本时,我打开并关闭了所有函数中的Jdbc连接

为了加速我的应用程序,最好保持连接打开,并在其他功能中使用它。然而,我不知道如何在谷歌应用程序脚本中做到这一点


有人能给我一个建议或例子吗?

下面是一个如何在ScriptDB中保持连接的例子

函数myFunction(){
var conn=ScriptDb.getMyDb().query({name:“我的连接”});
var连接=null;
var itemId=null;
如果(连接getSize()==0){
log(“未找到连接,正在创建新连接”);
connection=Jdbc.getConnection('Jdbc:mysql://:3306/','user','password');
itemId=ScriptDb.getMyDb().save({name:“我的连接”,connection:connection}).getId();
}否则{
log(“找到连接,正在检索”+conn.getSize());
var dbItem=conn.next();
connection=dbItem.connection;
itemId=dbItem.getId();
}
//检查它是否关闭
if(connection.isClosed()){
connection=Jdbc.getConnection('Jdbc:mysql://:3306/','user','password');
//打开后,请记住再次保存到dabatase并仅保留一个连接
ScriptDb.getMyDb().removeById(itemId);
ScriptDb.getMyDb().save({name:“我的连接”,connection:connection});
}
//在这里使用您的连接
//记住根据某些标准关闭它
}

示例。

谢谢!这将帮我很大的忙。对不起,您需要在ScriptDB中保留它。CacheService只保留字符串值。我构建了下面的解决方案。1)scriptDB不推荐使用2)每次执行脚本后,JDBC连接都会自动关闭,因此,没有必要存储它。非常感谢。我想这对我有很大帮助。我还有一个问题:在ScriptDB保留它是不可避免的吗?我想这是唯一的办法。谷歌表示,测试连接是否处于活动状态的时间类似于打开一个新连接,因此他们建议总是打开一个新连接,但正如你所发现的,事实并非如此。如果这个答案对你有帮助,请竖起大拇指!:)嗨,今天我在处理联营事宜。事实上,这是一种非常好的创造性连接池方式。但是,问题是scriptDb无法保存Jdbc连接。它说:值不是数字、字符串、布尔值等。这是一个不可避免的问题,还是您对此有一些建议?我发现在prepareStatement方法中有一个“setPooled(boolean)”方法。不知何故,这不是一个可能的解决办法吗?实际上,我对此有点困惑。使用Utilities.jsonStringify(obj)将对象转换为字符串,使用Utilities.jsonParse(jsonString)将字符串转换为对象。