繁体   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