libro
www.tuyano.com
Google App Engine for Java(GAE/J)プログラミング入門

データストアのCRUD (6/6)

作成:2010-05-03 19:28
更新:2010-05-10 17:26

■データストアのオブジェクト削除処理

では、削除を行うDelLinkDataServletクラスのソースコードを下に掲載しましょう。ここでは、POSTされたIDの値を取得し、これをもとにオブジェクトの削除をしています。削除は、

1.getObjectByIdで削除するオブジェクトを取得する。
2.PersistenceManagerの「deletePersistent」を呼び出し、オブジェクトを削除する。

このような手順で行います。deletePersistentは、引数に指定したオブジェクトをデータストアから削除する働きをするものです。そして、例によって最後にcloseを呼び出せばすべて完了です。

――ざっとCRUDの基本について説明をしてきましたが、データの更新や削除など「getObjectById」でオブジェクトを取得し操作する、というのが基本となっていることがよくわかります。getObjectByIdは「操作する対象のオブジェクトを取り出す」という場合、たいていのケースで用いられる重要なメソッドなのです。

さて、これでもっとも基本となる操作はできるようになりました。もちろん、もっと細かな検索処理とか、複数のクラスを連携処理するとか、覚えるべきことはいろいろありますが、とりあえずこれで簡単なデータベースを使ったアプリケーションは作れるようになったはずです。実際に簡単なサンプルを作って試してみましょう。慣れれば、データストアの操作もそう難しいものではないことがわかるはずです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

package jp.tuyano;

import java.io.IOException;

import javax.jdo.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;

public class DelLinkDataServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req,
			HttpServletResponse resp)
			throws ServletException, IOException {
		resp.setContentType("text/plain");
		resp.getWriter().println("no url...");
	}

	@Override
	protected void doPost(HttpServletRequest req,
			HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("UTF-8");
		long id = Long.parseLong(req.getParameter("id"));
		PersistenceManagerFactory factory = PMF.get();
		PersistenceManager manager = factory.getPersistenceManager();
		LinkData data = (LinkData)manager.getObjectById(LinkData.class,id);
		manager.deletePersistent(data);
		manager.close();
		resp.sendRedirect("/index.html");
	}
}
※関連コンテンツ

「Google App Engine for Java(GAE/J)プログラミング入門」に戻る