簡體   English   中英

如何優化 ActiveJDBC 中的連接管理?

[英]How to optimize connection managment in ActiveJDBC?

我使用 ActiveJDBC 作為 Hibernate 的替代品。 每當我運行應用程序時,我都會使用過濾器來啟動連接,但即使應用程序不需要連接,連接也會存在。 此外,當我嘗試通過 findBySQL 方法運行任何查詢時,它還會在后台調用獲取連接。 有沒有辦法優化與數據庫的連接? 有時可能會有很多查詢,因此每次調用查詢時打開和關閉連接可能對性能不利。 如果有任何方法或者我錯過了一些重要的理解點,請告訴我。

您可以在AppControllerConfig class 中使用細粒度方法。 這是一個商業項目的例子:

public class AppControllerConfig extends AbstractControllerConfig {

public void init(AppContext context) {
    add(new CatchAllFilter());
    add(new DefaultApiHeadersFilter());
    add(new DBConnectionFilter("default", true)).to(
            GroupsController.class,
            UsersController.class,
            SubjectsController.class,
            ChaptersController.class,
            LessonsController.class,
            LessonItemsController.class,
            JournalItemsController.class,
            GalleryItemsController.class
    );
  }
}

如您所見,您可以將DBConnectionFilter應用於特定的控制器。 此示例中的 arguments 將告訴DBConnectionFilter自動管理默認連接的事務。

此外,您可以准確指定哪些操作需要數據庫連接,如下所示:

add(new DBConnectionFilter("events", false)).to(FlowsController.class).forActions("report", "report_details", "webhook_test");

如果您想要相反,您可以將過濾器應用於所有操作,除了一些:

  add(new DBConnectionFilter("default", true).to(TemplatesController.class).excludeActions("thumbnail");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM