Tutorial Musim Bunga,,en,Pengimbasan komponen dalam rangka Spring,,en,Pengimbasan komponen dalam rangka Spring,,en,pengaturcara cenderung untuk menyatakan kacang atau komponen dalam fail kacang konfigurasi XML,,en,untuk membolehkan bekas Spring mengesan dan mendaftarkannya,,en,anda harus tahu bahawa Spring mampu melakukan imbasan secara automatik,,en,mengesan dan seterusnya,,en,memasukkan kacang dari pakej projek yang sudah ditentukan,,en,yang dapat menyelamatkan anda dari tugas membosankan kerana harus menyatakan kacang dalam fail XML yang berasingan,,en,Inilah yang akan kita perhatikan dalam tutorial ini,,en,Apakah penemuan kacang secara automatik,,en,Semasa bekerja dengan Spring,,en,boleh digunakan dengan menggunakan kacang,,en,hujah pembina dan tag harta,,en,ketika kita menghadapi aplikasi besar,,en,jelas bahawa bilangan kacang meningkat dan begitu juga,,en – JPA (Java persistence API) with spring framework

Spring Data JPA

Tutorial Musim Bunga,,en,Pengimbasan komponen dalam rangka Spring,,en,Pengimbasan komponen dalam rangka Spring,,en,pengaturcara cenderung untuk menyatakan kacang atau komponen dalam fail kacang konfigurasi XML,,en,untuk membolehkan bekas Spring mengesan dan mendaftarkannya,,en,anda harus tahu bahawa Spring mampu melakukan imbasan secara automatik,,en,mengesan dan seterusnya,,en,memasukkan kacang dari pakej projek yang sudah ditentukan,,en,yang dapat menyelamatkan anda dari tugas membosankan kerana harus menyatakan kacang dalam fail XML yang berasingan,,en,Inilah yang akan kita perhatikan dalam tutorial ini,,en,Apakah penemuan kacang secara automatik,,en,Semasa bekerja dengan Spring,,en,boleh digunakan dengan menggunakan kacang,,en,hujah pembina dan tag harta,,en,ketika kita menghadapi aplikasi besar,,en,jelas bahawa bilangan kacang meningkat dan begitu juga,,en – JPA (Java persistence API) with spring framework

Tinjauan

Pemetaan Hubungan Objek,,en,Syarikat ingin menghabiskan masa sesedikit mungkin untuk mengubah suai pertanyaan SQL bila,,en,jenis diubah,,en,yang berasaskan ORM,,en,menjadikan pangkalan data pertanyaan SQL agnostik berdasarkan keadaan tertentu,,en,Memandangkan kemampuan JPA,,en,ini lebih awal daripada penyelesaian ketekunan data lain yang terdapat di pasaran,,en,Apa itu ORM,,en,Pemetaan Hubungan Objek,,en,adalah kaedah untuk memetakan jadual pangkalan data ke kelas,,en,ORM mewakili cara baru untuk membuat pangkalan data,,en,Perbezaan utama antara cara pangkalan data query ORM dan query seperti SQL adalah yang terakhir hanya berlaku dalam kes SQL tetapi pertanyaan ORM dapat berfungsi pada pangkalan data mana pun,,en,ORM menjadikan aplikasi perisian berorientasikan objek,,en,Apabila kaedah ORM digunakan,,en,setiap jadual pangkalan data dipetakan ke kelas,,en (ORM) concept is much-favoured these days because of the relative advantages it offers over relational database systems. ORM makes managing database a simpler task than do relational database systems. Enterprises want to spend as less time as possible on modifying SQL queries when database types are changed. Spring JPA, which is ORM-based, makes SQL queries database agnostic based on certain conditions. Given the capabilities of JPA, it is ahead of other data persistence solutions available in the market.








What is ORM?

Object Relationship Mapping (ORM) is a method for mapping database tables to classes. ORM represents a new way of querying database. The main difference between the ORM-way of database querying and SQL-like querying is that the latter is applicable only in the case of SQL but ORM query can work on any database. ORM makes software applications object oriented.

When the ORM method is applied, each database table is mapped to a class. Dua kerangka kerja tersedia untuk melaksanakan kaedah ORM,,en,Hibernate Framework dan Java Persistence API,,en,Untuk memahami faedah utama ORM,,en,marilah kita menggunakan contoh,,en,Projek menggunakan MySQL tetapi keputusan dibuat setelah beberapa hari untuk menggunakan Oracle sebagai gantinya,,en,tidak perlu mengubah pertanyaan sepenuhnya kerana pertanyaan ORM bersifat global,,en,Perubahan dalam pertanyaan akan minimum,,en,Kenapa JPA,,en,Terdapat beberapa pilihan yang tersedia untuk pembangun perisian untuk menyimpan dan mengambil data berterusan dalam pangkalan data yang merangkumi siri,,en,alat pemetaan relasi objek proprietari,,en,pangkalan data objek,,en,kacang entiti,,en,kecuali JDO,,en,semua pilihan adalah terhad,,en,JPA mengatasi batasan ini dan memberikan penyelesaian ketekunan data yang komprehensif,,en: Hibernate Framework and the Java Persistence API. To understand the main benefit of ORM, let us use an example. A project is using MySQL but a decision is made after some days to use Oracle instead. In this case, there is no need to change the query totally because the ORM query is global in nature. The changes in query will be minimal in nature.

Why JPA?

There are several options available to software developers for storing and retrieving persistent data in the database which include serialization, JDBC, JDO, proprietary object-relational mapping tools, object databases, dan EJB 2 entity beans. However, except JDO, all options are limited. JPA overcomes these limitations and provides a comprehensive data persistence solution. Ini juga dapat mengurangkan tugas overhead yang perlu dilakukan oleh pembangun perisian ketika mereka menguruskan operasi pangkalan data,,en,Disediakan di bawah adalah beberapa sebab yang menarik JPA adalah penyelesaian ketekunan data yang komprehensif,,en,Semua keupayaan bulat,,en,Walaupun hampir semua kerangka kerja atau alat ketekunan data terhad kemampuannya,,en,JPA melangkah lebih jauh,,en,Untuk memberikan beberapa contoh batasan alat lain,,en,dengan Serialisasi,,en,senang menyimpan maklumat grafik objek dengan mudah,,en,ia tidak dapat menguruskan jumlah data yang banyak,,en,JDBC API adalah pilihan yang lebih baik daripada Serialisasi tetapi sukar digunakan,,en,Kerangka pemetaan ORM terhad kerana terikat dengan pangkalan data khusus vendor,,en,JPA menggabungkan kekuatan sistem yang disebutkan di atas tetapi juga mengatasi batasannya,,en,Tiada tugas overhead,,en. Provided below are a few compelling reasons JPA is a comprehensive data persistence solution.

All round capabilities

While almost all data persistence frameworks or tools are limited in their capabilities, JPA goes many steps beyond. To give a few examples of the limitations of the other tools, with Serialization, it is easy to store object graph information easily, it is unable to manage large volumes of data. JDBC API is a better option than Serialization but is difficult to use. ORM mapping frameworks are limited because they are bound by vendor-specific databases. JPA combines the strengths of the systems mentioned above but also overcomes their limitations.

No overhead tasks

Menguruskan operasi pangkalan data adalah cadangan pelaburan yang tinggi kerana memerlukan masa dan usaha,,en,JPA membolehkan pembangun perisian menumpukan pada tugas utama mereka dan mengurus pengurusan pangkalan data,,en,Perusahaan dapat mencurahkan lebih banyak masa ke arah teras,,en,pekerjaan dengan keutamaan tinggi,,en,Agnostik pangkalan data,,en,Mengubahsuai,,en,pertanyaan bergantung pada pangkalan data yang berbeza adalah cadangan penggunaan sumber,,en,Walaupun semua pangkalan data menerima SQL sebagai standard,,en,Dialek SQL berbeza,,en,JPA menyediakan pangkalan data bebas-agnostik di atas SQL,,en,Ini menghilangkan kebergantungan SQL pada pangkalan data,,en,Apa itu Spring JPA,,en,juga dikenali sebagai Spring Data JPA,,en,adalah API yang memudahkan pelaksanaan repositori berasaskan JPA,,en,Sudah menjadi masalah untuk melaksanakan lapisan akses data kerana tugas-tugas yang terlibat,,en. JPA allows software developers focus on their core jobs and takes care of database management. Enterprises are able to devote more time towards core, high-priority jobs.

Database agnostic

Modifying SQL queries depending on different databases is a resource-consuming proposition. Though all databases accept SQL as standard, SQL dialects differ. JPA provides a database independent-agnostic on top of SQL. This removes the dependency of SQL on databases.

What is Spring JPA?

Spring JPA, also known as Spring Data JPA, is an API that facilitates implementing JPA-based repositories. It has been quite a problem to implement data access layers because of the tasks involved. Terlalu banyak kod untuk dilaksanakan hanya untuk melaksanakan pertanyaan langsung,,en,melakukan pengauditan dan penomboran data,,en,Spring JPA menyelesaikan masalah ini dengan membiarkan pembangun memberi tumpuan kepada tugas utama mereka - menulis antara muka repositori yang merangkumi kaedah pencari tersuai - dan mengurus pelaksanaannya,,en,Ciri-ciri penting dari,,en,adalah,,en,Sokongan untuk pemetaan entiti berasaskan XML,,en,Pengauditan kelas domain telus,,en,Sokongan untuk penomboran dan pelaksanaan pertanyaan dinamik,,en,Sokongan untuk mengintegrasikan kod akses data tersuai,,en,Konfigurasi repositori berasaskan JavaConfig dengan memperkenalkan @EnableJpaRepositories,,en,Apakah komponen ORM,,en,Terdapat peralihan dari pangkalan data relasional ke pangkalan data objek kerana yang terakhir menawarkan kelebihan perbandingan berbanding yang sebelumnya,,en; perform data auditing and pagination. Spring JPA solves these pain points by letting the developer focus on their main tasks – writing repository interfaces which include custom finder methods – and taking care of the implementation. The salient features of Spring Data JPA are:

  • Support for XML-based entity mapping.
  • Transparent domain class auditing.
  • Support for pagination and dynamic query execution.
  • Support for integrating custom data access code.
  • JavaConfig based configuration of repository by introducing @EnableJpaRepositories.

What are the ORM components?

There has been a shift from relational database to object database because the latter offers comparative advantages over the former. Perusahaan mengalami kesukaran yang besar dalam penyelenggaraan data dengan pangkalan data hubungan,,en,Pangkalan data objek melakukan penyimpanan,,en,mengambil semula,,en,mengemas kini,,en,dan penyelenggaraan pangkalan data,,en,Pada inti pangkalan data objek adalah fail orm.xml yang,,en,berasaskan XML,,en,Oleh kerana tidak perlu menyusun,,en,senang mengedit pelbagai sumber data dengan pentadbiran yang minimum,,en,Pemetaan Hubungan Objek,,en,adalah teknik pengaturcaraan untuk menukar data hubungan ke dalam jenis objek dan sebaliknya,,en,Komponen ORM utama dijelaskan di bawah,,en,Keupayaan menulis kelas kegigihan dengan bantuan kelas berorientasikan objek,,en,Objek yang stabil dan boleh dipercayai,,en,entiti dan grid,,en,Senibina berprestasi tinggi,,en,Menyiapkan perpustakaan Spring bersama dengan fail jar JPA,,en,Sekarang persekitaran anda sudah siap untuk mulai mengembangkan Spring JPA dengan aplikasi Java,,en. Object databases perform storing, retrieving, updating, and maintenance of databases. At the core of object databases is the orm.xml file which, obviously, is XML-based. Since there is no need to compile XML, it is easy to edit multiple data sources with minimal administration. Object Relational Mapping (ORM) is a programming technique to convert relational data into object type and vice versa. The main ORM components are described below:

  • Ability to write persistence classes with the help of object oriented classes.
  • Stable and reliable objects, entities and grids.
  • High performing architecture.

Environment setup:

Setting up the environment for Spring based application development involves just three major steps.

  • Setting up Java Development Kit

Download JDK from the Oracle site and then, install and configure it. Then the PATH and JAVA_HOME environment variables must be set.

  • Setting of Eclipse IDE

Eclipse can be downloaded from the official website. Once downloaded, unpack the binaries and then set the PATH as well.

  • Setting up Spring libraries along with JPA jar files

The Spring libraries may be obtained from http://repo.spring.io/release/org/springframework/spring/. Again, it is important to set the CLASSPATH correctly.








Now your environment is ready to start developing Spring JPA with Java applications.

Sample application:

Di bahagian ini kita akan membuat objek produk dan mengisi dengan data,,en,Kami akan menggunakan Spring JPA untuk ketekunan data,,en,Ini adalah kelas POJO yang mengandungi data produk,,en,techalpine.spring.jpa.com,,en,Ini adalah kelas POJO,,en,id = id,,en,nama = nama,,en,harga = harga,,en,getId,,en,setId,,id,id = id,,en,dapatkan Harga,,en,Berikut adalah fail konfigurasi XML untuk memetakan jadual pangkalan data dengan medan PODJ,,en,Ini adalah pemetaan XML dengan jadual,,en,versi entiti-pemetaan =,,en,java.sun.com/xml/ns/persistence/orm,,en,java.sun.com/xml/ns/persistence/orm_1_0.xsd,,en,kelas entiti =,,en,spring.jpa.com.Produk,,en,nama jadual =,,en,meja,,en,nama id =,,en,nama lajur =,,en,nama asas =,,en,asas,,en,entiti,,en,pemetaan entiti,,en,Berikut adalah kelas DAO untuk objek produk,,en,Ini adalah kelas DAO untuk produk,,en,pakej techalpine.spring.jpa.com,,en,import org.springframework.orm.jpa.JpaTemplate,,en,import org.springframework.transaction.annotation.Transactional,,en,@Transactional,,en. We will be using Spring JPA for data persistence.

Listing 1: This is a POJO class containing product data

package techalpine.spring.jpa.com;

awam kelas Product {

//This is the POJO class

swasta int ID;

swasta String name;

swasta double price;

awam Product(int ID, String name, double price)

{

this.id=id;

this.name=name;

this.price=price;

}

awam int getId() {

pulangan ID;

}

awam membatalkan setId(int ID) {

this.id = id;

}

awam String getName() {

pulangan nama;

}

awam membatalkan setName(String name) {

this.name = name;

}

awam double getPrice() {

pulangan price;

}

awam membatalkan setPrice(double price) {

this.price = price;

}

}

Following is the XML configuration file for mapping database table with the PODJ fields.

Listing 2: This is XML mapping with the table

<?short xml =“1.0” pengekodan =“UTF-8”?>

<entity-mappings version=“1.0”

xmlns=“http://java.sun.com/xml/ns/persistence/orm”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://java.sun.com/xml/ns/persistence/orm

http://java.sun.com/xml/ns/persistence/orm_1_0.xsd “>

<entity class=techalpine.spring.jpa.com.Product”>

<table name=“product”></table>

<attributes>

<id name=“ID”>

<column name=“ID”/>

</ID>

<basic name=“nama”>

<column name=“nama”/>

</basic>

<basic name=“price”>

<column name=“price”/>

</basic>

</attributes>

</entity>

</entity-mappings>

Following is the DAO class for the product object.

Listing 3: This is DAO class for the product

package techalpine.spring.jpa.com;

import java.util.List;

import org.springframework.orm.jpa.JpaTemplate;

import org.springframework.transaction.annotation.Transactional;

@Transactional

ProductDao kelas awam,,en,Templat JpaTemplate,,en,himpunan kosong awam,,co,ini.template = templat,,en,kekosongan awam createProduct,,en,int id,,en,harga berganda,,en,Produk produk = Produk baru,,en,templat.persist,,en,dapatkanAllProduk,,nl,produk = templat.cari,,en,pilih pro dari Pro produk,,en,mengembalikan produk,,en,Ini adalah konteks aplikasi untuk memetakan semua kacang yang relevan,,en,Ini adalah konteks aplikasi,,en,tx =,,en,www.springframework.org/schema/tx,,en,www.springframework.org/schema/tx/spring-tx-3.0.xsd,,en,tx,,en,pengurus transaksi yang didorong oleh anotasi =,,en,jpaTxnManagerBean,,eu,proksi-sasaran-kelas =,,en,dataSrcBean,,gd,org.springframework.jdbc.datasource.DriverManagerDataSource,,en,oracle.jdbc.driver.OracleDriver,,en,oracle,,en,kurus,,en,@localhost,,en,kereta,,vi,ujian123,,en,hbAdptrBean,,en,org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter,,en,tunjukkanSql,,en,menjanaDdl,,en,pangkalan dataPlatform,,en,org.hibernate.dialect.OracleDialect,,en,cmfBean,,en,org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean,,en,jpaVendorAdapter,,en,jpaTmpltBean,,en,org.springframework.orm.jpa.JpaTemplate,,ms {

JpaTemplate template;

public void setTemplate(JpaTemplate template) {

this.template = template;

}

public void createProduct(int id,String name,double price){

Product product = new Product(ID,nama,price);

template.persist(product);

}

public List<Product> getAllProducts(){

senarai<Product> products =template.find(“select pro from Product pro”);

return products;

}

}

This is the application context for mapping all the relevant beans.

Listing 4: This is application context

<?short xml =“1.0” pengekodan =“UTF-8”?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:tx=“http://www.springframework.org/schema/tx”

xsi:schemaLocation=“http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/tx

http://www.springframework.org/schema/tx/spring-tx-3.0.xsd”>

<tx:annotation-driven transaction-manager=“jpaTxnManagerBean” proxy-target-class=“benar”/>

<bean id=“dataSrcBean” class=“org.springframework.jdbc.datasource.DriverManagerDataSource”>

<nama harta =“driverClassName” value =“oracle.jdbc.driver.OracleDriver”></harta>

<nama harta =“url” value =“jdbc:oracle:thin:@localhost:1524:xe”></harta>

<nama harta =“username” value =“ujian”></harta>

<nama harta =“password” value =“test123”></harta>

</bean>

<bean id=“hbAdptrBean” class=“org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter”>

<nama harta =“showSql” value =“benar”></harta>

<nama harta =“generateDdl” value =“benar”></harta>

<nama harta =“databasePlatform” value =“org.hibernate.dialect.OracleDialect”></harta>

</bean>

<bean id=“cmfBean” class=“org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean”>

<nama harta =“dataSource” ref=“dataSrcBean”></harta>

<nama harta =“jpaVendorAdapter” ref=“hbAdptrBean”></harta>

</bean>

<bean id=“jpaTmpltBean” class=“org.springframework.orm.jpa.JpaTemplate”>

<nama harta =“entitiManagerFactory,,en,produkDaoBean,,en,spring.jpa.com.ProdukDao,,pt,org.springframework.orm.jpa.JpaTransactionManager,,ms,ini adalah kelas utama untuk memeriksa populasi objek produk dan mengambilnya dari pangkalan data,,en,Ini adalah kelas utama untuk memeriksa output,,en,Ujian Produk,,en,META-INF / applicationContext.xml,,en,ProductDao productDao = konteks.getBean,,en,ProdukDao,,es,produkDao.createProduct,,en,produk1,,en,produk2,,en,Produk berjaya dibuat,,en,produk = produkDao.getAllProduk,,en,Maklumat produk adalah,,en,produk.saiz,,en,Produk pro = produk.get,,en,pro.getId,,en,pro.getName,,en,pro.getPrice,,en,Satu kelas ini dilaksanakan,,en,output berikut akan dipaparkan,,en,Oleh kerana JPA dan ORM kedua-duanya berdasarkan XML,,en,kebergantungan mereka pada teknologi atau penyelesaian lain lebih rendah daripada penyelesaian ketekunan lain,,en” ref=“cmfBean”></harta>

</bean>

<bean id=“productDaoBean” class= techalpine.spring.jpa.com.ProductDao”>

<nama harta =“template” ref=“jpaTmpltBean”></harta>

</bean>

<bean id=“jpaTxnManagerBean” class=“org.springframework.orm.jpa.JpaTransactionManager”>

<nama harta =“entitiManagerFactory,,en,produkDaoBean,,en,spring.jpa.com.ProdukDao,,pt,org.springframework.orm.jpa.JpaTransactionManager,,ms,ini adalah kelas utama untuk memeriksa populasi objek produk dan mengambilnya dari pangkalan data,,en,Ini adalah kelas utama untuk memeriksa output,,en,Ujian Produk,,en,META-INF / applicationContext.xml,,en,ProductDao productDao = konteks.getBean,,en,ProdukDao,,es,produkDao.createProduct,,en,produk1,,en,produk2,,en,Produk berjaya dibuat,,en,produk = produkDao.getAllProduk,,en,Maklumat produk adalah,,en,produk.saiz,,en,Produk pro = produk.get,,en,pro.getId,,en,pro.getName,,en,pro.getPrice,,en,Satu kelas ini dilaksanakan,,en,output berikut akan dipaparkan,,en,Oleh kerana JPA dan ORM kedua-duanya berdasarkan XML,,en,kebergantungan mereka pada teknologi atau penyelesaian lain lebih rendah daripada penyelesaian ketekunan lain,,en” ref=“cmfBean”></harta>

</bean>

</beans>

Now, this is the main class to check the population of the product object and retrieve it from the database.

Listing 5: This is the main class to check the output

package techalpine.spring.jpa.com;

mengimport java.util.List;

mengimport org.springframework.context.ApplicationContext;

mengimport org.springframework.context.support.FileSystemXmlApplicationContext;

awam kelas ProductTest {

awam statik membatalkan utama(Rentetan[] args){

ApplicationContext context = baru FileSystemXmlApplicationContext(

“META-INF/applicationContext.xml”);

ProductDao productDao = context.getBean(“productDaoBean”,ProductDao.kelas);

productDao.createProduct(123,”product1″,233.55);

productDao.createProduct(20,”product2″,350.70);

Sistem.daripada.println(“Products created successfully”);

senarai<Product> products = productDao.getAllProducts();

System.out.println(“Products details are:”);

untuk (int i = 0; i < products.size(); i ) {

Product pro = products.get(i);

Sistem.daripada.println(pro.getId() + ” : ” + pro.getName() + ” (” + pro.getPrice() + “)”);

}

}

}

One this class is executed, following output will be displayed.

Products created successfully

Products details are:

123:product1:233.55

20:product2:350.70








Kesimpulan

Since JPA and ORM are both based on XML, their dependence on other technologies or solutions are lesser than other persistence solutions. However, idea ORM dan JPA akan mengambil masa untuk mencari daya tarikan kerana perusahaan akan memerlukan masa untuk menjauh dari sistem pangkalan data lama,,en,juri tidak mengetahui sama ada JPA adalah penyelesaian untuk semua masalah pangkalan data seperti yang diunjurkan,,en. Also, the jury is out on whether the JPA is a solution for all database problems as it is projected to be.

 

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share