當前位置: 首頁>>代碼示例>>Java>>正文


Java Map.replace方法代碼示例

本文整理匯總了Java中java.util.Map.replace方法的典型用法代碼示例。如果您正苦於以下問題:Java Map.replace方法的具體用法?Java Map.replace怎麽用?Java Map.replace使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在java.util.Map的用法示例。


在下文中一共展示了Map.replace方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: getContests

import java.util.Map; //導入方法依賴的package包/類
@ApiOperation("獲取比賽列表")
@GetMapping
public ResponseEntity getContests(@RequestParam("page") int page,
                                  @RequestParam("page_size") int pageSize) {
    PageRowBounds pager = new PageRowBounds(page, pageSize);
    Map<String, Object> data = new HashMap<>();
    List<Map<String, Object>> contests = contestService.getValidContests(pager);
    for (Map<String, Object> contest: contests) {
        if (contest.get("password") != null) {
            contest.replace("password", "You can't see it!");
        }
    }
    data.put("data", contests);
    data.put("total", pager.getTotal());
    return new ResponseEntity(data);
}
 
開發者ID:Eagle-OJ,項目名稱:eagle-oj-api,代碼行數:17,代碼來源:ContestController.java

示例2: setTranslation

import java.util.Map; //導入方法依賴的package包/類
public boolean setTranslation(final String key, final String lang, final String value)
{
    if (lang == null || lang.isEmpty())
        throw new IllegalArgumentException("Lang not valid");
    if (value == null)
        throw new IllegalArgumentException("Value not valid");

    final Map<String, String> trans = this.getKeyTranslation(key);

    if (!trans.keySet().contains(lang))
        throw new IllegalArgumentException("Lang not valid");

    if (trans.get(lang).equals(value))
        return false;

    return trans.replace(lang, trans.get(lang), value);
}
 
開發者ID:Leviathan-Studio,項目名稱:MineIDE,代碼行數:18,代碼來源:Translation.java

示例3: setSelectedAllData

import java.util.Map; //導入方法依賴的package包/類
public void setSelectedAllData(boolean selected) {
    for (Map<String, Object> datum : plot.getData()) {
        datum.replace("Selected", selected);
    }

    plot.setData(plot.getData());
}
 
開發者ID:CIRDLES,項目名稱:Squid,代碼行數:8,代碼來源:AbstractTopsoilPlot.java

示例4: testReplaceIfMapped

import java.util.Map; //導入方法依賴的package包/類
@Test(dataProvider = "mapsWithObjectsAndStrings")
void testReplaceIfMapped(String desc, Supplier<Map<Object, Object>> ms, Object val) {
    // remove odd keys
    // call replace for all keys[]
    // odd keys should remain absent, even keys should be mapped to EXTRA, no value from keys[] should be in map
    Map<Object, Object> map = ms.get();
    Object[] keys = map.keySet().toArray();
    int expectedSize1 = 0;
    removeOddKeys(map, keys);
    int expectedSize2 = map.size();

    for (int i = 0; i < keys.length; i++) {
        Object retVal = map.replace(keys[i], val);
        if (i % 2 == 0) { // even: still in map, should be replaced
            assertEquals(retVal, keys[i],
                    String.format("replaceIfMapped: retVal(%s[%d])", desc, i));
            assertEquals(val, map.get(keys[i]),
                    String.format("replaceIfMapped: get(%s[%d])", desc, i));
            assertTrue(map.containsKey(keys[i]),
                    String.format("replaceIfMapped: containsKey(%s[%d])", desc, i));
            expectedSize1++;
        } else { // odd: was removed, should not be replaced
            assertNull(retVal,
                    String.format("replaceIfMapped: retVal(%s[%d])", desc, i));
            assertNull(map.get(keys[i]),
                    String.format("replaceIfMapped: get(%s[%d])", desc, i));
            assertFalse(map.containsKey(keys[i]),
                    String.format("replaceIfMapped: containsKey(%s[%d])", desc, i));
        }
        assertFalse(map.containsValue(keys[i]),
                String.format("replaceIfMapped: !containsValue(%s[%d])", desc, i));
    }
    assertTrue(map.containsValue(val),
            String.format("replaceIfMapped: containsValue(%s[%s])", desc, val));
    assertEquals(map.size(), expectedSize1,
            String.format("map expected size#1 m%d != k%d", map.size(), expectedSize1));
    assertEquals(map.size(), expectedSize2,
            String.format("map expected size#2 m%d != k%d", map.size(), expectedSize2));

}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:41,代碼來源:InPlaceOpsCollisions.java

示例5: checkContestValid

import java.util.Map; //導入方法依賴的package包/類
private void checkContestValid(Map<String, Object> contest) {
    if ((int)contest.get("status") == 1) {
        BigInteger bigInteger = (BigInteger)contest.get("end_time");
        if (bigInteger.longValue()<System.currentTimeMillis()) {
            Long cid = (Long)contest.get("cid");
            int official = (int) contest.get("official");
            closeContest(cid.intValue(), official);
            contest.replace("status", 2);
        }
    }
}
 
開發者ID:Eagle-OJ,項目名稱:eagle-oj-api,代碼行數:12,代碼來源:ContestService.java

示例6: testReplaceOldValue

import java.util.Map; //導入方法依賴的package包/類
@Test(dataProvider = "mapsWithObjectsAndStrings")
void testReplaceOldValue(String desc, Supplier<Map<Object, Object>> ms, Object val) {
    // remap odds to val
    // call replace to replace for val, for all keys
    // check that all keys map to value from keys array
    Map<Object, Object> map = ms.get();
    Object[] keys = map.keySet().toArray();
    boolean replaced;
    remapOddKeys(map, keys, val);

    for (int i = 0; i < keys.length; i++) {
        replaced = map.replace(keys[i], val, keys[i]);
        if (i % 2 == 0) { // even: original mapping, should not be replaced
            assertFalse(replaced,
                    String.format("replaceOldValue: retVal(%s[%d])", desc, i));
        } else { // odd: new mapping, should be replaced
            assertTrue(replaced,
                    String.format("replaceOldValue: get(%s[%d])", desc, i));
        }
        assertEquals(keys[i], map.get(keys[i]),
                String.format("replaceOldValue: get(%s[%d])", desc, i));
        assertTrue(map.containsKey(keys[i]),
                String.format("replaceOldValue: containsKey(%s[%d])", desc, i));
        assertTrue(map.containsValue(keys[i]),
                String.format("replaceOldValue: containsValue(%s[%d])", desc, i));
    }
    assertFalse(map.containsValue(val),
            String.format("replaceOldValue: !containsValue(%s[%s])", desc, val));
    assertEquals(map.size(), keys.length,
            String.format("map expected size m%d != k%d", map.size(), keys.length));
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:32,代碼來源:InPlaceOpsCollisions.java

示例7: getLearningAlgorithmsMetricResultsForOneDatasetFile

import java.util.Map; //導入方法依賴的package包/類
/**
 * Returns one row of losses for {@link IMetric}s for all the {@link ILearningAlgorithm}s
 * evaluated for one {@link DatasetFile} to be printed for in the console in from of a string.
 * 
 * @param file the {@link DatasetFile}
 * @param datasetFileIndex the index of the dataset file in the list of {@link DatasetFile}s.
 * @param valuesColumnWidth the column width
 * @param firstColumnWidth the first column width
 * @param totalWidth the total width of the table
 * @return the string output to be printed for all the algorithms
 */
private String getLearningAlgorithmsMetricResultsForOneDatasetFile(IDataset<?, ?, ?> dataset, int datasetFileIndex,
      int valuesColumnWidth, int firstColumnWidth, int totalWidth) {
   StringBuilder generatedEvaluationOutput = new StringBuilder();
   generatedEvaluationOutput.append(StringUtils.LINE_BREAK);
   generatedEvaluationOutput.append(StringUtils.repeat(StringUtils.DASH, totalWidth));
   generatedEvaluationOutput.append(StringUtils.LINE_BREAK);

   generatedEvaluationOutput.append(getCenteredString(DATASET, firstColumnWidth));
   generatedEvaluationOutput.append(getCenteredString(dataset.getDatasetFile().getFile().getName(), totalWidth - firstColumnWidth));
   generatedEvaluationOutput.append(StringUtils.LINE_BREAK);
   for (IMetric<?, ?> metric : metrics) {
      generatedEvaluationOutput.append(getCenteredString(metric.toString(), firstColumnWidth));
      for (ILearningAlgorithm learningAlgorithm : learningAlgorithms) {
         EvaluationResult result = getEvaluationResultForSet(learningAlgorithm, dataset);
         Map<IMetric<?, ?>, double[]> metricsWithLossArray = meanAndStandardDeviation.get(learningAlgorithm);
         if (result != null) {
            double[] losses = metricsWithLossArray.get(metric);
            losses[datasetFileIndex] = (double) result.getLossForMetric(metric);
            metricsWithLossArray.replace(metric, losses);
            generatedEvaluationOutput.append(getCenteredString(String.valueOf(result.getLossForMetric(metric)), valuesColumnWidth));
         } else {
            generatedEvaluationOutput.append(getCenteredString(NOT_EVALUATED, valuesColumnWidth));
         }
         meanAndStandardDeviation.replace(learningAlgorithm, metricsWithLossArray);
      }
      generatedEvaluationOutput.append(StringUtils.LINE_BREAK);
   }
   generatedEvaluationOutput.append(getEvaluationStringResult(dataset, valuesColumnWidth, firstColumnWidth));
   generatedEvaluationOutput.append(getCenteredString(StringUtils.EMPTY_STRING, firstColumnWidth));
   for (int i = 0; i < learningAlgorithms.size(); i++) {
      generatedEvaluationOutput.append(getCenteredString(StringUtils.EMPTY_STRING, valuesColumnWidth));
   }
   return generatedEvaluationOutput.toString();
}
 
開發者ID:Intelligent-Systems-Group,項目名稱:jpl-framework,代碼行數:46,代碼來源:EvaluationsOutputGenerator.java

示例8: testReplace

import java.util.Map; //導入方法依賴的package包/類
/**
 * 新增
 * replace(key,value)
 * replace(key,oldValue,newValue)
 * replaceAll(BiFunction fun)
 */
@Test
public void testReplace() {
    Map<String, String> hashMap = Maps.newHashMap();
    hashMap.put("k1", "v1");
    hashMap.put("k3", "v3");
    hashMap.put("k6", "v6");

    // replace 替換指定key的value
    String replaceValue = hashMap.replace("k6", "haha6");
    System.out.println("map replace key k6 then map=" + hashMap + ", and the return value=" + replaceValue);

    System.out.println("\n-------------------------------------------\n");

    // replace 替換指定key和oldValue的數據,如果key和oldValue對應不上則替換失敗
    boolean isReplaceOldValue = hashMap.replace("k6", "what?", "heng");
    System.out.println("replace map by key and oldValue first try isReplaceOldValue=" + isReplaceOldValue);
    boolean isReplaceOldValue2 = hashMap.replace("k6", "haha6", "heng");
    System.out.println("replace map by key and oldValue second try isReplaceOldValue2=" + isReplaceOldValue2);

    System.out.println("\n-------------------------------------------\n");

    // replaceAll, 根據給定的key和value計算要替換的數據
    hashMap.replaceAll((k, v) -> {
        if (k.equals("k3") && v.equals("v3")) {
            return "hahahahaha";
        }
        return v;
    });

    System.out.println("biMap replaceAll = " + hashMap);
}
 
開發者ID:cbooy,項目名稱:cakes,代碼行數:38,代碼來源:MapNewFuturesDemo.java

示例9: addItemToCart

import java.util.Map; //導入方法依賴的package包/類
/**
 * @param movieId
 * @param qty
 * @param session
 * @return
 */
@GetMapping("/cart/add")
public @ResponseBody
String addItemToCart(@RequestParam("movieId") String movieId, @RequestParam("quantity") int qty,
                     HttpSession session) {

    MovieCart movieCart;

    if (session.getAttribute(SESSION_ATTR_MOVIE_CART) == null) {
        log.info("No Cart Exists for the session, creating one");
        movieCart = new MovieCart();
        movieCart.setOrderId(UUID.randomUUID().toString());
    } else {
        log.info("Cart Exists for the session, will be updated");
        movieCart = (MovieCart) session.getAttribute(SESSION_ATTR_MOVIE_CART);
    }

    log.info("Adding/Updating {} with Quantity {} to cart ", movieId, qty);

    Map<String, Integer> movieItems = movieCart.getMovieItems();

    if (movieItems.containsKey(movieId)) {
        movieItems.replace(movieId, qty);
    } else {
        movieItems.put(movieId, qty);
    }

    log.info("Movie Cart:{}", movieCart);

    //update the session back
    session.setAttribute(SESSION_ATTR_MOVIE_CART, movieCart);

    return String.valueOf(movieCart.getMovieItems().size());
}
 
開發者ID:redhat-developer-demos,項目名稱:popular-movie-store,代碼行數:40,代碼來源:ShoppingCartController.java

示例10: shouldRouteCorrectly

import java.util.Map; //導入方法依賴的package包/類
@Test
public void shouldRouteCorrectly() throws Exception {

    try (DrinkWaterApplication app = DrinkWaterApplication.create("routing-test",
            options().use(RoutingApplicationFromConfigFile.class).autoStart())) {

        String port = (String)app.getServiceProperty("frontService", RestService.REST_PORT_KEY);

        String frontHost = String.format("http://localhost:%s/frontService/data", port);
        Map<String, String> headers = new HashMap<>();

        //Route to A
        headers.put("ROUTINGHEADER", "A");
        String result = httpGetString(frontHost, headers).result();

        assertEquals("propertyFromA", result);

        //Route to B
        headers.replace("ROUTINGHEADER", "B");
        result = httpGetString(frontHost, headers).result();
        assertEquals("propertyFromB", result);

        //Route to C
        headers.replace("ROUTINGHEADER", "C");
        result = httpGetString(frontHost, headers).result();
        assertEquals("propertyFromC", result);

        //Route to B again
        headers.replace("ROUTINGHEADER", "B");
        result = httpGetString(frontHost, headers).result();
        assertEquals("propertyFromB", result);

        //Route with no headers => default
        result = httpGetString(frontHost).result();
        assertEquals("propertyFromdefault", result);

        //Route to B again with Options
        headers.replace("ROUTINGHEADER", "B");
        result = httpOptions(frontHost, headers).result();
        assertEquals("OK", result);

        //Route to SubRouting to Y
        headers.replace("ROUTINGHEADER", "sub");
        headers.put("SUBROUTINGHEADER", "Y");
        result = httpGetString(frontHost, headers).result();
        assertEquals("propertyFromY", result);

        //Route to SubRouting to X
        headers.replace("ROUTINGHEADER", "sub");
        headers.replace("SUBROUTINGHEADER", "X");
        result = httpGetString(frontHost, headers).result();
        assertEquals("propertyFromX", result);

        //Route to SubRouting to default
        headers.replace("ROUTINGHEADER", "sub");
        headers.remove("SUBROUTINGHEADER");
        result = httpGetString(frontHost, headers).result();
        assertEquals("propertyFromdefault", result);

    }
}
 
開發者ID:drinkwater-io,項目名稱:drinkwater-java,代碼行數:62,代碼來源:RoutingTest.java

示例11: transformDatasetToBaseLearnerRegressionDataset

import java.util.Map; //導入方法依賴的package包/類
/**
 * The function to transform the part of the provided object ranking dataset to base learner
 * dataset so that linear regression model can be learned on it. This function transform each
 * rank of each object to expected rank of the object and add pair of the expected rank and
 * feature value of the item and the context under which it is ranked in the dataset.
 * 
 * @param objectRankingDataset the dataset to be transformed
 * @return the transformed base learner dataset
 */
public static BaselearnerDataset transformDatasetToBaseLearnerRegressionDataset(ObjectRankingDataset objectRankingDataset) {
   Map<Integer, ArrayList<Pair<Double, double[]>>> objectAndExpectedRanks = new HashMap<>();
   int numberOfInstances = 0;

   for (int i = 0; i < objectRankingDataset.getNumberOfInstances(); i++) {
      Ranking ranking = objectRankingDataset.getInstance(i).getRating();
      int numOfObjectsInPartialOrder = ranking.getObjectList().length;
      double[] contextVector = objectRankingDataset.getInstance(i).getContextFeatureVector();
      double rank = 1;
      for (int obj : ranking.getObjectList()) {
         double expectedRank = rank / (numOfObjectsInPartialOrder + 1);
         ArrayList<Pair<Double, double[]>> expectedRanks = new ArrayList<>();
         if (!objectAndExpectedRanks.containsKey(obj)) {
            expectedRanks.add(Pair.of(expectedRank, contextVector));
            objectAndExpectedRanks.put(obj, expectedRanks);
         } else {
            expectedRanks = (ArrayList<Pair<Double, double[]>>) CollectionsUtils.getDeepCopyOf(objectAndExpectedRanks.get(obj));
            expectedRanks.add(Pair.of(expectedRank, contextVector));
            objectAndExpectedRanks.replace(obj, expectedRanks);
         }
         rank++;
         numberOfInstances++;
      }
   }

   BaselearnerDataset transformedDataset = new BaselearnerDataset(numberOfInstances,
         objectRankingDataset.getNumofItemFeatures() + objectRankingDataset.getNumofContextFeatures());
   Iterator<Entry<Integer, ArrayList<Pair<Double, double[]>>>> iterator = objectAndExpectedRanks.entrySet().iterator();
   while (iterator.hasNext()) {
      Entry<Integer, ArrayList<Pair<Double, double[]>>> entry = iterator.next();
      int object = entry.getKey();
      for (Pair<Double, double[]> rankAndContextVector : entry.getValue()) {
         double[] features = ArrayUtils.addAll(rankAndContextVector.getSecond(), objectRankingDataset.getItemVector(object));
         BaselearnerInstance instance = new BaselearnerInstance(features, rankAndContextVector.getFirst());
         transformedDataset.addInstance(instance);
      }
   }
   return transformedDataset;

}
 
開發者ID:Intelligent-Systems-Group,項目名稱:jpl-framework,代碼行數:50,代碼來源:RankingRegressionTransformerUtils.java

示例12: verifyParameters

import java.util.Map; //導入方法依賴的package包/類
@Override
protected Result verifyParameters(Map<String, Object> parameters) {
    ResultBuilder builder = ResultBuilder.withStatusAndScope(Result.Status.OK, Scope.PARAMETERS)
        .error(ResultErrorHelper.requiresOption("url", parameters))
        .error(ResultErrorHelper.requiresOption("user", parameters))
        .error(ResultErrorHelper.requiresOption("password", parameters));

    if (builder.build().getErrors().isEmpty()) {
        try (Connection connection = 
            DriverManager.getConnection(
                    parameters.get("url").toString(), 
                    String.valueOf(parameters.get("user")), 
                    String.valueOf(parameters.get("password")))) {
            // just try to get the connection
        } catch (SQLException e) {
            final Map<String, Object> redacted = new HashMap<>(parameters);
            redacted.replace("password", "********");
            LOG.warn("Unable to connecto to database with parameters {}, SQLSTATE: {}, error code: {}",
                redacted, e.getSQLState(), e.getErrorCode(), e);

            final String sqlState = e.getSQLState();
            if (sqlState == null || sqlState.length() < 2) {
                unsupportedDatabase(builder);
            } else {
                switch (sqlState.substring(0, 2)) {
                case "28":
                    builder.error(ResultErrorBuilder.withCodeAndDescription(VerificationError.StandardCode.AUTHENTICATION, e.getMessage())
                        .parameterKey("user")
                        .parameterKey("password")
                        .build());
                    break;
                case "08":
                case "3D":
                    builder.error(ResultErrorBuilder.withCodeAndDescription(
                        VerificationError.StandardCode.ILLEGAL_PARAMETER_VALUE, e.getMessage())
                        .parameterKey("url")
                        .build());
                    break;
                default:
                    builder.error(ResultErrorBuilder.withCodeAndDescription(
                        VerificationError.StandardCode.GENERIC, e.getMessage())
                        .build());
                    break;
                }
            }
        }
    }
    return builder.build();
}
 
開發者ID:syndesisio,項目名稱:connectors,代碼行數:50,代碼來源:SqlStoredConnectorVerifierExtension.java

示例13: cassandra2cassandra

import java.util.Map; //導入方法依賴的package包/類
/**
	 * @decription 數據同步(Cassandra-->Cassandra)
	 * @author yi.zhang
	 * @time 2017年8月4日 下午5:26:59
	 * @param source	數據源
	 * @param target	目標庫
	 * @param mapper	表映射
	 * @param filter_columns	字段過濾
	 */
	protected void cassandra2cassandra(Config source,Config target,Map<String,String> mapper,List<String> filter_columns){
		if(source==null||target==null){
			return;
		}
		CassandraFactory factory = new CassandraFactory();
		factory.init(source.getServers(), source.getKeyspace(), source.getUsername(), source.getPassword());
		Map<String,String> mapping = new HashMap<String,String>();
		if(mapper==null||mapper.size()==0){
			List<String> tables = factory.queryTables();
			for (String table : tables) {
				mapping.put(table, table);
			}
		}else{
			mapping = mapper;
		}
		CassandraFactory tfactory = new CassandraFactory();
		tfactory.init(target.getServers(), target.getKeyspace(), target.getUsername(), target.getPassword());
		for(String stable : mapping.keySet()){
			String ttable = mapping.get(stable);
//			if(!(stables.contains(stable)&&ttables.contains(ttable))){
//				System.out.println("--數據表["+stable+"]或目標表["+ttable+"]不存在--");
//				continue;
//			}
			Map<String,String> reflect = new LinkedHashMap<String,String>();
			Map<String, String> scolumns = factory.queryColumns(stable);
			Map<String, String> tcolumns = tfactory.queryColumns(ttable);
			if(scolumns==null||scolumns.isEmpty()||tcolumns==null||tcolumns.isEmpty()){
				System.out.println("--數據表["+stable+"]或目標表["+ttable+"]無合適字段--");
				continue;
			}
			for(String scolumn:scolumns.keySet()){
				String s_column = scolumn.trim().toLowerCase().replaceAll("(_+?|-+?)", "");
				if(filter_columns!=null&&(filter_columns.contains(scolumn)||filter_columns.contains(s_column))){
					continue;
				}
				for(String tcolumn:tcolumns.keySet()){
					String t_column = tcolumn.trim().toLowerCase().replaceAll("(_+?|-+?)", "");
					if(filter_columns!=null&&(filter_columns.contains(tcolumn)||filter_columns.contains(t_column))){
						continue;
					}
					if(scolumn.equalsIgnoreCase(tcolumn)||scolumn.equalsIgnoreCase(t_column)||s_column.equalsIgnoreCase(tcolumn)||s_column.equalsIgnoreCase(t_column)){
						reflect.put(scolumn, tcolumn);
					}
				}
			}
			if(reflect.isEmpty()){
				System.out.println("--數據表["+stable+"]或目標表["+ttable+"]無對應字段--");
				continue;
			}
			String cql = "select "+StringUtils.join(reflect.keySet(), ",")+" from "+stable;
			List<?> datas = factory.executeQuery(cql, null);
			System.out.println("--目標表["+stable+"]數據量:"+datas.size());
			for (Object data : datas) {
				Map<String,Object> tdata = new LinkedHashMap<String,Object>();
				JSONObject json = (JSONObject)data;
				for(String key:json.keySet()){
					Object value = json.get(key);
					if(value instanceof Date){
						value = DateUtil.formatDateTimeStr((Date)value);
					}
					if(value instanceof String){
						value = "\""+json.getString(key)+"\"";
					}
					tdata.replace(reflect.get(key), value);
				}
//				tfactory.save(tdata);
				String sql = "insert into "+ttable+"("+StringUtils.join(tdata.keySet(), ",")+")values("+StringUtils.join(tdata.values(), ",")+")";
				tfactory.executeUpdate(sql);
			}
		}
	}
 
開發者ID:dev-share,項目名稱:database-transform-tool,代碼行數:81,代碼來源:ManageTable.java

示例14: cassandra2mongodb

import java.util.Map; //導入方法依賴的package包/類
/**
	 * @decription 數據同步(Cassandra-->MongoDB)
	 * @author yi.zhang
	 * @time 2017年8月4日 下午5:26:59
	 * @param source	數據源
	 * @param target	目標庫
	 * @param mapper	表映射
	 * @param filter_columns	字段過濾
	 */
	protected void cassandra2mongodb(Config source,Config target,Map<String,String> mapper,List<String> filter_columns){
		if(source==null||target==null){
			return;
		}
		CassandraFactory factory = new CassandraFactory();
		factory.init(source.getServers(), source.getKeyspace(), source.getUsername(), source.getPassword());
		Map<String,String> mapping = new HashMap<String,String>();
		if(mapper==null||mapper.size()==0){
			List<String> tables = factory.queryTables();
			for (String table : tables) {
				mapping.put(table, table);
			}
		}else{
			mapping = mapper;
		}
		MongoDBFactory tfactory = new MongoDBFactory();
		tfactory.init(target.getServers(), target.getDatabase(), target.getSchema(), target.getUsername(), target.getPassword());
//		List<String> stables = factory.queryTables();
		List<String> ttables = tfactory.queryTables();
		for(String stable : mapping.keySet()){
			String ttable = mapping.get(stable);
			if(!(ttables.contains(ttable))){
				System.out.println("--數據表["+stable+"]或目標表["+ttable+"]不存在--");
				continue;
			}
			Map<String,String> reflect = new LinkedHashMap<String,String>();
			Map<String, String> scolumns = factory.queryColumns(stable);
			Map<String, String> tcolumns = tfactory.queryColumns(ttable);
			if(scolumns==null||scolumns.isEmpty()||tcolumns==null||tcolumns.isEmpty()){
				System.out.println("--數據表["+stable+"]或目標表["+ttable+"]無合適字段--");
				continue;
			}
			for(String scolumn:scolumns.keySet()){
				String s_column = scolumn.trim().toLowerCase().replaceAll("(_+?|-+?)", "");
				if(filter_columns!=null&&(filter_columns.contains(scolumn)||filter_columns.contains(s_column))){
					continue;
				}
				for(String tcolumn:tcolumns.keySet()){
					String t_column = tcolumn.trim().toLowerCase().replaceAll("(_+?|-+?)", "");
					if(filter_columns!=null&&(filter_columns.contains(tcolumn)||filter_columns.contains(t_column))){
						continue;
					}
					if(scolumn.equalsIgnoreCase(tcolumn)||scolumn.equalsIgnoreCase(t_column)||s_column.equalsIgnoreCase(tcolumn)||s_column.equalsIgnoreCase(t_column)){
						reflect.put(scolumn, tcolumn);
					}
				}
			}
			if(reflect.isEmpty()){
				System.out.println("--數據表["+stable+"]或目標表["+ttable+"]無對應字段--");
				continue;
			}
			String cql = "select "+StringUtils.join(reflect.keySet(), ",")+" from "+stable;
			List<?> datas = factory.executeQuery(cql, null);
			System.out.println("--目標表["+stable+"]數據量:"+datas.size());
			for (Object data : datas) {
				Map<String,Object> tdata = new LinkedHashMap<String,Object>();
				JSONObject json = (JSONObject)data;
				for(String key:json.keySet()){
					Object value = json.get(key);
					if(!key.matches("(\\w+)")){
						continue;
					}
					tdata.replace(reflect.get(key), value);
				}
				tfactory.save(ttable, tdata);
			}
		}
	}
 
開發者ID:dev-share,項目名稱:database-transform-tool,代碼行數:78,代碼來源:ManageTable.java

示例15: mongodb2cassandra

import java.util.Map; //導入方法依賴的package包/類
/**
	 * @decription 數據同步(MongoDB-->Cassandra)
	 * @author yi.zhang
	 * @time 2017年8月4日 下午5:26:59
	 * @param source	數據源
	 * @param target	目標庫
	 * @param mapper	表映射
	 * @param filter_columns	字段過濾
	 */
	protected void mongodb2cassandra(Config source,Config target,Map<String,String> mapper,List<String> filter_columns){
		if(source==null||target==null){
			return;
		}
		MongoDBFactory factory = new MongoDBFactory();
		factory.init(source.getServers(), source.getDatabase(), source.getSchema(), source.getUsername(), source.getPassword());
		Map<String,String> mapping = new HashMap<String,String>();
		if(mapper==null||mapper.size()==0){
			List<String> tables = factory.queryTables();
			for (String table : tables) {
				mapping.put(table, table);
			}
		}else{
			mapping = mapper;
		}
		CassandraFactory tfactory = new CassandraFactory();
		tfactory.init(target.getServers(), target.getKeyspace(), target.getUsername(), target.getPassword());
		List<String> stables = factory.queryTables();
//		List<String> ttables = tfactory.queryTables();
		for(String stable : mapping.keySet()){
			String ttable = mapping.get(stable);
			tfactory.queryColumns(ttable);
			if(!(stables.contains(stable))){
				System.out.println("--數據表["+stable+"]或目標表["+ttable+"]不存在--");
				continue;
			}
			Map<String,String> reflect = new LinkedHashMap<String,String>();
			Map<String, String> scolumns = factory.queryColumns(stable);
			Map<String, String> tcolumns = tfactory.queryColumns(ttable);
			if(scolumns==null||scolumns.isEmpty()||tcolumns==null||tcolumns.isEmpty()){
				System.out.println("--數據表["+stable+"]或目標表["+ttable+"]無合適字段--");
				continue;
			}
			for(String scolumn:scolumns.keySet()){
				String s_column = scolumn.trim().toLowerCase().replaceAll("(_+?|-+?)", "");
				if(filter_columns!=null&&(filter_columns.contains(scolumn)||filter_columns.contains(s_column))){
					continue;
				}
				for(String tcolumn:tcolumns.keySet()){
					String t_column = tcolumn.trim().toLowerCase().replaceAll("(_+?|-+?)", "");
					if(filter_columns!=null&&(filter_columns.contains(tcolumn)||filter_columns.contains(t_column))){
						continue;
					}
					if(scolumn.equalsIgnoreCase(tcolumn)||scolumn.equalsIgnoreCase(t_column)||s_column.equalsIgnoreCase(tcolumn)||s_column.equalsIgnoreCase(t_column)){
						reflect.put(scolumn, tcolumn);
					}
				}
			}
			if(reflect.isEmpty()){
				System.out.println("--數據表["+stable+"]或目標表["+ttable+"]無對應字段--");
				continue;
			}
			List<?> datas = factory.executeQuery(stable, null, null);
			System.out.println("--數據表["+stable+"]數據量:"+datas.size());
			for (Object data : datas) {
				Map<String,Object> tdata = new LinkedHashMap<String,Object>();
				JSONObject json = (JSONObject)data;
				for(String key:json.keySet()){
					Object value = json.get(key);
					if(value instanceof Date){
						value = DateUtil.formatDateTimeStr((Date)value);
					}
					if(value instanceof String){
						value = "\""+json.getString(key)+"\"";
					}
					tdata.replace(reflect.get(key), value);
				}
				String sql = "insert into "+ttable+"("+StringUtils.join(tdata.keySet(), ",")+")values("+StringUtils.join(tdata.values(), ",")+")";
				tfactory.executeUpdate(sql);
			}
		}
	}
 
開發者ID:dev-share,項目名稱:database-transform-tool,代碼行數:82,代碼來源:ManageTable.java


注:本文中的java.util.Map.replace方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。