📄 recordmanager.java
字号:
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 + -