从Apps脚本访问Google Cloud SQL

Fra*_*eca 5 google-apps-script google-cloud-sql

我想知道现在是否有使用应用程序脚本连接到我的Google Cloud SQL DB以插入/检索记录或执行查询的方法.我阅读了很多帖子,看来访问DB Cloud SQL的唯一方法就是使用appengine.

有人知道解决方案吗?谢谢

Nee*_*eel 11

是的,显然可以通过JDBC将应用程序脚本与Google Cloud SQL连接起来.

与Google Cloud SQL实例的连接来自Google Apps脚本: Google Apps脚本可以通过JDBC与Jdbc服务建立数据库连接.

授权: 为了连接到实例,用户必须是关联的Google API控制台项目的成员.(可选)可以指定用户名和密码以应用更细粒度的权限.要了解有关访问控制的更多信息,请参阅访问控制文档

访问Google Cloud SQL数据库: 我们可以使用特殊方法getCloudSqlConnection连接到Apps脚本中的这些数据库.此方法与getConnection的工作方式相同,但只接受Google Cloud SQL连接字符串.

var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://instance_name/database_name");
Run Code Online (Sandbox Code Playgroud)

连接后,您可以使用与用于对任何MySQL数据库相同的代码.

写入数据库: 此代码将在数据库中的人员表中插入记录

function insert() {
  var fname="First Name"
  var lname="Last Name"
  var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://instance_name/database_name");
  var stmt = conn.createStatement()
  var query="insert into person(FNAME,LNAME) values('"+fname+"','"+lname+"')"
  stmt.execute(query)
  stmt.close()
  conn.close()
 }
Run Code Online (Sandbox Code Playgroud)

从数据库 读取:此代码将从数据库中读取.

function read() {
  var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://instance_name/database_name");
  var stmt = conn.createStatement()
  var query="select FNAME, LNAME from person"
  var rs= stmt.executeQuery(query)
  while(rs.next()){
    Logger.log("First Name : "+rs.getString(1)+" , "+"Last Name : "+rs.getString(2))
  }
  rs.close()
  stmt.close()
  conn.close()
 }
Run Code Online (Sandbox Code Playgroud)