Download - An Introduction to jOOQ
An Introduction to JOOQ (or, Long Live SQL)
Steve Pember @svpember
Gr8Conf US, 2016
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
Agenda• Growing beyond Object Relational Mappers
• An Introduction to jOOQ
• What We’ve Learned (A.K.A. jOOQ and Groovy)
• Demo / Code Samples
THIRDCHANNEL @svpember
ORM Difficulties• Object / Relational Impedance Mismatch
• ORM Oriented Schema Design
THIRDCHANNEL @svpember
ORM Difficulties• Object / Relational Impedance Mismatch
• ORM Oriented Schema Design
• Trouble with Complicated Queries
THIRDCHANNEL @svpember
ORM Difficulties• Object / Relational Impedance Mismatch
• ORM Oriented Schema Design
• Trouble with Complicated Queries
• Resource Usage
THIRDCHANNEL @svpember
ORM Difficulties• Object / Relational Impedance Mismatch
• ORM Oriented Schema Design
• Trouble with Complicated Queries
• Resource Usage
• Performance
THIRDCHANNEL @svpember
jOOQ (Intro)• Library for SQL interaction
• For people not afraid of SQL
• The jOOQ authors LOVE SQL
THIRDCHANNEL @svpember
jOOQ (Intro)• Library for SQL interaction
• For people not afraid of SQL
• The jOOQ authors LOVE SQL
• Database should drive internal models
THIRDCHANNEL @svpember
jOOQ (Features)• Type-Safe SQL
• Fluent API
• Code Generation
• Active Record
THIRDCHANNEL @svpember
jOOQ (Features)• Type-Safe SQL
• Fluent API
• Code Generation
• Active Record
• Full SQL Support
THIRDCHANNEL @svpember
jOOQ (Features)• Type-Safe SQL
• Fluent API
• Code Generation
• Active Record
• Full SQL Support
• Native Support of Stored Procedures
THIRDCHANNEL @svpember
jOOQ (Features)• Type-Safe SQL
• Fluent API
• Code Generation
• Active Record
• Full SQL Support
• Native Support of Stored Procedures
• Open Source and Free
THIRDCHANNEL @svpember
Agenda• Growing beyond Object Relational Mappers
• An Introduction to jOOQ
• What We’ve Learned (A.K.A. jOOQ and Groovy)
THIRDCHANNEL @svpember
What We’ve Learned• Code Generation is Not Mandatory
• jOOQ Does Not Manage Transactions For You!
THIRDCHANNEL @svpember
What We’ve Learned• Code Generation is Not Mandatory
• jOOQ Does Not Manage Transactions For You!
• Import / Export Direct to CSV
THIRDCHANNEL @svpember
What We’ve Learned• Code Generation is Not Mandatory
• jOOQ Does Not Manage Transactions For You!
• Import / Export Direct to CSV
• Easy & Clear Logging
THIRDCHANNEL @svpember
What We’ve Learned• Code Generation is Not Mandatory
• jOOQ Does Not Manage Transactions For You!
• Import / Export Direct to CSV
• Easy & Clear Logging
• Binders / Casting
THIRDCHANNEL @svpember
What We’ve Learned• Code Generation is Not Mandatory
• jOOQ Does Not Manage Transactions For You!
• Import / Export Direct to CSV
• Easy & Clear Logging
• Binders / Casting
• jOOQ & CompileStatic
THIRDCHANNEL @svpember
Agenda• Growing beyond Object Relational Mappers
• An Introduction to jOOQ
• What We’ve Learned (A.K.A. jOOQ and Groovy)
• Demo / Code Samples
THIRDCHANNEL @svpember
More Info• jOOQ Blog: https://blog.jooq.org/
• Vietnam of Computer Science: http://blogs.tedneward.com/post/the-vietnam-of-computer-science/
• Fluent API: http://martinfowler.com/bliki/FluentInterface.html
• jOOQ Gradle Plugin: https://github.com/etiennestuder/gradle-jooq-plugin
• Code Demo: https://github.com/spember/jooq-demo
THIRDCHANNEL @svpember
Images• Brave Puffin: https://memegenerator.net/instance/63187852
• Weak(Gravity Falls): http://giphy.com/gifs/weak-gravity-falls-sTm3FmD7knvO0
• Strong (Spongebob): http://www.reactiongifs.com/strongbob/?utm_source=rss&utm_medium=rss&utm_campaign=strongbob
• Andy Dwyer (No Idea): http://memecaptain.com/gend_image_pages/iepvqA
• Atticus Finch: http://www.latimes.com/entertainment/movies/la-et-mn-atticus-white-savior-20150715-story.html
• Yikes (Adam Scott): http://giphy.com/gifs/awkward-yikes-adam-scott-srFijDgoNj008
• Suspicious Fry: http://imgur.com/gallery/OCcno
• Strong (Spongebob): http://www.reactiongifs.com/strongbob/?utm_source=rss&utm_medium=rss&utm_campaign=strongbob