在 Play Framework 中执行原始 sql 查询

Executing raw sql queries in Play Framework

我正在使用模型 类 通过查找获取记录,使用 obj.save() 等插入记录

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

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

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

假设您使用的是 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 的信息。