【问题标题】:Executing raw sql queries in Play Framework在 Play Framework 中执行原始 sql 查询
【发布时间】:2015-04-13 11:34:16
【问题描述】:

我正在使用模型类使用 find 获取记录,使用 obj.save() 等插入记录。

find.where().eq("email", email).eq("password", password)
            .findUnique();

如何编写原始查询以将结果提取到 bean 对象或 bean 对象列表中:

User user = "select * from user where email=" + email + " and password = " + password

【问题讨论】:

    标签: java sql playframework-2.0


    【解决方案1】:

    假设您使用的是Ebean,您可以使用如下内容:

    String sql = 
     "select id, name from user where email=" + email + " and password = " + password;
    
    RawSql rawSql =   
     RawSqlBuilder  
        .parse(sql)
        .columnMapping("id",  "user.id")  
        .columnMapping("name",  "user.name")
        .create();  
    
    Query<User> query = Ebean.find(User.class);  
    query.setRawSql(rawSql);  
    
    List<User> list = query.findList(); 
    

    如果您的查询不仅仅是一个玩具示例,您将需要参数化您的输入以防止 sql 注入。

    ebean docs 有更多关于使用原始 sql 的信息。

    【讨论】:

      猜你喜欢
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 2016-02-21
      • 2018-09-08
      • 1970-01-01
      相关资源
      最近更新 更多