강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Database

本当のjOOQ! Type Safe SQL with Java

jOOQでType SafeしたSQLの強力さを体験してください!

  • sdm32851630
실습 중심
db설계
쿼리
Java
jooq
SQL
Spring Boot
dsl

学習した受講者のレビュー

こんなことが学べます

  • jOOQの基礎から実務活用まで一度に学ぶことができます。

  • XML設定、文字列のないJavaコードでのみSQLを作成できます。

  • ORMではできないSQL機能をすべてJavaコードとして使用できます。

SQLは不便ではありません。

SQLを文字列で書く方法は不便です。


本当のjOOQ! Type Safe SQL with Java


データベースとSQLをうまく扱うことは、すべてのバックエンド開発者にとって不可欠な技術です。しかし、伝統的な文字列ベースのSQLを書く方法は反復的でエラーが発生しやすいです。

jOOQはこれらの問題を解決する強力なツールで、タイプセーフティを保証しながらも直感的な方法でSQLを作成できるようにします。このレッスンでは、 jOOQの基本概念から深刻な活用方法まで段階的に学習できます。 (jOOQはジュークと読みます。)


このレッスンはjOOQオープンソースバージョンについてのみ説明します。

1706621217839

2024.01 怠惰な開発者カンファレンス - jOOQ、SQLを書く別の方法スピーカー参加

JPAはすべてを解決しません。

真のスキルを得るには、SQLを理解して使用することを知っておく必要があります。

最新のJavaバックエンドは、主にSpring BootとJPAを組み合わせて使用しています。
しかし、JPAの実装であるHibernateはSQLの95%しかカバーしていません。

このため、安定したサービスを開発するためにはSQLが必須です。 jOOQSQL を型セーフで使いやすくします。

Hibernateの創設者Gavin King - 「すべてをHibernateで処理する必要はありません」

文字列ではなくJavaコードでSQLを書く

jOOQのdialectベースのSQL生成

jOOQはJavaコードでSQLを作成します。 (JPQLではありません)

複雑なクエリと動的クエリを簡単に解放することができ、一度作成したコードはコードを変更せずに他のデータベースで使用できます。また、SQLをプログラマティックに制御することで、where条件なしのupdate&delete文の実行防止、スロークエリの検出など、さまざまな機能を提供できます。

このようなことを学びます。

1⃣XMLと文字列なしでJavaでSQLを作成する

人が間違えやすいXMLや、文字列の代わりにJavaコードでSQLを作成します。故にヒューマンエラーを源泉的に遮断できます。誰もがSQLエラーのために運用サーバーに障害が発生したことがありますか?

複雑なXMLはこんにちは〜

2⃣ SQL Builder、それ以上の様々な便利機能

jOOQには、JavaコードでSQLを作成するSQL Builder以上の機能があります。 ActiveRecord、Generated Daoなど、さまざまな機能を使用してSQLを簡単に作成できます。

jOOQのActiveRecordパターン

3⃣ Spring Boot環境でのjOOQの使い方

ビジネスでよく使用されるSpring Framework環境でjOOQがどのように動作するかを確認します。

Spring Boot環境でのjOOQ

受講前の注意

練習環境

  • オペレーティングシステムとバージョン(OS):Windows、MacOS、LinuxなどのすべてのOSが利用可能です。

  • 使用ツール: Intellij, Docker for Desktop,


学習資料

  • 提供する学習資料の種類:PPT、FitHubのソースコード

  • 分量と容量:各セクションで学習資料を提供する

選手の知識と注意事項

  • このレッスンでは、Spring Boot環境でjOOQを使用する方法について説明します。

  • このレッスンではMySQLとDockerを使用しているため、この2つの理解がある程度必要です。


  • 本講義では、隣接技術であるMyBatis、JPA、QueryDSLがしばしば挙げられます。講義の理解を妨げるほどではありませんが、見慣れないように感じられますので、この部分ご了承ください。


こんな方に
おすすめです

学習対象は
誰でしょう?

  • JPAを使ってネイティブSQLを避けられなくて悩んだ方

  • QueryDSLのようにTypeSafeにSQLを作成したい方

  • MyBatisのXML設定と、文字列ベースのクエリ作成方法を改善したい方

前提知識、
必要でしょうか?

  • Java

  • Spring Boot

  • Docker

  • RDBMS(MySQL)

こんにちは
です。

345

受講生

17

受講レビュー

28

回答

4.9

講座評価

1

講座

안녕하세요. 지식공유자 설동민입니다.

현재 카카오 백엔드 개발자로 근무하고 있으며, 복잡한 문제를 명쾌하게 풀어내는걸 좋아합니다.

경영학부 비전공자 출신으로, 다양한 OpenSource들에 대한 분석과 여러 기술적인 경험들을 통해
웹의 전반적인 기술을 학습하였습니다. OOP와 SQL, 이 어울리지 않는 두가지를 제일 좋아합니다.

Github: https://github.com/SightStudio


이력

  • 2021. 12 ~ 현재 : 카카오 백엔드 개발

  • 2020.12 ~ 2021.12: 전) 이스트소프트 백엔드 개발

 

カリキュラム

全体

30件 ∙ (4時間 53分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

17件

4.9

17件の受講レビュー

  • kwj1270님의 프로필 이미지
    kwj1270

    受講レビュー 6

    平均評価 5.0

    5

    10% 受講後に作成

    My experience using Jooq at my previous company was very good. JPA is very convenient and powerful, but on the other hand, I was disappointed when I encountered functions that were not supported. In the case of Jooq, it was very good that it supported all SQL functions, and that it could be made type-safe through J classes. I was very disappointed that there was no reference, but I personally really like that you made such a detailed lecture.

    • harpuria870722님의 프로필 이미지
      harpuria870722

      受講レビュー 7

      平均評価 4.9

      5

      90% 受講後に作成

      I am a 6-year SI developer who mainly uses MyBatis when dealing with SQL. I studied JPA at first because I wanted to avoid the inevitable human errors that occur after using MyBatis for a long time. I felt the charm of JPA when managing tables with entities without directly writing DDL and when writing C, U, D. However, I was losing my motivation to learn due to the disadvantages of writing SELECT statements and the strangely unfamiliar JPQL (if you use it, you risk having to carry human errors as they are...) and then I found out about this lecture. (I also tried QueryDSL, but I wondered if it was okay because it had not been maintained for a long time... ㅠㅠ) The introduction was long when writing a jOOQ course review, but in conclusion, I really liked this course. As someone who likes writing SQL, I thought that JOOQ, which reduces human errors and creates queries in a similar way to SQL, was the perfect technology for me. Thank you for the great lecture.

      • choiyoungkwon님의 프로필 이미지
        choiyoungkwon

        受講レビュー 5

        平均評価 5.0

        5

        100% 受講後に作成

        I was surprised that it seemed to be a technology stack worth considering introducing, even though it was a technology I was not familiar with. I also found it personally interesting because it compared it to licenses, queryDsl, and JPA.

        • inkang05084175님의 프로필 이미지
          inkang05084175

          受講レビュー 1

          平均評価 5.0

          5

          100% 受講後に作成

          This is a really good lecture. I thought jooq was a new technology, but it's been over 10 years. This great technology almost got buried, so thank you for introducing it to Korea. The other features are also really good.

          • tussle님의 프로필 이미지
            tussle

            受講レビュー 7

            平均評価 5.0

            5

            100% 受講後に作成

            I was lucky to find this great lecture while looking for ways to reflect jOOQ in an environment using R2DBC. It was very helpful for understanding because there were a lot of great contents that covered the basic knowledge of jOOQ. I am still trying to set it up to suit the environment and looking for ways to write codes for R2DBC, but I am moving forward step by step more easily than I thought by supporting what I learned in the lecture. Thank you for creating such a great lecture.

            ¥6,526

            似ている講座

            同じ分野の他の講座を見てみましょう!