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()) {これが、レコードを出力している部分です。whileで繰り返しを用意していますが、その条件部分で「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();ひと通り作業が終わったら、最後にリソースを開放します。まず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(); }
<< 前へ | 次へ >> |