var conn = Jdbc.getCloudSqlConnection(db);これは既に説明しました。Cloud SQLの場合は、getCloudSqlConnectionでデータベースの指定を引数にして呼び出すのでしたね。
var stmt = conn.createStatement();createStatementでJdbcStatementオブジェクトを作成します。その後の「setMaxRows」は、文字通り、取得するレコードの最大数を指定するものです。SQLのlimitを自動追加するもの、と考えると良いでしょう。
stmt.setMaxRows(100);
var rs = stmt.executeQuery("select * from persondata");JdbcのexecuteQueryは、引数に指定したクエリーを実行し、その結果をJdbcResultSetとして返すものです。これで検索した結果がオブジェクトとして返されます。後は、そこから順にレコードの値を取り出していくだけです。while(rs.next()) {
var id = rs.getString("id");
var name = rs.getString("name");
var mail = rs.getString("mail");
var res = "id=" + id + ", name=" + name + ", mail=" + mail;
Logger.log(res);
}これが、レコードを出力している部分です。whileで繰り返しを用意していますが、その条件部分で「next」というものを呼び出していますね。これがポイントです。rs.close();ひと通り作業が終わったら、最後にリソースを開放します。まずJdbcResultSetをcloseし、以下、JdbcStatement、JdbcConnectionと順にcloseしていきます。「後に作ったものから閉じていく」と考えればよいでしょう。
stmt.close();
conn.close();
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
var db = "jdbc:google:rdbms://<インスタンス>/mydb";
function getList() {
var conn = Jdbc.getCloudSqlConnection(db);
var stmt = conn.createStatement();
stmt.setMaxRows(100);
var rs = stmt.executeQuery("select * from persondata");
while(rs.next()) {
var id = rs.getString("id");
var name = rs.getString("name");
var mail = rs.getString("mail");
var res = "id=" + id + ", name=" + name + ", mail=" + mail;
Logger.log(res);
}
rs.close();
stmt.close();
conn.close();
}
| << 前へ | 次へ >> |