gpt4 book ai didi

java - 通过删除重复代码高效插入数据库

转载 作者:行者123 更新时间:2023-12-01 14:41:41 25 4
gpt4 key购买 nike

我最近开始使用 Cassandra 数据库。我试图将一些数据插入到我创建的一个Column Family 中。

下面是我尝试插入 Cassandra 数据库的代码。

就我而言,我的列族中有大约 20 列,这意味着我需要添加以下行

mutator.newColumn("列名称", "列值");

二十次在我的下面的代码中,对我来说看起来很难看。有什么办法,我可以通过使用反射或其他方式来简化下面的方法,这样如果我有超过 20 列,我就不应该继续在下面的代码中添加额外的行。

for (int userId = id; userId < id + noOfTasks; userId++) {

Mutator mutator = Pelops.createMutator(thrift_connection_pool);

mutator.writeColumns(column_family, String.valueOf(userId),
mutator.newColumnList(
mutator.newColumn("a_account", "{\"lv\":[{\"v\":{\"regSiteId\":null,\"userState\":null,\"userId\":" + userId + "},\"cn\":1}],\"lmd\":20130206211109}"),
mutator.newColumn("a_advertising", "{\"lv\":[{\"v\":{\"regSiteId\":null,\"userState\":null,\"userId\":" + userId + "},\"cn\":1}],\"lmd\":20130206211109}"),
mutator.newColumn("a_avg_selling_price_main_cats", "{\"lv\":[{\"v\":{\"regSiteId\":null,\"userState\":null,\"userId\":" + userId + "},\"cn\":1}],\"lmd\":20130206211109}"),
mutator.newColumn("a_cat_and_keyword_rules", "{\"lv\":[{\"v\":{\"regSiteId\":null,\"userState\":null,\"userId\":" + userId + "},\"cn\":1}],\"lmd\":20130206211109}"),
mutator.newColumn("a_csa_categories_purchased", "{\"lv\":[{\"v\":{\"regSiteId\":null,\"userState\":null,\"userId\":" + userId + "},\"cn\":1}],\"lmd\":20130206211109}"),
mutator.newColumn("a_customer_service", "{\"lv\":[{\"v\":{\"regSiteId\":null,\"userState\":null,\"userId\":" + userId + "},\"cn\":1}],\"lmd\":20130206211109}"),
mutator.newColumn("a_demographic", "{\"lv\":[{\"v\":{\"regSiteId\":null,\"userState\":null,\"userId\":" + userId + "},\"cn\":1}],\"lmd\":20130206211109}"),
mutator.newColumn("a_favorite_searches", "{\"lv\":[{\"v\":{\"regSiteId\":null,\"userState\":null,\"userId\":" + userId + "},\"cn\":1}],\"lmd\":20130206211109}"),
mutator.newColumn("a_favorite_sellers", "{\"lv\":[{\"v\":{\"regSiteId\":null,\"userState\":null,\"userId\":" + userId + "},\"cn\":1}],\"lmd\":20130206211109}"),
mutator.newColumn("a_financial", "{\"lv\":[{\"v\":{\"regSiteId\":null,\"userState\":null,\"userId\":" + userId + "},\"cn\":1}],\"lmd\":20130206211109}")
mutator.newColumn(some othe column, its value)
.....
.....
.....
));


mutator.execute(ConsistencyLevel.ONE);
}

任何简化上述方法的帮助都将对我有很大帮助。我可以在这里使用反射吗?有什么想法吗?

最佳答案

您可以预定义您的ColumnList。假设您在名为“map”的变量中传递了名称映射和值的字符串版本。您的代码可能如下所示:

Mutator mutator = Pelops.createMutator(thrift_connection_pool);
ArrayList<Column> columnList = new ArrayList<Column>();
for (Map.Entry<String, String> entry : map.entrySet()) {
columnList.add(mutator.newColumn(entry.getKey(), entry.getValue()));
}
mutator.writeColumns(column_family, String.valueOf(userId), columnList);

关于java - 通过删除重复代码高效插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15890581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com