如何使用“ where ”条件从 dynamoDB 获取项目?
例如,
select 'names' from Employee where dept="billing"
(我想从Employee表中获取其部门为“结算”的所有名称)
如何在Java代码中为此编写查询?用示例代码解释非常感谢。谢谢。
答案 0 :(得分:0)
选择查询可能是这样的:
SELECT `names` FROM `Employee` WHERE `dept` LIKE 'billing'
使用一些java东西:
try {
String url = "jdbc:msql://***.***.***.***:****/Demo";
Connection conn = DriverManager.getConnection(url, "", "");
Statement stmt = conn.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT `names` FROM `Employee` WHERE `dept` LIKE 'billing'");
while (rs.next()) {
String name = rs.getString("names");
System.out.println(name);
}
conn.close();
} catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
答案 1 :(得分:0)
您可以使用主键(哈希键)或使用(哈希+范围键)的复合键搜索Dynamo数据库
如果您试图搜索某个项目的任何属性,那么您必须完成数据库的完整Scan
,这是非常低效的。
因此,尝试以不最终执行Scans
的方式设计数据库,并鼓励根据Dynamo设计的索引进行搜索。
对于原始问题:您可以使用ProjectionExpression
进行搜索。
供进一步参考 - http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#QueryAndScan.Scan