> >

Google Spreadsheet JDBCを活用したDBとの連携 [Google Apps Script]

スポンサーリンク

Google Apps ScriptではJDBCというサービスを通じて外部のデータベースにアクセスする事が可能です。

接続できるデータベースは今現在、Google Cloud SQL、MySQL、Microsoft SQL Server、Oracleとなっているようです。

もちろんですが、外部からの接続を許容しているデータベースにのみ接続が可能です。

ソースコードはこんな感じです。

function wmap_jdbc() {
  //'jdbc:mysql://[ホスト名(IPアドレス)]:[ポート番号]/[DB名]';
  var con_str = 'jdbc:mysql://wmapst.net:1234/hogehoge';
  var user_id = 'hoge_user';
  var user_pass = 'hoge_pass';
  
  var conn = Jdbc.getConnection(con_str, user_id, user_pass);
  var stmt = conn.createStatement();
  stmt.setMaxRows(100);
  
  //クエリを記載
  var str_query = 'select * from tbl_hogehoge;';
  
  var rs = stmt.executeQuery(str_query);
  var row = 1;
  var str = '';
  
  while(rs.next()) {
    //getStringで列名を指定して取得
    str += rs.getString('hogehoge_id');
    str += '\n';
    row++;
  }
  rs.close();
  stmt.close();
  conn.close();
  
  //output
  Logger.log(str);
}

今回の場合は、Logger.log()を利用して、ログに出力するようにしていますが、当然スプレッドシートに出力したり、メールに出力したりと色々な活用が可能です。

当然、select文だけでなく、insert文やreplace文、update文等も権限が付与されているユーザーを利用すれば可能です。

ただしセキュリティの観点から考えると、いかがなものかという気もしますが。

更に言えば、データベースのアカウント情報もスクリプト内部に記載するのはイマイチな気がしています。

閲覧権限すら与えていないスプレッドシートを別で作ってその中に記載。

その記載されている情報をスクリプトで呼び出すとかがイイかもしれません。

そこら辺は上手く考えて活用してみてください。

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です