在 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 的信息。
我正在使用模型 类 通过查找获取记录,使用 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 的信息。