Talk

JOOQ, Joy of SQL
Conference (INTERMEDIATE level)
Room 6
Score 0.16
Score 0.17
Score 0.18
Score 0.18
The match becomes increasingly accurate as the similarity score approaches zero.

What if we take back control over our interactions with our favorite database? Our databases are powerful monster and we underuse them 😓!

We’ll see with JOOQ how to write standard and advanced queries, with ease and type-safety!

This presentation is based on a my experience in SQL with PostgreSQL, since the beginning of my career as a software engineer. I described all the state of mind I go through about SQL and what lesson I've learned about it.

Kevin Davin
Gradle

Google Developer Expert on Google Cloud & Kotlin, Gitlab Hero, I am above all passionate about tech, languages, infrastructure, and automation. 

Kotlin, Java, TypeScript are my day-to-day languages. I deploy all of those on the Google Kubernetes Engine with the GitLab's Continuous Integration 🚀. 

Addict of agility and DevOps, some of my missions were to help teams to follow those philosophies. 

From code quality analysis to unit or end-to-end tests setup all the way to continuous deployment and operation, I try to follow a project from birth to production. 

I'm currently Software Engineer at Gradle and I'm working on Gradle Enterprise, the product which can improve the developer productivity by reducing its build and test time.

Generated Summary
WARNING: This summary was generated using GPT based on the transcript, as a result spelling mistakes and more importantly hallucinations can be present.

Using SQL and Juke for Data Management
Introduction
This presentation is about Juke and SQL. It is a personal story of Kevin, a Google Developer Expert and Kotlin backend developer, who works at Gradle. He discovered SQL during University, but it was not the beginning of his love story with it. After migrating to Java 8 and discovering new patterns of writing code, he realized that declarative code is more powerful than imperative code. After understanding this concept, he started to use SQL for everything he wanted and found it to be a great tool. He encourages everyone to update their brain on the right naming for the right thing and start using SQL.
GDBc API
GDBc is an API released in Java 1.1 that was used for a variety of data access purposes. It was very low level and difficult to read, so it was not meant to be used by end users. In order to improve SQL, AGB2 was developed and used in conjunction with object-relational mapping (ORM) frameworks such as Hibernate, Eclipse Link, and OpenJPA. This ORM allowed developers to store data in a database using annotations and standard configuration files. However, it was not recommended to generate the database from the object model as the two models may not be compatible.
GPR
GPR was also used in order to fetch data from the database using GPQL instead of plain SQL. GPA has two APIs to get data from a database. Criteria Query is not SQL, so it requires types to be provided at the beginning. Changing an ID on the database can crash the application at runtime. Named Entity Graph is an optimization to improve the system and get only what you want following a specific request. Migrating from one database to another requires some data migration and is not free. Spring Data, Micron Data and Quakers with Spanish are projects that provide neat implementations or things around an interface. Java code can be used to generate SQL queries, and the conditions can be extracted from the name of the method and parameters.
Duke
Duke is a DSL in Java for SQL that simplifies life and can generate code for Java 7 plus Scala or Kotlin. Duke provides access to objects and fields on a database, and the API of Duke is massive. Liquid Base or Flyway are powerful tools that can be used in production with Duke. Using Juke, a Java-based ORM, it is possible to access data from a database in a type-safe manner. This allows for more control over the data and makes it easier for developers to debug and test their code. Additionally, Juke allows for projections of data from multiple tables with an inner object, which can help improve performance. Finally, Juke is less prone to errors caused by magical stuff from other frameworks which could lead to data loss.
Juke
Juke is a database system that can help make coding with a database easier. It can infer foreign key associations and understand the schema, as well as use multi-sets to manage many-to-many relationships. It also provides features that are not standard to some databases, such as on duplicate key update and limit syntax conversion. Juke helps make coding with a database simpler and more efficient.
Features
Juke provides a powerful tool for database management and querying. It enables users to easily access, update, and delete data from their database. Additionally, it provides features such as the Active Records pattern and the Repository pattern to make data management even easier. Juke also has built-in features such as advanced searching, sorting, and pagination that can be used to quickly access data. This makes Juke a great tool for any project that requires data management.
SQL Queries
This article discusses a powerful method for creating SQL queries that use the Juke API. Instead of using string manipulation to perform searches, the author suggests using powerful Juke API functions. By using conditions, stream tags, and radio logic, it is possible to create a query that is type-safe and only requires one round trip to the database level. Additionally, the author suggests using Common Table Expressions to simplify the code and make it easier to read.
Conclusion
This article explains how to use SQL to store and query data in an application. It covers topics such as creating a tuple of three elements, using the SQL engine to perform more powerful functions than the JVM, and using JSON support to store and index data in a database. Additionally, it provides tips on how to create custom operators and methods when the database does not support certain features. This talk focused on the use of SQL as a data language and how it is becoming increasingly popular in various databases, such as Google Cloud Spanner, AlloyDB, BigQuery, Redis, PrestoDB, and MongoDB. The presenter discussed how SQL is a declarative language that has been around since 1992 and can still run today on PG. They also discussed Juke, a tool to learn SQL, and recommended a book about it for further learning. Finally, they offered Gradle swag such as stickers and shirts. In conclusion, SQL is an important data language that is becoming increasingly popular and Juke is a powerful tool for database management. It provides features such as the Active Records pattern and the Repository pattern to make data management easier. Additionally, it has built-in features such as advanced searching, sorting, and pagination to quickly access data. Finally, it is possible to use a plug-and-play system such as Cash Infinix Panel to increase performance.
You can also ask questions on the complete talk using Devoxx Insights