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.
jOOQ ialah perpustakaan sumber terbuka berasaskan Java yang mempunyai ciri-ciri berikut:
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>
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>
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>
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();
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();
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);
Kita boleh menggunakan kaedah ambil untuk melaksanakan pertanyaan SQL asli dan mengembalikan objek set hasil yang dibalut jOOQ.
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!