×

[PR]この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。



>> ユーザーガイド >> データの格納 >> ユーザープロパティ | ScriptDb | スプレッドシート | JDBC


JDBC

Google.Appsスクリプトは、JDBC.Service ~ JDBC経由でデータベースへの接続を作成する能力を持っています。現在のサポートは、MySQL、Microsoft SQL ServerやOracleにまで広がっています。


WWW GoogleStyle


データベースへ書き込む

この例では、5000行に及ぶデータをデータベースへプッシュします。特にバッチ処理されたバージョンの使用に注意してください。非バッチ処理版よりかなり速く実行されます。 バッチ処理は、任意のバルク操作のためには極めて重要です。


function
insert() {
var
conn =
Jdbc.
getConnection(
"jdbc:mysql://<host>:<port>/<instance>", "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++) {
// Objects are accessed using 1-based indexing
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); }


データベースを読み取る

二番目の例は、一般的な読み取り操作を実行して取得したデータをスプレッドシートにプッシュします。


function
foo() {
var
conn = Jdbc.getConnection(
"jdbc:mysql://<host>:3306<port>/<instance>", "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())); }


ローカルデータベースへのアクセス

Google.Apps.Scriptは、クラウドのスクリプト言語です。すべての作業は、Googleのサーバー上で行われます。クラウドでホストされていないデータベースと会話するスクリプトには、Googleのサーバーがデータベースに接続できることを確認する必要があります。 Googleでは、いずれかのIPアドレスでデータベースとコンタクトすることができます。IPアドレスの完全な範囲は次のとおりです


216.239.32.0 - 216.239.63.255 64.233.160.0 - 64.233.191.255 66.249.80.0 - 66.249.95.255 72.14.192.0 - 72.14.255.255 209.85.128.0 - 209.85.255.255 66.102.0.0 - 66.102.15.255 74.125.0.0 - 74.125.255.255 64.18.0.0 - 64.18.15.255 207.126.144.0 - 207.126.159.255 173.194.0.0 - 173.194.255.255



いくつかの重要な考慮

現在のところ、コールがBrowser.msgBoxまたはBrowser.inputBoxで行われたときにはJDBC接続が破棄されます。

同様に他のUI機能は、接続を切断しないことに注意してください。



2012-11-09

pageTOP