スキップしてメイン コンテンツに移動

GAS JDBCでDB接続

GAS JDBCでDB接続

はじめに

Google Apps Script(GAS)は、Google Workspace の自動化に便利ですが、外部データベース(外部DB)へのアクセスも可能です。JDBC を利用すれば、MySQL、PostgreSQL、Oracle などのクラウドDBとシームレスに連携できます。

GASとJDBCの基本

GAS には JDBC サービスが組み込まれており、Jdbc.getConnection を呼び出すだけでデータベース接続が確立します。接続文字列は jdbc:mysql://host:port/db のように書きます。接続後は StatementPreparedStatement を使って SQL を実行します。

MySQL接続例

MySQL への接続は以下のように記述します。

var conn = Jdbc.getConnection(
  'jdbc:mysql://:/',
  '',
  ''
);
var stmt = conn.createStatement();
var results = stmt.executeQuery('SELECT * FROM users LIMIT 5');
while (results.next()) {
  Logger.log(results.getString('name'));
}
conn.close();

クラウド上の RDS などを利用する場合は、VPC の設定やファイアウォールを確認してください。

PostgreSQL接続例

PostgreSQL への接続は MySQL とほぼ同じですが、ドライバが異なります。

var conn = Jdbc.getConnection(
  'jdbc:postgresql://:/',
  '',
  ''
);
// 以降は同様に Statement を使う

PostgreSQL のクラウドサービス(Cloud SQL など)では、接続先の IP を許可リストに追加する必要があります。

Oracle接続例

Oracle への接続は次のように行います。

var conn = Jdbc.getConnection(
  'jdbc:oracle:thin:@::',
  '',
  ''
);
// 以降は同様に Statement を使う

Oracle のクラウド版(Oracle Cloud)では、ネットワーク設定が重要です。

クラウドDBへの接続

AWS RDS、Google Cloud SQL、Azure Database などのクラウドDBは、GAS から直接接続できます。接続文字列にクラウドプロバイダのエンドポイントを指定し、必要に応じて SSL を有効化します。例として Cloud SQL の接続は次のようになります。

var conn = Jdbc.getConnection(
  'jdbc:postgresql://:5432/',
  '',
  '',
  { 'useSSL': 'true', 'requireSSL': 'true' }
);

SQL実行と結果取得

SQL を実行する際は executeQuery(SELECT)と executeUpdate(INSERT/UPDATE/DELETE)を使い分けます。結果は ResultSet オブジェクトで取得し、getStringgetInt で列値を取得します。

var stmt = conn.createStatement();
var rs = stmt.executeQuery('SELECT id, name FROM customers');
while (rs.next()) {
  var id = rs.getInt('id');
  var name = rs.getString('name');
  Logger.log(id + ': ' + name);
}
rs.close();

エラーハンドリングとベストプラクティス

接続やクエリ実行時に例外が発生することがあります。try/catch で捕捉し、finally で必ず conn.close() を呼び出すようにします。また、接続プールを利用するとパフォーマンスが向上します。

try {
  var conn = Jdbc.getConnection(...);
  // クエリ実行
} catch (e) {
  Logger.log('DB error: ' + e);
} finally {
  if (conn) conn.close();
}

まとめ

GAS と JDBC を組み合わせることで、Google Workspace の自動化と外部DB(MySQL、PostgreSQL、Oracle)を統合できます。クラウドDB への接続も簡単に実装でき、SQL 実行や結果取得が可能です。セキュリティとエラーハンドリングを意識しながら、実務に活かしてみてください。

この記事はAIによって作成されました。

コメント