building realtime access to data apps with jooqprincetonacm.acm.org/tcfpro/presentations/building...

21
1 Building Realtime Data Apps with jOOQ TCF IT Professional Conference March 16, 2018 Michael P. Redlich @mpredli about.me/mpredli/

Upload: others

Post on 14-Aug-2020

32 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

1

Building Realtime Data Apps with jOOQ

TCF IT Professional ConferenceMarch 16, 2018

Michael P. Redlich@mpredli

about.me/mpredli/

Page 2: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Who’s Mike?

• BS in CS from

• “Petrochemical Research Organization”

• Java Queue News Editor, InfoQ

• Ai-Logix, Inc. (now AudioCodes)

• Amateur Computer Group of New Jersey

2

Page 3: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Objectives

• What is jOOQ?

• Why jOOQ?

• Database Support

• Get Started Building an Application

• Live Demo (yea!)

• jOOQ Resources

3

Page 4: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

What is jOOQ (1)?

“jOOQ generates Java code from your database and lets you build type-safe SQL queries through its fluent API.”

jOOQ website, https://www.jooq.org/

4

Page 5: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

What is jOOQ (2)?

• First introduced in October 2009

• Latest version: 3.10.5

• Generates Java classes from a databases schema

• Built-in internal DSL that emulates SQL in Java

5

Page 6: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

How Do I Pronounce jOOQ?

jOOQ website, https://www.jooq.org/how-to-pronounce-jooq

6

Page 7: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Why jOOQ? (1)

“SQL was never meant to be abstracted. To be confined in the narrow boundaries of heavy mappers, hiding the beauty and simplicity of relational data. SQL was never meant to be object-oriented. SQL was never meant to be anything other than…SQL!”

jOOQ website, https://www.jooq.org/

7

Page 8: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Why jOOQ? (2)

• Database First

• Type Safe SQL

• Code Generation

• Active Records

• Multi-Tenancy

• Standardisation

• Query Lifecycle

• Procedures

8

Page 9: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

jOOQ Editions

• Open Source

• Express (small startup or individual)

• Professional (small-to-medium company)

• Enterprise (large company)

9

Page 10: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

jOOQ Open Source

• CUBRID 8.4+

• Derby 10.10+

• Firebird 2.5, 3.0

• H2 1.3,1.4

• HSQLDB 2.2+

• MariaDB 5.2+

• MySQL 5.5+

• PostgreSQL 9.3+

• SQLite 3

10

Page 11: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Let’s Get Started…

11

Page 12: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Example Database

12

“Hello, Java Users Group!”

Page 13: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Generate Code (1)<generator>

<database>

<name>org.jooq.util.mysql.MySQLDatabase</name>

<includes>.*</includes>

<excludes></excludes>

<inputSchema>publications</inputSchema>

</database>

</generator>

13

Page 14: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Generate Code (2)<generator>

<target>

<packageName>

org.redlich.pubs.model

</packageName>

<directory>src/main/java</directory>

</target>

</generator>

14

Page 15: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Generate Code (3)<executions>

<execution>

<goals>

<goal>generate</goal>

</goals>

</execution>

</executions>

15

Page 16: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Let’s Build That App…

16

Page 17: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

17

jOOQ Resources

•jooq.org

•jooq.org/tuesdays

•jooq.org/translate

•blog.jooq.org

•https://www.infoq.com/news/2017/02/data-geekery-releases-jooq-3-9

Page 18: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Acknowledgements

• Data Geekery, GmbH

• Lukas Eder, Founder and CEO at Data Geekery

18

Page 19: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Upcoming Events

• ACGNJ Java Users Group

• Dr. Venkat Subramaniam

• Monday, March 19, 2018

• Dorothy Young Center for the Arts, Room 106

• Drew University

• 7:30-9:00pm

• “Twelve Ways to Make Code Suck Less”

19

Page 20: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

20

Thanks!

[email protected]

@mpredli

redlich.net

slideshare.net/mpredli01

github.com/mpredli01/jOOQ

Page 21: Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building Realtime Acces… · Building Realtime Data Apps with jOOQ TCF IT Professional Conference

Upcoming Events

• March 17-18, 2017

•tcf-nj.org

• April 18-19, 2017

•phillyemergingtech.com

21