簡體   English   中英

在dropwizard資源類中使用jdbi sql接口

[英]using jdbi sql interfaces in dropwizard resource classes

我已經在dropwizard項目中定義了資源類

@Path("/user/{user}")
@Produces(MediaType.APPLICATION_JSON)
public class UserResource {

    @GET
    @Path("/attribute/{attr_name}")
    public Attribute fetch(@PathParam("user") IntParam uid, @PathParam("attr_name") String attrName)
    {
        //TODO: write code here
    }

}

我想在這里使用sql接口對uidattrName進行一些sql查詢。 這些接口位於包mypackage.api ,它是資源包的並行包。 我如何在這里實現這些接口。

我的dropwizard服務使用jdbi與數據庫層進行交互。

我使用的方法(這是相當標准的方法,並且適用於您的方案)是在dropwizard Application類運行方法中定義jdbi工廠,例如(數據庫配置詳細信息放在yml config文件中-應該是可以在線獲取的示例) ):

 final DBIFactory factory = new DBIFactory();
 final DBI jdbi = factory.build(environment, configuration.getDatabaseConfig(), "<your-database-name>");

一旦可以訪問jdbi工廠,就可以直接實例化dao接口:

 final MyDao myDao = jdbi.onDemand(MyDao.class);

正如上面的人在問題注釋中提到的那樣,您只需要將dao對象傳遞到資源中即可,例如通過構造函數:

 MyResource myResource = new MyResource(myDao);

您的dao應定義將您的資源參數作為“綁定”變量接受的函數,然后可用於查找數據

暫無
暫無

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

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