Katakanlah proyek Anda sangat membutuhkan ORM dan Anda ingin menerapkannya secepat mungkin. Pada artikel ini, saya ingin menunjukkan kepada Anda bagaimana Anda dapat melakukan ini hanya dalam empat langkah menggunakan contoh penggunaan proyek Apache Cayenne open source .

Untuk memulainya, saya akan menjelaskan secara singkat mekanisme bekerja dengan perpustakaan ini. Skema database dan model dijelaskan dalam file xml yang dapat dibuat melalui aplikasi GUI atau melalui konsol. Kemudian, berdasarkan file xml, objek java dibuat, yang merupakan pemetaan tabel yang sesuai dalam database. Langkah terakhir adalah membuat ServerRuntimeobjek yang merangkum seluruh tumpukan Apache Cayenne.
Jadi mari kita lanjutkan ke contoh. Apa yang perlu dilakukan:
- Buat skema database
- Impor skema ke dalam proyek, yaitu, dapatkan file xml dengan deskripsi skema
- Buat model objek yaitu menghasilkan kelas java
- Inisialisasi
ServerRuntimeuntuk mengakses database dari aplikasi
? maven gradle , Java 1.8+ . maven, java 14 Apache Cayenne 4.2.M1. mysql. 4.1 .
.
, : , , .

CREATE SCHEMA IF NOT EXISTS cars_demo; USE cars_demo;
CREATE TABLE car_brand (ID INT NOT NULL AUTO_INCREMENT, NAME VARCHAR(200) NULL, COUNTRY VARCHAR(200) NULL, PRIMARY KEY (ID)) ENGINE=InnoDB;
CREATE TABLE car_model (ID INT NOT NULL AUTO_INCREMENT, NAME VARCHAR(200) NULL, CAR_BRAND_ID INT NULL, PRIMARY KEY (ID)) ENGINE=InnoDB;
CREATE TABLE feedback (CAR_MODEL_ID INT NULL, ID INT NOT NULL AUTO_INCREMENT, FEEDBACK VARCHAR(200) NULL, PRIMARY KEY (ID)) ENGINE=InnoDB;
ALTER TABLE car_model ADD FOREIGN KEY (CAR_BRAND_ID) REFERENCES car_brand (ID) ON DELETE CASCADE;
ALTER TABLE feedback ADD FOREIGN KEY (CAR_MODEL_ID) REFERENCES car_model (ID) ON DELETE CASCADE;
, .
. :
<plugin>
<groupId>org.apache.cayenne.plugins</groupId>
<artifactId>cayenne-maven-plugin</artifactId>
<version>${cayenne.version}</version>
<configuration>
<dataSource> <!--1-->
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://127.0.0.1:3306/cars_demo</url>
<username>root</username>
<password>root</password>
</dataSource>
<cayenneProject>${project.basedir}/src/main/resources/cayenne/cayenne-project.xml</cayenneProject> <!--2-->
<map>${project.basedir}/src/main/resources/cayenne/datamap.map.xml</map> <!--3-->
<dbImport> <!--4-->
<defaultPackage>cayenne.note.project.model</defaultPackage>
<catalog>cars_demo</catalog>
</dbImport>
</configuration>
<dependencies>
<dependency> <!--5-->
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
</dependencies>
</plugin>
- (1) DataSource,
- (2) , xml, Cayenne
- (3) , xml
- (4) ,
- (5) mysql-connector mysql
:
mvn cayenne:cdbimport
, (2) (3). , cayenne-project.xml , . datamap.map.xml â , .
, java , . , :
mvn cayenne:cgen
, , . , . auto . , . , auto. .
, Apache Cayenne.
ServerRuntime â Cayenne, .
ObjectContext â , .
ServerRuntime cayenneRuntime = ServerRuntime.builder()
.dataSource(DataSourceBuilder
.url("jdbc:mysql://127.0.0.1:3306/cars_demo")
.driver("com.mysql.cj.jdbc.Driver")
.userName("root") // Need to change to your username
.password("root") // Need to change to your password
.build())
.addConfig("cayenne/cayenne-project.xml")
.build();
ObjectContext context = cayenneRuntime.newContext();
:
CarBrand carBrand = context.newObject(CarBrand.class);
carBrand.setName("BMW");
carBrand.setCountry("Germany");
CarModel carModel = context.newObject(CarModel.class);
carModel.setName("i3");
carModel.setCarBrand(carBrand);
Feedback feedback = context.newObject(Feedback.class);
feedback.setFeedback("Like");
feedback.setCarModel(carModel);
context.commitChanges();
, ObjectContext, context.commitChanges().
Apache Cayenne:
List<CarBrand> carBrans = ObjectSelect.query(CarBrand.class).select(context);
Itu semua untukku. Seperti yang Anda lihat dari contoh ini, dalam beberapa langkah Anda bisa mendapatkan ORM produksi yang beroperasi penuh. Saya harap artikel ini bermanfaat. Contoh lengkapnya dapat ditemukan di sini .