データストアのCRUD (2/6)
作成:2010-05-03 17:03
更新:2010-05-10 17:23
更新:2010-05-10 17:23
■JDOによるオブジェクトの永続化
では、サーブレットを作成しましょう。これは、jp.tuyanoパッケージ内に「AddLinkDataServlet.java」というソースコードファイルで作成します。(下のリスト参照)ポイントを以下に整理しておきましょう。
1.LinkDataインスタンスの作成
まずは、保存するLinkDataインスタンスを作成します。まずはgetParameterで送信されてきたデータを取り出し、Dateインスタンスなどはその場で生成し、それらの値を引数に用意してnew LinkDataします。前にも触れましたが、このとき、IDの値は不要です。
2.PersistenceManagerFactory/PersistenceManagerの用意
まずは、PersistenceManagerFactoryを取得し、そこからPersistenceManagerを取得します。これはJDO操作の基本でしたね。
3.makePersistentで永続化する
続いて、保存するインスタンスをPersistenceManagerインスタンスの「makePersistent」で永続化します。これは、引数に永続化したいオブジェクトを渡して呼び出すだけです。
4.PersistenceManagerの開放
最後に、「close」を呼び出してPersistenceManagerを開放します。これで作業は完了です。
このように、JDOを使ってデータストアに新しいオブジェクトを保存するには、makePersistentというメソッドを新たに覚えるだけです。JDOQLなどもまったく必要としません。
1.LinkDataインスタンスの作成
まずは、保存するLinkDataインスタンスを作成します。まずはgetParameterで送信されてきたデータを取り出し、Dateインスタンスなどはその場で生成し、それらの値を引数に用意してnew LinkDataします。前にも触れましたが、このとき、IDの値は不要です。
2.PersistenceManagerFactory/PersistenceManagerの用意
まずは、PersistenceManagerFactoryを取得し、そこからPersistenceManagerを取得します。これはJDO操作の基本でしたね。
3.makePersistentで永続化する
続いて、保存するインスタンスをPersistenceManagerインスタンスの「makePersistent」で永続化します。これは、引数に永続化したいオブジェクトを渡して呼び出すだけです。
4.PersistenceManagerの開放
最後に、「close」を呼び出してPersistenceManagerを開放します。これで作業は完了です。
このように、JDOを使ってデータストアに新しいオブジェクトを保存するには、makePersistentというメソッドを新たに覚えるだけです。JDOQLなどもまったく必要としません。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
package jp.tuyano;
import java.io.IOException;
import java.net.URL;
import java.util.*;
import javax.jdo.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class AddLinkDataServlet 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");
String title = req.getParameter("title");
String url = req.getParameter("url");
String comment = req.getParameter("comment");
Date date = Calendar.getInstance().getTime();
LinkData data = new LinkData(title,url,comment,date);
PersistenceManagerFactory factory = PMF.get();
PersistenceManager manager = factory.getPersistenceManager();
try {
manager.makePersistent(data);
} finally {
manager.close();
}
resp.sendRedirect("/index.html");
}
}
※関連コンテンツ
「Google App Engine for Java(GAE/J)プログラミング入門」に戻る