Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Play,在控制器外部获取数据库连接_Java_Playframework - Fatal编程技术网

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

Java Play,在控制器外部获取数据库连接,java,playframework,Java,Playframework,对于一个工作项目,我试图创建一个连接到数据库的查询类。过去是这样做的: Connection dbC = DB.getConnection(); 但是,现在不推荐使用该方法,因此我使用Play docs中所述的推荐方法: @Inject private play.db.Database db; public AQuery(Database db) { this.db = db; } 我还有一个方法来获取对象列表 public List<GenObject> getOb

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

Connection dbC = DB.getConnection(); 
但是,现在不推荐使用该方法,因此我使用Play docs中所述的推荐方法:

@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...
}

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

此类DAO只能从可以注入db依赖项的组件中调用,以便可以正确传播/传递此类需求(例如从控制器中)您可以随时使用hibernate(与hirakiCP一起使用),而无需播放。在play part中定义您将连接到的连接池。
dbC = db.getConnection();