SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Google App Engine for JavaでMySQLを使ってみる

Google Cloud SQLとBigtableのコード記述と処理スピードを比較・検討してみる

Google App Engine for JavaでMySQLを使ってみる(2)

  • X ポスト
  • このエントリーをはてなブックマークに追加

2. Java Servlet Controller -> Model

リスト2 サーブレット(bomSvlt.java)
package  com.business;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
@SuppressWarnings("serial")
public class bomSvlt extends HttpServlet{
    @Override
    public void doGet (HttpServletRequest req, HttpServletResponse res) 
                                            throws ServletException, IOException{
        String rv = "";
        req.setCharacterEncoding("utf-8");
        res.setContentType("text/html; charset=utf-8");
        PrintWriter out;
        out = res.getWriter();        
        String table = req.getParameter("table");  //(1)
        String mode = req.getParameter("mode");    //(2)
        bomBean bom = new bomBean();
        if(table.equals("item_info")) {
            if(mode.equals("rev")) {               // For Cloud SQL
                String item_no = req.getParameter("item_no");    
                rv = bom.revltemInfo(item_no);
            }else if(mode.equals("rev_kv")) {      // For Bigtable    
                String item_no = req.getParameter("item_no");    
                rv = bom.revltemInfo_kv(item_no);
            }
        }
            :
        out.println(rv);
        out.close();
    }

    public void doPost (HttpServletRequest req, HttpServletResponse res) 
                                              throws ServletException, IOException{
        String rv = "";
        req.setCharacterEncoding("utf-8");
        res.setContentType("text/html; charset=utf-8");
        PrintWriter out;
        out = res.getWriter();        
        String table = req.getParameter("table");    
        String mode = req.getParameter("mode");
        bomBean bom = new bomBean();        
        if(table.equals("item_info")){
            String item_no = req.getParameter("item_no");
            String item_name = req.getParameter("item_name");
            String final_flag = req.getParameter("final_flag");
            String vendor_no = req.getParameter("vendor_no");
            String vendor_name = req.getParameter("vendor_name");
            // For Cloud SQL
            if(mode.equals("add")){
                rv = bom.addItemInfo(item_no, item_name, final_flag, vendor_no, vendor_name);
            }else if(mode.equals("upd")){
                    rv = bom.updItemInfo(item_no, item_name, final_flag, vendor_no, vendor_name);
            }else if(mode.equals("del")){
                rv = bom.delItemInfo(item_no);                
            }
            // For Bigtable1(パターン1)
            else if (mode.equals("add_kv")){
                rv = bom.addItemInfo_kv(item_no, item_name, final_flag, vendor_no, vendor_name);    
            }else if (mode.equals("upd_kv")){
                rv = bom.updItemInfo_kv(item_no, item_name, final_flag, vendor_no, vendor_name);    
            }else if (mode.equals("del_kv")){
                rv = bom.delItemInfo_kv(item_no);    
            }            
            // For Bigtable2(パターン2)
            else if (mode.equals("add_kv2")){
                rv = bom.addItemInfo_kv2(item_no, item_name, final_flag, vendor_no, vendor_name);    
            }else if (mode.equals("upd_kv2")){
                rv = bom.updItemInfo_kv2(item_no, item_name, final_flag, vendor_no, vendor_name);    
            }
                    :
        }
        out.println(rv);
        out.close();
    }
}

 jQueryから送信されたリクエストは、リスト2のサーブレット(bomSvlt)では参照系はdoGetで、更新系はdoPostで受け取り、(1)で操作対象のテーブル名(Bigtableではkind名)、(2)では処理モード(登録・参照・更新・削除)を指定し、対応するビーンズメソッドを呼び出します。

次のページ
3. Java Beans

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Google App Engine for JavaでMySQLを使ってみる連載記事一覧
この記事の著者

清野 克行(セイノ カツユキ)

慶應義塾大学工学部電子物理専攻卒。日本IBM、日本HPで、製造装置業を中心とした業務系/基幹業務系システムのSE/マーケティングや、分散アプリケーションによる社内業務システム開発などに携わる。現在は、クラウドやAjax関連の/ソフト開発/書籍執筆/セミナー講師/コンサルティング、などを行っている。情...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6499 2012/04/13 10:30

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング