jOOQ stands for Java Object Oriented Querying. It combines these essential features:
-
- Code Generation: jOOQ generates a simple Java representation of your database schema. Every table, view, stored procedure, enum, UDT is a class.
-
- Active records: jOOQ implements an easy-to-use active record pattern. It is NOT an OR-mapper, but provides a 1:1 mapping between tables/views and classes. Between columns and members.
-
- Typesafe SQL: jOOQ allows for writing compile-time typesafe querying using its built-in fluent API.
-
- SQL standard: jOOQ supports all standard SQL language features including the more complex UNION's, nested SELECTs, joins, aliasing
-
- Vendor-specific feature support: jOOQ encourages the use of vendor-specific extensions such as stored procedures, UDT's and ARRAY's, recursive queries, and many more.
How does jOOQ help you?
-
- Your database always comes FIRST! That's where the schema is, not in your Java code or some XML mapping file.
-
- Your schema is generated in Java. You can use auto-completion in your IDE!
-
- Your "value objects" or "data transfer objects" are generated too. This keeps things DRY
-
- Your Java code won't compile anymore when you modify your schema. That means less runtime errors.
-
- You and your DBA can be friends again because you have full control over your SQL.
-
- You can port your SQL to a new database. jOOQ will generate SQL that works on any database.
-
- You won't have syntax errors in your query.
-
- You won't forget to bind variables correctly. No SQL injection, either.
-
- You can forget about JDBC's verbosity (especially useful when dealing with UDTs, ARRAYs and stored procedures).
-
Or in short:
-
- You can be productive again!
-