Rumah Java javaTutorial Menggunakan jOOQ untuk pemprosesan pangkalan data dalam pembangunan API Java

Menggunakan jOOQ untuk pemprosesan pangkalan data dalam pembangunan API Java

Jun 18, 2023 pm 10:03 PM
java Pemprosesan pangkalan data jooq

Dalam pembangunan aplikasi Java, operasi pangkalan data adalah tugas yang kerap berlaku. Java menyediakan banyak API untuk mengurus sambungan pangkalan data dan melaksanakan pertanyaan SQL, seperti Java Database Connectivity (JDBC), Hibernate, MyBatis, dsb. Walau bagaimanapun, API ini biasanya memerlukan kami menulis pernyataan pertanyaan SQL secara manual, yang menghasilkan sejumlah besar kod dan terdedah kepada ralat. jOOQ (Java Object Oriented Querying) ialah penjana pertanyaan SQL berorientasikan objek dengan taip kuat yang tujuan utamanya adalah untuk memudahkan penulisan pertanyaan SQL sambil mengekalkan keselamatan jenis. Artikel ini akan memperkenalkan cara menggunakan jOOQ dan menunjukkan cara mengintegrasikan jOOQ ke dalam aplikasi Java untuk memudahkan operasi pangkalan data.

  1. Pengenalan kepada jOOQ

jOOQ ialah perpustakaan sumber terbuka berasaskan Java yang mempunyai ciri-ciri berikut:

  • Berorientasikan objek: jOOQ menukar pertanyaan SQL kepada Penyataan ditukar kepada kod Java selamat jenis supaya kita boleh menggunakan pendekatan berorientasikan objek untuk akses data. Apabila menggunakan jOOQ, kita tidak perlu menulis pernyataan pertanyaan SQL, tetapi menggunakan kod Java yang dijana untuk membuat pertanyaan.
  • Ringkaskan pernyataan SQL: jOOQ menukarkan pernyataan pertanyaan SQL kepada kod Java melalui API jenis selamat, yang memastikan ketepatan kod. Pada masa yang sama, jOOQ juga menyokong penjanaan pernyataan SQL, dan pernyataan SQL yang dihasilkan boleh dijalankan terus dalam pangkalan data, yang menjadikan penyahpepijatan pernyataan SQL lebih mudah.
  • Menyokong berbilang pangkalan data: jOOQ menyokong berbilang pangkalan data, termasuk Oracle, MySQL, PostgreSQL, SQL Server, dsb.
  1. Penggunaan jOOQ

Seterusnya kami akan memperkenalkan cara menggunakan jOOQ.

2.1 Tambah kebergantungan

Mula-mula, kita perlu menambah kebergantungan jOOQ dalam fail pom.xml. Berikut ialah contoh:

<dependency>
    <groupId>org.jooq</groupId>
    <artifactId>jooq</artifactId>
    <version>3.14.9</version>
</dependency>
<dependency>
    <groupId>org.jooq</groupId>
    <artifactId>jooq-meta</artifactId>
    <version>3.14.9</version>
</dependency>
<dependency>
    <groupId>org.jooq</groupId>
    <artifactId>jooq-codegen</artifactId>
    <version>3.14.9</version>
</dependency>
Salin selepas log masuk

2.2 Menjana Kod

Untuk menggunakan jOOQ, kita perlu terlebih dahulu menjana beberapa kod yang akan bertanggungjawab untuk berinteraksi dengan pangkalan data. jOOQ menyediakan alat yang dipanggil jOOQ Codegen, yang boleh menjana kod secara automatik, termasuk objek Java untuk jadual pangkalan data dan kelas alat untuk pertanyaan. Kita perlu menggunakan alat jOOQ Codegen untuk menjana kod.

Pertama, kita perlu menulis fail konfigurasi bernama jooq-config.xml, yang terletak dalam direktori akar projek. Berikut ialah contoh:

<configuration>
  <jdbc>
    <driver>com.mysql.cj.jdbc.Driver</driver>
    <url>jdbc:mysql://localhost:3306/mydatabase</url>
    <user>myuser</user>
    <password>mypassword</password>
  </jdbc>
  <generator>
    <name>org.jooq.codegen.JavaGenerator</name>
    <database>
      <name>org.jooq.meta.mysql.MySQLDatabase</name>
      <includes>.*</includes>
      <excludes></excludes>
      <inputSchema>public</inputSchema>
    </database>
    <generate>
      <pojos>true</pojos>
      <daos>true</daos>
    </generate>
    <target>
      <packageName>com.example.generated</packageName>
      <directory>src/main/java</directory>
    </target>
  </generator>
</configuration>
Salin selepas log masuk

Dalam fail konfigurasi di atas, kita perlu menentukan maklumat sambungan pangkalan data, dan juga perlu menentukan nama pakej sasaran dan direktori untuk penjanaan kod.

Seterusnya, kita perlu menjalankan alat jOOQ Codegen melalui pemalam Maven. Tambahkan perisytiharan pemalam berikut dalam pom.xml:

<plugins>    
  <plugin>
    <groupId>org.jooq</groupId>
    <artifactId>jooq-codegen-maven</artifactId>
    <version>3.14.9</version>
    <executions>
      <execution>
        <id>generate-jooq-sources</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>generate</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <jdbc>
        <driver>com.mysql.cj.jdbc.Driver</driver>
        <url>jdbc:mysql://localhost:3306/mydatabase</url>
        <user>myuser</user>
        <password>mypassword</password>
      </jdbc>
      <generator>
        <database>
          <name>org.jooq.meta.mysql.MySQLDatabase</name>
          <includes>.*</includes>
          <excludes></excludes>
          <inputSchema>public</inputSchema>
        </database>
        <generate>
          <pojos>true</pojos>
          <daos>true</daos>
        </generate>
        <target>
          <packageName>com.example.generated</packageName>
          <directory>src/main/java</directory>
        </target>
      </generator>
    </configuration>
  </plugin>
</plugins>
Salin selepas log masuk

Perisytiharan pemalam di atas boleh didapati dalam pemalam jOOQ Codegen dalam pengurus pemalam Maven dan menentukan nama pakej sasaran yang dijana dan direktori. Jalankan projek Maven untuk menjana kod.

2.3 Gunakan jOOQ untuk mengakses pangkalan data

Terdapat dua cara utama untuk menggunakan jOOQ untuk mengakses pangkalan data: menggunakan DSL dan menggunakan pertanyaan SQL asli.

Berikut ialah contoh penggunaan jOOQ untuk membuat pertanyaan:

Result<Record> result = create.select().from(TABLE).where(ID.eq(1)).fetch();
Salin selepas log masuk

Dalam contoh di atas, create mewakili objek pertanyaan pangkalan data, TABLE dan ID dijana secara automatik kelas Java, dan kita boleh menggunakan di mana kaedah untuk menentukan syarat pertanyaan, dan gunakan kaedah ambil untuk melaksanakan pertanyaan. Hasil pelaksanaan akan mengembalikan objek set hasil enkapsulasi jOOQ.

2.4 Menggunakan DSL jOOQ

jOOQ menyokong sintaks yang dipanggil DSL (Bahasa khusus Domain), yang boleh menjana pernyataan pertanyaan SQL dengan cepat. Sintaks DSL ditakrifkan terutamanya oleh jOOQ, jadi saya tidak akan memperkenalkannya satu per satu di sini. Berikut ialah contoh mudah:

create.select().from(TABLE).where(ID.eq(1)).fetch();
Salin selepas log masuk

Kod di atas menjana pernyataan pertanyaan PILIH untuk menanyakan rekod dalam jadual JADUAL yang medan IDnya bersamaan dengan 1.

2.5 pertanyaan SQL asli menggunakan jOOQ

jOOQ juga menyokong pertanyaan SQL asli. Berikut ialah contoh:

String sql = "SELECT * FROM table WHERE id = ?";
Result<Record> result = create.fetch(sql, 1);
Salin selepas log masuk

Kita boleh menggunakan kaedah ambil untuk melaksanakan pertanyaan SQL asli dan mengembalikan objek set hasil yang dibalut jOOQ.

  1. Ringkasan

Artikel ini memperkenalkan cara menggunakan jOOQ, termasuk menjana kod dan kaedah pertanyaan asas. jOOQ boleh memudahkan penulisan pernyataan pertanyaan SQL sambil memastikan ketepatan dan keselamatan jenis pernyataan pertanyaan. jOOQ juga menyediakan sintaks DSL untuk menjana pernyataan pertanyaan SQL dengan cepat, dan juga menyokong penggunaan pertanyaan SQL asli. Gunakan jOOQ untuk memudahkan operasi pangkalan data dalam aplikasi Java.

Atas ialah kandungan terperinci Menggunakan jOOQ untuk pemprosesan pangkalan data dalam pembangunan API Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

Program Java untuk mencari kelantangan kapsul Program Java untuk mencari kelantangan kapsul Feb 07, 2025 am 11:37 AM

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

Bagaimana untuk menjalankan aplikasi boot musim bunga pertama anda di Spring Tool Suite? Bagaimana untuk menjalankan aplikasi boot musim bunga pertama anda di Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

Spring Boot memudahkan penciptaan aplikasi Java yang mantap, berskala, dan siap pengeluaran, merevolusi pembangunan Java. Pendekatan "Konvensyen Lebih Konfigurasi", yang wujud pada ekosistem musim bunga, meminimumkan persediaan manual, Allo

See all articles