http://アプリ名/helo.jspというようにアクセスしてみてください。先ほど作成したpersondataのレコードが一覧表示されます。――では、リストを見ながら、ポイントを整理しておきましょう。
<%@ page import="java.sql.*" %>まずは必要なクラスのimportからです。SQL関連の機能はjava.sqlのクラスをそのまま使います。重要なのはドライバのクラスです。これは、Cloud SQL専用のものが、com.google.appengine.api.rdbms.AppEngineDriverに用意されています。これを使ってデータベースにアクセスします。一般に配布されているMySQLのドライバは使えないので注意してください。
<%@ page import="com.google.appengine.api.rdbms.AppEngineDriver" %>
Connection c = null;続いて、データベースアクセスの部分を見ていきましょう。データベースアクセスは、まずConnectionクラスのインスタスを用意することから始まります。これは、DriverManagerクラスの「getConnection」メソッドを呼び出して行えます。これは引数に接続先のデータベースのURLを指定しますが、これでは以下のように指定をします。
c = DriverManager.getConnection
("jdbc:google:rdbms://tuyano-gae-sample-sql:sampledata/mydb");
jdbc:google:rdbms://インスタンス名:データベース名/テーブル名通常のMySQLとは明らかに異なっていることがわかります。jdbc:google:rdbms://の後に、使用するCloud SQLのインスタンス名、データベース名、テーブル名といった情報を記述します。
Statement st = c.createStatement();続いて、StatementインスタンスをcreateStatementで作成します。これは通常のDBアクセスと同じですね。
ResultSet rs = st.executeQuery("SELECT * FROM persondata");これも通常のDBアクセスと同じです。executeQueryでクエリーを実行し、結果をResultSetとして受け取ります。後は、ResultSetからレコードを取り出し、処理していくだけですね。
while (rs.next()){ResultSetでは、「next」を呼び出すことで次々にレコードのデータをとり出すことができます。whileでnextがfalseになるまで繰り返しを実行しています。値の取り出しは、ResultSetの「getInt」や「getString」で行なっています。
int id = rs.getInt("id");
String name = rs.getString("name");
String mail = rs.getString("mail");
……以下略……
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※helo.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.util.List" %> <%@ page import="java.sql.*" %> <%@ page import="com.google.appengine.api.rdbms.AppEngineDriver" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Sample jsp</title> <style> h1{ font-size: 16pt; background: #AAFFAA; padding: 5px; } table { border: 1px solid black } table tr th { background-color: #CCFFDD; margin: 5px; } </style> </head> <body> <h1>Sample jsp page</h1> <p>これはサンプルで用意したページです。</p> <% Connection c = null; c = DriverManager.getConnection ("jdbc:google:rdbms://…ここにCloud SQLインスタンス名を書く…:sampledata/mydb"); Statement st = c.createStatement(); ResultSet rs = st.executeQuery("SELECT * FROM persondata"); %> <table> <tr> <th>ID</th> <th>Name</th> <th>Mail</th> </tr> <% while (rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); String mail = rs.getString("mail"); %> <tr> <td><%= id %></td> <td><%= name %></td> <td><%= mail %></td> </tr> <% } c.close(); %> </table> </body> </html>
<< 前へ | 次へ >> |