1
因爲我有一些疑問是簡單的,有些需要特殊的操作,在我的項目我使用JDBI的對象API與流體語法混合,與它一起的點播功能,像這樣:使用JDBI的onDemand語法,是否需要關閉句柄?
public abstract class MyDAO implements GetHandle {
@SqlQuery("SELECT anInt FROM aTable;")
public abstract int getAnInt();
public List<Integer> insertThings(List<Thing> things) {
Handle h = getHandle();
PreparedBatch batch = h.prepareBatch("INSERT INTO thingsTable (a, b) VALUES (?, ?)");
for (Thing thing : things) {
batch.add(things.getA(), thing.getB());
}
List<Integer> ids = batch.executeAndGenerateKeys(IntegerColumnMapper.WRAPPER).list();
h.close();
return ids;
}
}
//Elsewhere in my code
MyDAO dao = jdbi.onDemand(myDAO.class);
dao.insertThings(things);
所以我的問題是,當以這種方式使用JDBI時,我是否需要確保像我在示例中那樣關閉我的句柄,還是像抽象方法那樣處理閉合處理?
這就是我的想法,我的擔心是正義的,因爲我是開手柄的通常流程以外,我將不得不關閉它自己以及。 –