CodeZine(コードジン)

特集ページ一覧

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

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2012/04/13 10:30

目次

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)では処理モード(登録・参照・更新・削除)を指定し、対応するビーンズメソッドを呼び出します。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

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

著者プロフィール

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

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

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5