Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building...
Transcript of Building Realtime Access to Data Apps with jOOQprincetonacm.acm.org/tcfpro/presentations/Building...
![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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/11.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/17.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/18.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/20.jpg)
20
Thanks!
@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](https://reader036.fdocuments.in/reader036/viewer/2022062223/5fb59f6f501f660be50c35f7/html5/thumbnails/21.jpg)
Upcoming Events
• March 17-18, 2017
•tcf-nj.org
• April 18-19, 2017
•phillyemergingtech.com
21