public Boolean addHighLevelColumn(String tableName,String mapRulesJsonFile, String columnLowLevelName,
			String columnHighLevelName)
	{
		//
		JSONObject rulesLowToHighLevel = null;//  json
		InputStreamReader br;
		try {
			br = new InputStreamReader(new FileInputStream(mapRulesJsonFile), "UTF-8");
			JSONTokener jsonTokerner = new JSONTokener(br);
			rulesLowToHighLevel = new JSONObject(jsonTokerner);
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
		if (!addNewColumn(tableName, columnHighLevelName, "TEXT"))
			return false;
		String sql = "select id," + columnLowLevelName + ","
				+ columnHighLevelName + " from " + tableName + "";
		ResultSet rs;
		int iRow = 0;
		String strLowLevelContent = "";
		String strHighLevelContent = "";
		try {
			rs = executeUpdateQuery(sql);
			rs.last();
			int rowNum = rs.getRow();
			ClsTime ct = new ClsTime(rowNum / NumPerFlicker);// 50Ϊһȵ
			ct.estimateStart(rowNum);
			rs.first();
			rs.previous();
			while (rs.next()) {
				iRow = rs.getRow();
				ct.estimating(iRow);
				if (rs.getString(columnLowLevelName) != null
						&& rs.getString(columnHighLevelName) != null
						&& rs.getString(columnLowLevelName) != ""
						&& rs.getString(columnHighLevelName) != "") {// ѾдֵֶҪ
					continue;
				}
				if (rs.getString(columnLowLevelName) != null) {
					strLowLevelContent = rs.getString(columnLowLevelName);
				}
				if(rulesLowToHighLevel.has(strLowLevelContent))
				{
					try {
						strHighLevelContent=rulesLowToHighLevel.getString(strLowLevelContent);
					} catch (JSONException e) {
						e.printStackTrace();
					}
				}
				else
				{
					System.out.println("ӳڲ㣡"+"ֶΪ"+strLowLevelContent+"\n");
				}
				rs.updateString(columnHighLevelName,strHighLevelContent);
				rs.updateRow();
			}
			rs.close();
			ct.estimateEnd();
			return true;
		} catch (SQLException e) {
			System.out.println("ڴ" + iRow + "еʱ");
			e.printStackTrace();
			return false;
		}
	}