クラウド上でMySQLインスタンスを利用できる、
Google Cloud SQLのドキュメントを翻訳してみます。
Google Cloud SQLは現在のところはプレビューとなっています。
しかし、翻訳の内部でも書いていますが、
もうすぐ(soon)、課金についての発表があるそうです。
Google Cloud SQLのドキュメントのうち、
Getting Started:Using Java(はじめに:Java)
を翻訳してみます。
第1回は
こちら、第2回は
こちら、第3回は
こちら、
第4回は
こちら、第5回は
こちら、第6回は
こちら、
第7回は
こちらです。
データベースへの接続と投稿
以下のコードでGuestbookServletのdoGet()メソッドを上書きして、instance_nameの部分をあなたのインスタンス名に書き直してください。このコードは以下の動作を行います:
- getConnection()メソッドを呼び出して接続を初期化し、インスタンス名を渡します。
- ウェブフォームから内容を収集して、サーバーにpostします。
- guestbook.jsp(このドキュメントの後のほうで作成します)というファイルに、ユーザーをリダイレクトします。
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
PrintWriter out = resp.getWriter();
Connection c = null;
try {
DriverManager.registerDriver(new AppEngineDriver());
c = DriverManager.getConnection("jdbc:google:rdbms://instance_name/guestbook");
String fname = req.getParameter("fname");
String content = req.getParameter("content");
if (fname == "" || content == "") {
out.println("You are missing either a message or a name! Try again! Redirecting in 3 seconds...");
} else {
String statement ="INSERT INTO entries (guestName, content) VALUES( ? , ? )";
PreparedStatement stmt = c.prepareStatement(statement);
stmt.setString(1, fname);
stmt.setString(2, content);
int success = 2;
success = stmt.executeUpdate();
if(success == 1) {
out.println("Success! Redirecting in 3 seconds...");
} else if (success == 0) {
out.println("Failure! Please try again! Redirecting in 3 seconds...");
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (c != null)
try {
c.close();
} catch (SQLException ignore) {
}
} resp.setHeader("Refresh","3; url=/guestbook.jsp");
}
上の例では、Google Cloud SQLインスタンスにrootユーザーとして接続していますが、インスタンスに特定のデータベースのユーザーとして接続することもできます:
Connection c = DriverManager.getConnection("jdbc:google:rdbms://instance_name/database", "user", "password");
database
[任意]接続するデータベース
user
[任意]接続するデータベースのユーザー
password
[任意]ユーザーのパスワード
データベースのユーザーの生成方法についての情報は、
Library Access for Usersを参照してください。
インストール不要・無料のKaede翻訳ツール:
http://kaedetrans.appspot.com/