Open
Description
As a part of the jOOQ issue here: jOOQ/jOOQ#12984, and for near future jOOQ webinars with third parties:
- CockroachDB: https://www.cockroachlabs.com/webinars/jooq/
- JetBrains / Kotlin: https://www.youtube.com/watch?v=5fTRAwX1oew
It's important to have a working demo that helps showcase most jOOQ use-cases interactively.
The demo will be implemented in 2 steps:
- Addressing the immediate needs of the above webinars
- Based on the historic demo I used for the jOOQ talk: https://www.youtube.com/watch?v=knTwEqv2OXI
- Working with the Sakila database
- For CockroachDB
- For PostgreSQL in general
- Languages
- Java
- Kotlin
- Scala
- Execution models
- JDBC / blocking
- RS / nonblocking
- Kotlin coroutines
- Addressing all the demo needs
- Functionality
- Querying (including
MULTISET
, nested records, ad-hoc conversion, etc.) - Dynamic SQL
- Functions
- DML
- Batch
- Transactions
- JDBC connection access
- Parser
- Interpreter
- Import / export
- DAOs
- Stored procedures
- Procedural language API
- R2DBC
- SPIs
-
ExecuteListener
-
VisitListener
-
- DDL
- Mocking
- Diagnostics
-
QOM
transformation - Code generation features
- Generator strategies
- Data type bindings and converters
- Synthetic keys
- Client side computed columns
- virtual
- stored
- Embeddables
- Audit columns
- Readonly columns
- Alternative code generation sources
-
JPADatabase
-
DDLDatabase
-
XMLDatabase
-
- Querying (including
- Building
- with Maven
- with Gradle
- Integrating with Testcontainers
- Database change management integration
- Flyway
- Liquibase
- Languages
- Java
- Scala
- Kotlin
- jOOQ Editions
- The jOOQ Open Source Edition
- The commercial editions
- Working with any RDBMS that we support the sakila database for: https://github.com/jOOQ/sakila
- CockroachDB
- Db2
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- SQLite
- YugabyteDB
- Functionality
More work:
- Integration tests
- Documentation
- Document how to set up the sakila database (no longer needed, it's testcontainer based now)
- Make sure that any custom setup (e.g. different JDBC URL, etc.) is super easy to implement