我在从现有数据库表 (SQL Server 2008 R2) 返回数据时遇到问题。我可以成功地进行身份验证并连接到数据库,我创建了一个模型,尝试将其映射到特定的表,然后作为测试尝试返回行计数,行计数始终返回 0。我想也许我不明白Play/Ebean 数据库连接的工作原理。目前我有以下内容:
模型 - Data.java:
package models;
import javax.persistence.*;
import play.db.ebean.*;
@Entity
@Table(name="someTable")
public class Data extends Model {
private static final long serialVersionUID = 1L;
@Id
public int someKey;
public String someCol;
public static Finder<Integer,Data> find = new Finder<Integer,Data>( Integer.class, Data.class );
}
Controller - Index.java
package controllers;
import java.util.*;
import models.Data;
import play.mvc.*;
public class Index extends Controller {
static int rowCount = Data.find.getMaxRows();
public static Result index() {
Result res = ok(rowCount);
return res;
}
}
Application.conf(相关片段):
db.default.driver=net.sourceforge.jtds.jdbc.Driver
db.default.url="jdbc:jtds:sqlserver://server.domain.local/someDB;instance=SQL"
db.default.user=someUser
db.default.password="password"
evolutionplugin=disabled
ebean.default="models.*"
我并不声称了解 Evolutions 的工作原理,但我在 SQL 中单独进行数据库开发工作,即 DDL 和架构创建/修改。
任何帮助将不胜感激。
谢谢
最佳答案
你想做的事由 findRowCount()
完成它返回查询影响的行数。基本上是一个 COUNT(*)
。
getMaxRows()
相当于 setMaxRows(int)
这是对查询返回的行数的限制(例如 MySQL 中的 LIMIT
)。
关于java - Play Framework 2.1.0 - 使用Ebean查询现有数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15420073/