BeanUtils getProperty setProperty判断项目值是否变化

			// 只有在发生项目变更的情况下,updateShop才需要插入到数据库
			boolean haveItemChanged = false;
			String[] compareItemKeys = new String[] { "host_name", "host_mobile", "host_post" };
			for (String compareItemKey : compareItemKeys) {
				// 项目是否发生变更
				if (updateUpdatedItem(oldShop, updateShop, compareItemKey, (String) dynaBean.get(compareItemKey))) {
					haveItemChanged = true;
				}
			}

	private boolean updateUpdatedItem(Shop oldShop, Shop updateShop, String itemKey, String newItemValue)
			throws Exception {
		// 项目是否发生变更
		boolean itemChanged = false;

		String oldItemValue = BeanUtils.getProperty(oldShop, itemKey);

		if (StringUtils.isBlank(oldItemValue) && StringUtils.isNotBlank(newItemValue)) {
			BeanUtils.setProperty(updateShop, itemKey, newItemValue);
			itemChanged = true;
		} else if (StringUtils.isNotBlank(oldItemValue) && StringUtils.isNotBlank(newItemValue)) {
			if (!StringUtils.equals(oldItemValue, newItemValue)) {
				BeanUtils.setProperty(updateShop, itemKey, newItemValue);
				itemChanged = true;
			}
		}

		return itemChanged;
	}

你可能感兴趣的:(getProperty)