0

我无法从现有数据库表 (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 );

}

控制器 - 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 和模式创建/修改。

任何帮助将不胜感激。

谢谢

4

1 回答 1

5

您要做的事情是通过findRowCount()返回查询影响的行数来完成。基本上一个COUNT(*).

getMaxRows()相当于setMaxRows(int)是对查询返回的行数的限制(例如LIMIT在 MySQL 中)。

于 2013-03-15T00:43:56.123 回答