快速上手

本教程将通过为如下角色表构建RESTful服务的完整过程,帮助您快速上手DoytoQuery框架。

id
role_name
role_code
valid

1

admin

ADMIN

true

2

vip

VIP

true

3

vip2

VIP2

true

4

vip3

VIP3

true

5

guest

GUEST

true

示例代码请访问Github

初始化工程

1. 在 Spring Initializer 上初始化工程,添加以下4个依赖:

  • Lombok

  • Spring Web

  • Validation

  • HyperSQL Database

2. 引入DoytoQuery

pom.xml中添加如下依赖:

<dependencies>
    <dependency>
        <groupId>win.doyto</groupId>
        <artifactId>doyto-query-jdbc</artifactId>
        <version>${doyto-query.version}</version>
    </dependency>
    <dependency>
        <groupId>win.doyto</groupId>
        <artifactId>doyto-query-web</artifactId>
        <version>${doyto-query.version}</version>
    </dependency>
    <dependency>
        <groupId>win.doyto</groupId>
        <artifactId>doyto-query-dialect</artifactId>
        <version>${doyto-query.version}</version>
    </dependency>
    ...
</dependencies>

3. 添加默认Web配置

DemoApplication需要继承win.doyto.query.web.WebMvcConfigurerAdapter

4. 配置分页插件

DoytoQuery默认提供的是MySQL的分页插件,而本demo使用的数据库是HSQLDB,所以我们这里需要引入doyto-query-dialect,然后在spring的application.yaml文件里配置使用。另外这里列名是小写加下划线的格式,这里同时配置一下map-camel-case-to-underscore为true,表示将驼峰形式的字段名映射为下划线形式的列名:

初始化数据

src/main/resources下创建schema.sql:

创建业务类

在packagewin.doyto.query.demo.module.role下,创建以下三个类:

  • RoleEntity,用于映射表字段:

  • RoleQuery,用于构建查询语句:

  • RoleController,用于提供CRUD功能和RESTful接口:

测试验证

只需以上三个类就完成了整个RESTful服务的开发,接下来我们一起验证一下效果。

org.springframework.web.servlet.mvc.method.annotation包的日志等级设置为trace,启动DemoApplication,可以看到/role/路径下已经有GET, PUT, PATCH等方法了:

然后通过curl访问一下分页查询接口:

curl 'http://localhost:8080/role/?roleNameLike=vip&pageNumber=2&pageSize=2&sort=id,desc'

可以看到我们使用roleNameLike=vip过滤出3条数据id=[2,3,4],再根据id倒序排列以及分页参数pageNumber=2pageSize=2查询出了第二页id为2的记录。

更多查询字段的用法请参考查询对象

最后通过单元测试进行验证:

完整的测试用例请查看这里

最后更新于

这有帮助吗?