使用“where”条件从Amazon DynamoDB获取项目

时间:2015-07-27 09:16:33

标签: java amazon-web-services amazon-dynamodb

如何使用“ where ”条件从 dynamoDB 获取项目?

例如,

select 'names' from Employee where dept="billing"

(我想从Employee表中获取其部门为“结算”的所有名称)

如何在Java代码中为此编写查询?用示例代码解释非常感谢。谢谢。

2 个答案:

答案 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