データストアの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)プログラミング入門」に戻る