Writing to a DataBase
-
下の例ではデータベースに5000行の”日付”をプッシュしています。特にバッチバージョンの使用に注意してください。
-- 非バッチバージョンより高速化を実現します。
バッチ処理はどのような一括操作のためにも重要です。
| サンプル : |
function foo() {
var conn = Jdbc.getConnection("jdbc:mysql://:3306/", "user", "password");
var stmt = conn.createStatement();
stmt.setMaxRows(100);
var start = new Date();
var rs = stmt.executeQuery("select * from person");
var doc = SpreadsheetApp.getActiveSpreadsheet();
var cell = doc.getRange('a1');
var row = 0;
while(rs.next()) {
cell.offset(row, 0).setValue(rs.getString(1));
cell.offset(row, 1).setValue(rs.getString(2));
cell.offset(row, 2).setValue(rs.getString(3));
cell.offset(row, 3).setValue(rs.getString(4));
row++;
}
rs.close();
stmt.close();
conn.close();
var end = new Date();
Logger.log("time took: " + (end.getTime() - start.getTime()));
}
|
Reading from a DataBase
-
二つ目の例です。
一般的な読み取り操作を実行し、取得したデータをスプレッドシートにプッシュするものです。
| サンプル : |
function insert() {
var conn = Jdbc.getConnection("jdbc:mysql://:/", "user", "password");
conn.setAutoCommit(false);
var stmt = conn.prepareStatement("insert into person (lname,fname) values (?,?)");
var start = new Date();
for (var i = 0; i < 5000; i++) {
stmt.setObject(1, 'firstName' + i);
stmt.setObject(2, 'lastName' + i);
stmt.addBatch();
}
var res = stmt.executeBatch();
conn.commit();
conn.close();
var endTime = new Date();
Logger.log("time is " + (endTime.getTime() - start.getTime()) + "ms");
Logger.log("res has " + res.length);
}
|
Accessing Local DataBases
-
Google Appsは'クラウド型'のスクリプト言語です。-- スクリプトのすべての作業はGoogleのサーバーで行われます。
クラウドでホストされていないデータベースとの通信スクリプトのために、Googleのサーバーがユーザーのデータベースと接続できる必要があります。
Google内のIPアドレスならば、いかなるIPアドレスでもGoogleからユーザーのデータベースに接続できます
こちらがIPアドレスの範囲になります。
近い将来、Googleのセキュリティで保護されたデータのコネクタは、SDCでのJDBCサポートをリリースする予定。
Some Important Considerations
-
現在、呼び出しがBrowser.msgBox、またはBrowser.inputBoxによって行われるとJDBC接続は破棄されます。
他のUI機能では接続の破棄は生じません。
また、正しいステートメントで接続を閉じることが非常に重要であることに注意してください。
正確なクリーンアップを失敗すると深刻なエラーになる可能性があります。
|
| | |