Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A jOOQ-CodeGenerator to create vertx-ified DAOs and POJOs.

License

NotificationsYou must be signed in to change notification settings

jklingsporn/vertx-jooq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AjOOQ-CodeGenerator to createvertx-ified DAOs and POJOs!Perform all CRUD-operations asynchronously and convert your POJOs from/into aio.vertx.core.json.JsonObject using the API anddriver of your choice.

latest release 6.5.5

  • Fix Use enum literal instead of toString for datatype conversion#209
  • Update to jooq 3.17.3
  • Update to vertx 4.3.3
  • Update mutiny dependencies
  • Update rx dependencies

different needs, different apis

What do you want

Before you start generating code using vertx-jooq, you have to answer these questions:

  • Which API do you want to use?
    • aio.vertx.core.Future-based API. This isvertx-jooq-classic.
    • arxjava2 based API. This isvertx-jooq-rx.
    • arxjava3 based API. This isvertx-jooq-rx3.
    • amutiny based API. This isvertx-jooq-mutiny.
  • How do you want to communicate with the database?
    • Using good old JDBC, check for the modules with-jdbc suffix.
    • Using thereactive vertx database driver, check for-reactive modules.
  • Do you need extras?
    • Support forGuice dependency injection
    • Generation ofio.vertx.codegen.annotations.@DataObject-annotations for your POJOs

Once you made your choice, you can start to configure the code-generator. This can be either done programmatically orusing a maven- / gradle-plugin (recommended way).Please check the documentation in the module of the API and driver of your choice how to set it up and how to use it:

example

Once the generator is set up, it can create DAOs like in the code snippet below (classic-API, JDBC, no dependency injection):

//Setup your jOOQ configurationConfigurationconfiguration = ...//setup VertxVertxvertx =Vertx.vertx();//instantiate a DAO (which is generated for you)SomethingDaodao =newSomethingDao(configuration,vertx);//fetch something with ID 123...dao.findOneById(123)    .onComplete(res->{if(res.succeeded()){vertx.eventBus().send("sendSomething",res.result().toJson())    }else{System.err.println("Something failed badly: "+res.cause().getMessage());    }    });//maybe consume it in another verticlevertx.eventBus().<JsonObject>consumer("sendSomething",jsonEvent->{JsonObjectmessage =jsonEvent.body();//Convert it back into a POJO...Somethingsomething =newSomething(message);//... change some valuessomething.setSomeregularnumber(456);//... and update it into the DBFuture<Integer>updatedFuture =dao.update(something);});//or do you prefer writing your own type-safe SQL? Use the QueryExecutor from the DAO...ClassicQueryExecutorqueryExecutor =dao.queryExecutor();//... or create a new one when there is no DAO around :)queryExecutor =newJDBCClassicGenericQueryExecutor(configuration,vertx);Future<Integer>updatedCustom =queryExecutor.execute(dslContext ->dslContext.update(Tables.SOMETHING).set(Tables.SOMETHING.SOMEREGULARNUMBER,456).where(Tables.SOMETHING.SOMEID.eq(something.getSomeid())).execute());//check for completionupdatedCustom.onComplete(res->{if(res.succeeded()){System.out.println("Rows updated: "+res.result());}else{System.err.println("Something failed badly: "+res.cause().getMessage());}});

More examples can be foundhere,here andhere.

FAQ

vertx is cool, but what about quarkus?

Checkoutthis repository to figure out how to utilize vertx-jooq to create Quarkus-compatible classes.

handling custom datatypes

The generator will omit datatypes that it does not know, e.g.java.sql.Timestamp. To fix this, you can subclass the generator, handle these types and generate the code using your generator.See thehandleCustomTypeFromJson andhandleCustomTypeToJson methods in theAbstractVertxGenerator or checkout theCustomVertxGeneratorfrom the tests.

is vertx-jooq compatible with Java 8?

Starting with version6.4.0, vertx-jooq implicitly requires Java 11, as this is the minimum required version by the non-commercial version of jOOQ3.15.If you're stuck with Java 8, the latest version you can use is6.3.0.

are you sure this works?

Yes! There aremany integration tests that cover most usecases.Check them out if you're interested.

how to run tests

The tests are executed against two docker containers. Please refer tothis readme of how to set them up.

I receive a "Too many open files" exception onmacOS

Increase your file limits. Unfortunately the solution differs by each OS version, so you have to do some research.

disclaimer

This library comes without any warranty - just take it or leave it. Also, the author is neither connected to thecompany behind vertx nor the one behind jOOQ.


[8]ページ先頭

©2009-2025 Movatter.jp