Java Play,在控制器之外获取数据库连接

时间:2017-06-26 20:54:32

标签: java playframework

对于工作项目,我试图创建一个连接到数据库的Query类。过去常常这样做:

Connection dbC = DB.getConnection(); 

但是,现在已弃用,因此我使用Play文档中描述的推荐方法:

@Inject private play.db.Database db;

public AQuery(Database db)
{
    this.db = db;
}

我还有一个获取对象列表的方法。

public List<GenObject> getObjectID(int iD)
{
    List<GenObject> events = new LinkedList<>();
    Connection dbC = null;
    ResultSet rs = null;
    PreparedStatement ps = null;
 //Continues...
}

这里的想法是,在这个方法中,获取我调用的连接

dbC = db.getConnection();

在我到达我的控制器之前,这一切都很好。我无法调用getObjectID,因为它不是静态的。很好,我想,所以我只是创建一个AQuery对象并使用它。但是,如果不将Database对象传递给构造函数,那是不可能的,这是我没有的。你将如何创建AQuery对象的实例(或完全避免它并使db字段静态),以便我可以使用我的getObjectID方法?

0 个答案:

没有答案