项目中几个好的方法

	/**
	 * 根据操作类型(add 还是 update)从Data Entity中的Hashtable中获取所有被使用过的字段名称
	 * 
	 * @return String[]
	 * @param String1:
	 * @param String2
	 *            update操作不使用该返回值
	 * @throws ITreasuryDAOException
	 */

	public String[] getAllFieldNameBuffer(ITreasuryBaseDataEntity dataEntity,
			int operationType) throws ITreasuryDAOException {
		StringBuffer buffer1 = new StringBuffer();// 名称
		StringBuffer buffer2 = new StringBuffer();// 问号

		HashMap allFields = dataEntity.gainAllUsedFieldsAndValue();
		Set allFieldNames = allFields.keySet();

		int j = 1;
		Iterator it = allFieldNames.iterator();
		while (it.hasNext()) {
			String fieldName = (String) it.next();
			log.debug("Used Field Name: " + fieldName);

			if (operationType == DAO_OPERATION_ADD) {
				buffer1.append(fieldName + ",");
			} else if (operationType == DAO_OPERATION_UPDATE
					|| operationType == DAO_OPERATION_FIND) {
				if (operationType == DAO_OPERATION_UPDATE
						&& fieldName.compareToIgnoreCase("id") == 0)// 更新操作不对id进行处理
					continue;
				// do not modify any blank at below codes because "= ?," is
				// match condition for split field name
				if (operationType == DAO_OPERATION_FIND)
					buffer1.append(fieldName + " = ? AND ");
				else
					buffer1.append(fieldName + " = ?,");
			} else {
				throw new ITreasuryDAOException(
						"DAO getAllFieldNameBuffer,错误的操作类型", null);
			}

			buffer2.append("?,");
		}
		String strBuffer1 = buffer1.toString();
		String strBuffer2 = buffer2.toString();

		// log.debug("----before cut-------");
		// log.debug(strBuffer1+strBuffer2);

		if (operationType == DAO_OPERATION_FIND)// cut last "and"
			strBuffer1 = strBuffer1.substring(0, (strBuffer1.length() - 4));
		else
			// cut last ","
			strBuffer1 = strBuffer1.substring(0, (strBuffer1.length() - 1));
		strBuffer2 = strBuffer2.substring(0, (strBuffer2.length() - 1));
		// log.debug("----afer cut-------");
		// log.debug(strBuffer1+strBuffer2);

		String[] strs = { strBuffer1, strBuffer2 };
		return strs;

	}

 此博仅个人可见。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值