详解Java EE中SQL语句的自动构造方法

探索2025-11-05 07:36:2137667

/**

 * @version: 1.1

详解Java EE中SQL语句的自动构造方法

 * @Time: 2008.03.02

 */

package com.river.page ;

import java.util.*;

import javax.servlet.http.HttpServletRequest;

public class PageUtil {

  private HttpServletRequest request = null ;

  public PageUtil(){

 }

  public void init(HttpServletRequest _request){

    this.request = _request ;

 }

  public void clear(){

    if(this.request != null){

      this.request = null ;

   }

  }

  public String get(String elementName){

    if(request == null || request.getParameter(elementName) == null){

      return "";

   }else{

      return request.getParameter(elementName);

   }

  }

  public String get(HttpServletRequest _request,详解String elementName){

    init(_request);

    return get(elementName);

 }

  public String getSQL(HttpServletRequest _request){

    init(_request);

 return getSQL();

 }

  public String getSQL(){

    String sqlstr = "";

    String c_table = get("c_table");

    String c_genre = get("c_genre");

    String c_where = get("c_where");

    if(c_genre == null || c_genre.equals("")){

      return "the action is null/empty";

   }

    if(c_table == null || c_table.equals("")){

      return "unknow table/empty" ;

   }

    if(c_genre.equalsIgnoreCase("INSERT")){

      java.util.Enumeration arg_names = request.getParameterNames();

      String colstr = "",valstr = "";

      String arg_name,pre_name,end_name ;

      while(arg_names.hasMoreElements()){

        arg_name = String.valueOf(arg_names.nextElement());

        if(arg_name.length() < 2){

          continue;

       }

        pre_name = arg_name.substring(0,2);

        end_name = arg_name.substring(2);

        if(pre_name.equalsIgnoreCase("i_")){

          colstr = colstr+","+end_name;

          if(get(arg_name).equals("")){

            valstr = valstr+",NULL";

         }else{

            valstr = valstr + "," + String.valueOf(get(arg_name));

         }

        }else if(pre_name.equalsIgnoreCase("s_")){

          colstr = colstr+","+end_name;

          if(get(arg_name).equals("")){

            valstr = valstr+",NULL";

         }else{

            valstr = valstr+","+get(arg_name).replaceAll("","")+"";

         }

        }

      }

      if(!colstr.equals("")){

        colstr = colstr.substring(1);

        valstr = valstr.substring(1);

     }

      sqlstr = "INSERT INTO "+c_table+" ("+colstr+") VALUES ("+valstr+")";

      return sqlstr;

    }else if(c_genre.equalsIgnoreCase("UPDATE")){

      java.util.Enumeration arg_names = request.getParameterNames();

      String colstr = "";

      String arg_name,pre_name,end_name ;

      while(arg_names.hasMoreElements()){

        arg_name = String.valueOf(arg_names.nextElement()).trim();

        if(arg_name.length() < 2){

          continue;

       }

        pre_name = arg_name.substring(0,2);

        end_name = arg_name.substring(2);

        if(pre_name.equalsIgnoreCase("i_")){

          if(get(arg_name).equals("")){

            colstr += ","+end_name+"=NULL";

         }else{

            colstr += ","+end_name+"="+get(arg_name);

         }

        }else if(pre_name.equalsIgnoreCase("s_")){

          if(get(arg_name).equals("")){

            colstr += ","+end_name+"="+get(arg_name);

         }else{

            colstr += ","+end_name+"="+get(arg_name).replaceAll("","")+"";

         }

        }

      }

      if(!colstr.equals("")){

        colstr = colstr.substring(1);

     }

      sqlstr = "UPDATE "+c_table+" SET "+colstr;

      if(!c_where.equals("")){

        sqlstr += " WHERE "+c_where;

     }

      return sqlstr;

    }else if(c_genre.equalsIgnoreCase("DELETE")){

      sqlstr = "DELETE FROM "+c_table;

      if(c_where != null && !c_where.equals("")){

        sqlstr += " WHERE "+c_where;

     }

    }else{

      com.river.debug.Debug.show("unknow action type : "+c_genre);

      return null;

   }

    return sqlstr;

  }

  public String toString(){

    return "version 1.0, date 2005.03.02, author river";

 }

}

本文地址:http://www.bzve.cn/html/49b1899932.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

免费改照片大小KB的软件推荐(简单易用的工具帮助您快速调整照片大小)

多喝牛奶的坏处(揭秘牛奶的负面影响,远离多喝牛奶的误区)

电视高温带来的影响及应对措施(电视高温对设备寿命和观看体验的影响及解决方法)

王金蝶(用智能技术驱动企业数字化转型,王金蝶引领行业风向)

如何更换SSD硬盘(教你一步步更换电脑的SSD硬盘,提升系统速度和性能)

正确连接路由器的方法(建立稳定网络的关键步骤与技巧)

多喝牛奶的坏处(揭秘牛奶的负面影响,远离多喝牛奶的误区)

华为麒麟系统(华为麒麟芯片)

友情链接

滇ICP备2023006006号-39