Jooq util JooqTemplate Quickstart

java dev.to

1. Start a new Spring Boot project

Use start.spring.io to create a project with jooq

2. Add dependency

gradle:

implementation 'net.sf.sprtool:sprtool-jooq:1.1.0' 
Enter fullscreen mode Exit fullscreen mode

maven:

<dependency>
    <groupId>net.sf.sprtool</groupId>
    <artifactId>sprtool-jooq</artifactId>
    <version>1.1.0</version>
</dependency>
Enter fullscreen mode Exit fullscreen mode

3. Inject JooqTemplate

@Autowired
private JooqTemplate jt;
Enter fullscreen mode Exit fullscreen mode

4. Use JooqTemplate

insert:

Map values=JooqMaps.toSnakeCase(someBean);
jt.insert("some_table",values);
Enter fullscreen mode Exit fullscreen mode

update:

Map values=JooqMaps.toSnakeCase(someBean);
jt.updatev("some_table",values,"id",someBean.getId());
Enter fullscreen mode Exit fullscreen mode

delete:

jt.deletev("some_table","id",idParam);
Enter fullscreen mode Exit fullscreen mode

query single:

SomeBean someBean=jt.loadv("some_table",SomeBean.class,"id",id);
Enter fullscreen mode Exit fullscreen mode

query multiple:
Final sql will not include "name" or "gender" when nameParam is null or genderParam is null.
The supported operators include: %,%L,%R,>,>=,==,<,<=,isnull,isnotnull,in,notin,between,notbetween,asc,ascnf,ascnl,desc,descnf,descnl.

Condition otherCondition=DSL...;
List<SomeBean> beanList=jt.queryv("some_table",SomeBean.class,"name%",nameParam,"gender",genderParam,"bidrthday:between",beignDate,endDate,otherCondition,"id:desc");
Enter fullscreen mode Exit fullscreen mode

pagination query

List conditions=jt.conditions("id",idParam,"name%",nameParam,"birthday>=",birthDayParam,...);
LimitSelect limitSelect=new LimitSelect() {
    public SelectOrderByStep from(SelectSelectStep select) {
        return select.from(T("some_table")).where(conditions);
    }
    public List<OrderField> orderBy(){
        return Arrays.asList(F("birthday").desc());
    }
};
LimitResult result=jt.query(SomeBean.class,limitSelect,LimitRange.of(limitParam,offsetParam));
Enter fullscreen mode Exit fullscreen mode

Source: dev.to

arrow_back Back to Tutorials