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();