Procedures

Database First

Your data is your most important asset.

You have made a well-informed decision, when you chose a relational database
management system to store your data. You are used to writing SQL to query and
manipulate your data. Now, you're looking for a professional tool to help you
write your SQL in Java.

With jOOQ, your database and your data come first. You want to be able to use every
feature your database offers, using the language that is used to interact with
databases: SQL. jOOQ will let you do precisely that.

Typesafe SQL

SQL is a very unique and rich language, optimally designed to express complex
queries in a simple, declarative form. When writing SQL, you will focus on
what data you want to fetch, not how you want to fetch it.

jOOQ treats SQL like what it is in the first place: A language. Through its unique
and modern fluent API design techniques, jOOQ embeds SQL as an internal domain-specific
language directly in Java, making it easy for developers to write and read code
that almost feels like actual SQL.

As an internal domain-specific language, jOOQ can leverage the powerful Java compiler
and Java's generics for

Using jOOQ's code generator, your Java code will not only compile against your
actual SQL meta data, it will also immediately take notice of the
changes performed to SQL meta data. This will help prevent syntax errors due to
improperly changed meta data in an early phase of your development or deployment
cycle.

Procedures

More and more SQL databases implement some sort of procedural language for
in-database data processing and bulk operations. You may even chose to move
critical business logic into the database for performance, security or other reasons.

With jOOQ, stored procedures and stored functions are first-class citizens, if
you chose them to be.
The jOOQ code generator will generate a callable method for every routine. Stored
functions can be embedded typesafely into your SQL statements.

Even Greater Reasons for Using jOOQ

Thousands of happy jOOQ users aren't just using jOOQ. They love jOOQ. With jOOQ, writing SQL in Java is fun and productive. Here's what some of our users say:

Using jOOQ has been a joy, it's made life much easier for us.

Ilkka Halila - Boomlagoon Ltd.

The level of support from the jOOQ team was nothing short of excellent. They were extremely easy to talk to, and had my problem solved in less than an hour on Skype. I would recommend jOOQ support services to anyone.

Paul Woodland - ABC Information Solutions Pty Ltd

Thanks to jOOQ we are in control of our SQL which helps to be in control of our project.

Marco Dubacher - Ergon Informatik AG

The ability to trivially add SQL functions in a single line of a single method is fantastic! Honestly, we’ve gotten away using your documentation, examples, and source and never had to bug you guys with “How do I …?” You blog, manual, etc, all combine together with a simple library to make a great product that let’s us do some insane SQL *really really easily*.

Daniel Owens - DanielSecurities

We successfully deploy jOOQ in a range of projects with clients from various sectors, such as construction companies, telecom or security services companies: jOOQ offers us the necessary flexibility to satisfy their different requirements.

Gabrio Rivera - OneOverZero GmbH

Examples

With the jOOQ DSL, SQL looks almost as if it were
natively supported by Java.

jOOQ also supports more complex SQL statements. get all authors'
first and last names, and the number of books they've written in
German, if they have written more than five books in German in the last
three years (from 2011), and sort those authors by last names limiting
results to the second and third row

A short note from Lukas

In our experience when writing applications against large and complex Oracle databases, Hibernate was not a good fit because we wanted to stay close to SQL:2008 and to Oracle's extensions.

JDBC, on the other hand is verbose and causes a lot of quality and security headaches.

So we rolled our own tailor-made little SQL builder. In fact, every company I have ever met rolled their own tailor-made SQL builder.

But our business was not to write SQL builders, our business was to write brokerage logic. E-Banking workflows. Customer relationship management. We didn't care about infrastructure, really.

And because we didn't really care about the SQL parts, no one maintained those SQL builders. We were overwhelmed.

That's why I created jOOQ.

jOOQ is a simple way to integrate the SQL language into Java in a way that allows for developers to write safe and quality SQL fast and directly in Java such that they can again focus on their business.

Today, I'm happy to say that jOOQ is the product that I was wishing for when I started to really understand SQL. And I'm also proud to say that thousands of happy jOOQ users agree.

Why don't you give jOOQ a free try. If you don't like it you don't pay.