【问题标题】:Getting items from Amazon DynamoDB using 'where' condition使用“where”条件从 Amazon DynamoDB 获取项目
【发布时间】:2015-10-17 09:50:20
【问题描述】:

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

例如,

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

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

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

【问题讨论】:

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


    【解决方案1】:

    选择查询可能是这样的:

    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());
        }
    

    【讨论】:

    【解决方案2】:

    您可以使用主键(散列键)或复合键(散列+范围键)搜索 Dynamo DB

    如果您尝试搜索某个项目的任何属性,则必须对数据库进行完整的Scan,这是非常低效的。

    因此,请尝试以一种您不要最终使用Scans 的方式设计您的数据库,并鼓励根据 Dynamo 设计的索引进行搜索。

    对于原始问题:您可以使用ProjectionExpression 进行搜索。

    供进一步参考 - http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html#QueryAndScan.Scan

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-21
      • 1970-01-01
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 2017-09-29
      • 2015-08-25
      • 1970-01-01
      相关资源
      最近更新 更多