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

Menggunakan jOOQ untuk pemprosesan pangkalan data dalam pembangunan API Java

WBOY
Lepaskan: 2023-06-18 22:03:40
asal
1588 orang telah melayarinya

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!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan