⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recordmanager.java

📁 一个完整的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.gforce.currency.database;

/**
 * <p>Title: 吉力科技办公自动化系统</p>
 * <p>Description: 吉力科技办公自动化系统</p>
 * <p>Copyright: 版权所有 2003 (c) 西安吉力科技发展有限公司  Copyright (c) 2003 GForce Sceince & Technology</p>
 * <p>Company: 西安吉力科技发展有限公司 (GForce Sceince & Technology)</p>
 * @author 马登军
 * @version 1.0
 */
import com.gforce.currency.database.*;
import com.gforce.currency.*;
import java.sql.*;
import java.util.*;

public abstract class RecordManager
{

  /**
   * 通过ID字符串删除记录
   * @param strIDs ID字符串,多个ID之间使用“,”连接
   * @return 错误代码,如果小于1,说明删除错误
   */

  public int DeleteByIDs(String strIDs)
  {
    return DeleteBySQLWhere(getIDFieldName() + " in (" + strIDs + ")");
  }

  /**
   * 通过ID删除记录
   * @param intID ID值
   * @return 错误代码,如果小于1,说明删除错误
   */
  public int DeleteByID(int intID)
  {
    return DeleteBySQLWhere(getIDFieldName() + " = " + intID);
  }

  /**
   * 通过WhereSQL语句删除记录
   * @param strSQLWhere WhereSQL语句
   * @return 错误代码,如果小于1,说明删除错误
   */
  public int DeleteBySQLWhere(String strSQLWhere)
  {
    int intReturn = -100;
    int counter = 0;
    Vector vc = SQLManager.GetResultSet("select count(*) as counter from " + getTableName() + " where " + strSQLWhere);
    if (vc.size() == 1)
    {
      counter = Integer.parseInt( ( (Vector) vc.get(0)).get(0).toString());
      if (counter < 0)
      {
        return -3; //表示要删除的记录不存在
      }
    }
    else
    {
      return -3; //表示要删除的记录不存在
    }
    intReturn = SQLManager.ExcuteSQL("Delete from " + getTableName() + " where " + strSQLWhere);
    return intReturn;
  }

  /**
   * 插入从m_request获取的一条记录
   * @param m_request Request请求
   * @return 插入之后得到记录ID,如果小于1,则说明插入错误
   */
  public int InsertRecord(Request m_request)
  {
    int returnid = 0;
    int counter = 0;
    Vector vc = SQLManager.GetResultSet("select count(*) as counter from " +
                                        getTableName() +
                                        getInsertWhere(m_request) +
                                        "");
    if (vc.size() == 1)
    {
      counter = Integer.parseInt( ( (Vector) vc.get(0)).get(0).toString());
    }
    String strSQL = "Insert into " + getTableName() + " (" + getFieldsName() +
      ")  values (" + getInsertValues(m_request) + ")";
    SQLManager.ExcuteSQL(strSQL);
    vc = SQLManager.GetResultSet("select top 1 " + getIDFieldName() +
                                 " from " +
                                 getTableName() +
                                 getInsertWhere(m_request) +
                                 " order by " + getIDFieldName() +
                                 " desc");
    if (vc.size() == 1)
    {
      returnid = Integer.parseInt( ( (Vector) vc.get(0)).get(0).toString());
    }
    else
    {
      returnid = -2; //表示新插入的记录不存在,新记录插入没有成功
    }
    return returnid;
  }

  /**
   * 更新从m_request获取的一条记录
   * @param m_request  Request请求
   * @return 错误代码,小于1表示错误
   */
  public int UpdateRecord(Request m_request)
  {
    int counter = 0;
    String strUpdateDatas = getUpdateDatas(m_request);
    SystemOut.LogPrintLine(strUpdateDatas);
    int intIDFieldValue = getIDFieldValue(m_request);
    SystemOut.Log(intIDFieldValue + "");
    if (strUpdateDatas.trim().length() > 1 && intIDFieldValue > 0)
    {
      Vector vc = SQLManager.GetResultSet(
        "select count(*) as counter from " +
        getTableName() + " where " + getIDFieldName() + "=" + intIDFieldValue);
      if (vc.size() == 1)
      {
        counter = Integer.parseInt( ( (Vector) vc.get(0)).get(0).toString());
        if (counter < 0)
        {
          return -3; //表示要修改的记录不存在
        }
      }
      else
      {
        return -3; //表示要修改的记录不存在
      }
      String strSQL = "Update " + getTableName() + " set " + strUpdateDatas +
        " where " + getIDFieldName() + "=" + intIDFieldValue;
      return SQLManager.ExcuteSQL(strSQL);
    }
    else
    {
      return -106; //表示获取到的记录ID不正确或者Form字段值不正确
    }
  }

  /**
   * 从Request请求中获取更新SQL语句
   * @param m_request Request请求
   * @return  更新的SQL语句
   */
  private String getUpdateDatas(Request m_request)
  {
    String strReturnValue = "";
    strReturnValue += getUpdateNumeric(m_request);
    strReturnValue += getUpdateString(m_request);
    strReturnValue += getUpdateDateTime(m_request);
    strReturnValue += getUpdateText(m_request);
    if (strReturnValue.trim().length() > 2)
    {
      return strReturnValue.trim().substring(1);
    }
    else
    {
      return "";
    }
  }

  /**
   * 从Request请求中获取更新数值型字段值的SQL语句
   * @param m_request  Request请求
   * @return 更新数值型字段值的SQL语句
   */
  private String getUpdateNumeric(Request m_request)
  {
    StringBuffer strbufTemp = new StringBuffer();
    String[] strArray = getNumericFieldsName();
    for (int i = 0; i < strArray.length; i++)
    {
      if (strArray[i].trim().length() > 0)
      {
        strbufTemp.append(", " + strArray[i] + "=" +
                          m_request.GetFloat(UpdateParament(strArray[i])));
      }
    }
    return strbufTemp.toString();
  }

  /**
   * 从Request请求中获取更新字符串类型字段值的SQL语句
   * @param m_request  Request请求
   * @return 更新字符串类型字段值的SQL语句
   */
  private String getUpdateString(Request m_request)
  {
    StringBuffer strbufTemp = new StringBuffer();
    String[] strArray = getStringFieldsName();
    for (int i = 0; i < strArray.length; i++)
    {
      if (strArray[i].trim().length() > 0)
      {
        strbufTemp.append(", " + strArray[i] + "='" +
                          m_request.GetString(UpdateParament(strArray[i])).replaceAll("'", "''") +
                          "'");
      }
    }
    return strbufTemp.toString();
  }

  /**
   * 从Request请求中获取更新日期时间类型字段值的SQL语句
   * @param m_request  Request请求
   * @return 更新日期时间类型字段值的SQL语句
   */
  private String getUpdateDateTime(Request m_request)
  {
    StringBuffer strbufTemp = new StringBuffer();
    String[] strArray = getDatetimeFieldsName();
    for (int i = 0; i < strArray.length; i++)
    {
      if (strArray[i].trim().length() > 0)
      {
        if (m_request.GetString(UpdateParament(strArray[i])).length() > 6)
        {
          strbufTemp.append(", " + strArray[i] + "='" + m_request.GetString(UpdateParament(strArray[i])) +
                            "'");
        }
        else
        {
          strbufTemp.append(", " + strArray[i] + "=null");
        }
      }
    }
    return strbufTemp.toString();
  }

  /**
   * 从Request请求中获取更新大字符串类型字段值的SQL语句
   * @param m_request  Request请求
   * @return 更新大字符串类型字段值的SQL语句
   */
  private String getUpdateText(Request m_request)
  {
    StringBuffer strbufTemp = new StringBuffer();
    String[] strArray = getTextFieldsName();
    for (int i = 0; i < strArray.length; i++)
    {
      if (strArray[i].trim().length() > 0)
      {
        strbufTemp.append(", " + strArray[i] + "='" +
                          m_request.GetString(UpdateParament(strArray[i])).replaceAll("'", "''") +
                          "'");
      }
    }
    return strbufTemp.toString();
  }

  /**
   * 从Request请求中获取更新时的ID字段的值
   * @param m_request Request请求
   * @return ID字段值
   */
  private int getIDFieldValue(Request m_request)
  {
    return m_request.GetInt(UpdateParament(getIDFieldName()));
  }

  /**
   * 从Request请求中获取插入记录查询的SQL语句
   * @param m_request Request请求
   * @return 插入记录查询的SQL语句
   */
  private String getInsertWhere(Request m_request)
  {
    String strTemp = "";
    strTemp += getNumericInsertWhere(m_request);
    strTemp += getStringInsertWhere(m_request);
    strTemp += getDatetimeInsertWhere(m_request);
    if (strTemp.trim().length() > 3)
    {
      strTemp = " where " + strTemp.substring(4);
    }
    return strTemp;
  }

  /**
   * 从Request请求中获取更新记录查询的SQL语句
   * @param m_request Request请求
   * @return 更新记录查询的SQL语句
   */
  private String getUpdateWhere(Request m_request)
  {
    String strTemp = "";
    strTemp += getNumericUpdateWhere(m_request);
    strTemp += getStringUpdateWhere(m_request);
    strTemp += getDatetimeUpdateWhere(m_request);
    if (strTemp.trim().length() > 3)
    {
      strTemp = " where (not " + getIDFieldName() + "=" +
        getIDFieldValue(m_request) + ") " + strTemp;
    }
    else
    {
      strTemp = " where 1=2 ";
    }
    return strTemp;
  }

  /**
   * 从Request请求中获取插入记录中数值型字段的查询SQL语句
   * @param m_request Request请求
   * @return 插入记录中数值型字段的查询SQL语句
   */
  private String getNumericInsertWhere(Request m_request)
  {
    StringBuffer strbufTemp = new StringBuffer();
    String[] strArray = getNumericFieldsName();
    for (int i = 0; i < strArray.length; i++)
    {
      if (strArray[i].trim().length() > 0)
      {
        strbufTemp.append(" and " + strArray[i] + "=" +
                          m_request.GetFloat(InsertParament(strArray[i])));
      }
    }
    return strbufTemp.toString();
  }

  /**
   * 从Request请求中获取插入记录中字符串类型字段的查询SQL语句
   * @param m_request Request请求
   * @return 插入记录中字符串类型字段的查询SQL语句
   */
  private String getStringInsertWhere(Request m_request)
  {
    StringBuffer strbufTemp = new StringBuffer();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -