Artikel ini akan memperkenalkan proyek Java paling dasar, untuk proyek web, ke integrasi Spring, SpringMVC, SpringDatajpa+Hibernate.
Biasanya, kami dapat membangun proyek melalui templat atau mengimpor proyek secara langsung. Namun, artikel ini memilih untuk memulai dengan proyek Java paling dasar, dengan tujuan menunjukkan lebih banyak prinsip.
Tentu saja, kami masih mulai dengan proyek Maven paling dasar. Bahkan, proses konstruksi proyek non-maven biasa hampir sama. Paket JAR perlu ditambahkan secara manual ke proyek, sedangkan proyek Maven hanya mengubah file konfigurasi.
Berikut ini secara resmi dimulai.
1. Buat proyek Java paling dasar berdasarkan Maven (jika Anda tidak menggunakan Maven, Anda juga dapat menggunakan proyek tradisional)
Untuk membuat proyek baru, pilih Maven Project, selanjutnya:
Periksa sebagai Buat Proyek Sederhana, Berikutnya:
ID grup adalah urutan terbalik dari nama domain Anda, yang biasanya sesuai dengan nama paket kode sumber proyek. ID Artefak adalah satu -satunya nama proyek dalam ID grup ini. Itu dapat diisi dengan cara apa pun sesuai dengan hobi Anda, dan kemudian selesaikan:
Ini adalah hasil dari struktur direktori proyek seperti ini:
pom.xml adalah file inti Maven.
2. Atur proyek ke mode web dinamis
Selanjutnya, ubah proyek menjadi proyek web, klik kanan untuk membuka properti proyek, seperti yang ditunjukkan pada gambar, klik aspek proyek di menu di sebelah kiri, lalu klik konversi ke faceted dari ...::
Di sebelah kanan, kami mencentang modul web dinamis dan klik OK:
Saat ini, direktori konten web tambahan akan muncul:
Di direktori Web-INF, tambahkan file web.xml, sebagai berikut:
<? Xml Version = "1.0" encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "Versi =" 3.0 "> <play-name> springDatajpa </splay-name> <creendak-file-file> <creendak-file> index.html </welcome-file> </welcome-file> <creendak-file> </index.html </welcome-file-file>
Kemudian tambahkan halaman selamat datang index.html:
<html> <head> </head> <hody> <h1> halo word! </h1> </body> </html>
Struktur direktori adalah sebagai berikut:
Saat ini, Anda dapat mengklik kanan proyek dan menjalankan di server. Anda dapat melihat efeknya:
3. Integrasi Spring+SpringMVC
Buat paket baru dan tambahkan beberapa antarmuka dan kelas (kode spesifik akan terdaftar nanti). Struktur paket seperti yang ditunjukkan pada gambar:
Jika Anda perlu menambahkan paket JAR, cukup ubah file POM secara langsung. Jika ini adalah proyek normal, cukup tambahkan ke proyek dengan menekan paket JAR di pom.xml.
Pertama, tambahkan versi musim semi yang digunakan untuk memfasilitasi manajemen terpadu, dan kemudian tambahkan semua paket stoples yang diperlukan. Berikut ini adalah menambahkan semua paket stoples yang diperlukan di sini. Pom.xml yang sudah selesai adalah sebagai berikut:
<Project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http:/maven.romp.romp.romp. http://maven.apache.org/xsd/maven-4.0.0.xsd "> <podelversion> 4.0.0 </podelversion> <groupid> com.anxpp </sroupid> <artifactid> SpringDataJPa </artifactid> <version> version </artifacties> </Version> <TROGER> <TERFORCEST> </Artifacties </artifacties> </Version> 0.0.1. <spring.version> 4.2.5.release </spring.version> </Properties> <dependencies> <!-Paket inti Spring-> <dependency> <groupid> org.springframework </groupid> <ArTifactId> Spring-core </artifactid> <version> $ {spring.version} </Versi </Versi> </Artifactid> <version> $ {spring.version} </Versi> </Versi> </Versi> </Versi> </Versi> </Versi> </Versi> </Versi> </Versi </Versi> <groupId> org.springframework </groupid> <ArTifactId> spring-web </t ArtifactId> <version> $ {spring.version} </version> </dependency> <dependency> <roupid> org.springframework </groupidsId> <ArTifacTid> Spring-version </version> </groupersId> <artifactid> <cring-orm </artactid> version </groupersId> <artifactid> <cring-orm </artifactid> </groupersion {version> <crupersion> <artefactId> <cripsor> version> </version> <T. {version> <TREGERSID> <ArTifacTID> </artactid </version> <T. <dependency> <GroupId> org.springframework </groupId> <ArTifactId> spring-tx </arttifactid> <version> $ {spring.version} </version> </dependency> <sependency> </org.springframework </groupid> <ArTtifacTID> Spring-version </version </version </version> <croFactid> <cROPERSIDED> <TERSINGSIDED> <TRO adalah versi </version> </version> <TROP-JDBC </version> <TROPACID> <TROPACID> <TROPACID> <TROP-JDBC> </VERSICID> <TROPACID> </Dependency> <dependency> <GroupId> org.springframework </groupid> <ArTifactId> Spring-WEBMVC </artifactId> <version> $ {spring.version} </version> </dependency> <dependency> <groupid> org.springframework </version> <cortifact> <troupid> <RoGRUPID> org.springframework </groupid> <ArtiFAcD> <version> $ {spring.version} </version> </dependency> <dependency> <GroupId> org.springframework </groupid> <ArTifactId> spring-context-pupport </ArTifactId> <version> $ {spring.version} </version> </Dependency> <dependency> <version> <groupid> <ArTifactId> spring-test </stifactid> <version> $ {spring.version} </version> </dependency> <dependency> <groupid> org.springframework </sroupid> <ArTifactId> Spring-orm </artifactId> <version> $ {spring.version} </Version> </ArtifactId> <version> $ {spring.version} </Version> <groupId> org.springframework.data </groupid> <ArTifactId> spring-data-jpa </artifactid> <version> 1.10.1.release </version> </dependency> </dependencies> </project>Tambahkan File Konfigurasi Spring ApplicationContext.xml di Direktori Web-INF dan tambahkan konten berikut:
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls xmlns: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: p = "http:/schema/aop" xmlns: p = "http:org.org.schaMa.aop xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalocation = "http http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd http://www.springframework.org/schema/aop http:/www.spramework.org/schaMaMema http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4. Pindaian Anotasi-> <MVC: Annotation-Driven /> </tobel>
Ubah Web.xml dan tambahkan pegas ke:
<? Xml Version = "1.0" encoding = "utf-8"?> <web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xmlns =" http://java.com/xmlns = "http://java.com/xmlns = XSI: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/weB-app_3_sun.30" "Version" "Version" "Version," VERSI.SUN.SUN.SUN.10 <play-name> springDatajpa </play-name> <dresinger> <daringer-class> org.springframework.web.context.contextLoaderListener </enge listener-class> </listener> <param-vvalue> <param--conticclocation </Param-n-name. </context-param> <servlet> <servlet-name> springmvc </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherServlet </servlet-class> <Ilin-param> <param-name> ContextConfigLocation </Param-name> <naram-value> <param-name> COMPEDPON </init-param> <Boad-on-startup> 1 </boid-on-startup> </servlet> <servlet-papping> <servlet-mapping> <servlet-name> SpringMvc </servlet-name> <roading-pattern> </Urr-Pattern> </servlet-name> <creading-filter> <consore-file> </Url-Pattern> </soend-fiPil
Mari kita mulai menulis kode di bawah ini, berhati -hatilah agar tidak lupa menulis anotasi, hierarki paket telah diberikan pada awal bagian ini.
Pengguna entitas:
paket com.anxpp.demo.core.entity; pengguna kelas publik {private integer ID; nama string pribadi; Pengguna publik (ID integer, nama string) {this.id = id; this.name = name; } public integer getId () {return id; } public void setid (integer id) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; } @Override public string toString () {return "id:"+id+", name:"+name; }}Antarmuka Lapisan Pengguna:
Paket com.anxpp.demo.core.dao; import com.anxpp.demo.core.entity.user; antarmuka publik userdao {pengguna getuser (id integer, nama string);}Lapisan DAO mengimplementasikan UserdaoImpl:
Paket com.anxpp.demo.core.dao.impl; impor org.springframework.stereotype.repository; import com.anxpp.demo.core.dao.userdao; import com.anxpp.demo.core.entity.user; @Repositorypublic COLPERICEBLICE.Core.core.entity; getUser (id integer, nama string) {return baru pengguna (id, name); }}Layanan Lapisan Antarmuka UsersEver:
Paket com.anxpp.demo.core.service; import com.anxpp.demo.core.entity.user; antarmuka publik Userservice {user getUser (ID integer, nama string);}Implementasi Lapisan Layanan:
Paket com.anxpp.demo.core.service.impl; impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.stereotype.service; impor com.anxpp.demo.core.dao.userdao; Impor Com.anxpp.demo.core.dao.userdao; com.anxpp.demo.core.service.userservice; @servicePublic kelas UserserviceImpl mengimplementasikan Userservice {@Autowired userdao userdao; @Override pengguna publik getUser (id integer, nama string) {return userdao.getUser (id, name); }}Democontroller Lapisan Pengontrol:
Paket com.anxpp.demo.controller; impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.stereotype.controller; impor org.springframework.wind.bind.annotation.requestmapping; org.springframework.web.bind.annotation.responseBody; import com.anxpp.demo.core.service.userservice;@controller@requestMapping ("/") Democontroller kelas publik {@Autowired UserserService UserserService; @RequestMapping ("/") @ResponseBody public string index () {return "index"; } @RequestMapping ("/getUser") @ResponseBody Public String getUser (ID Integer, nama string) {return userservice.getUser (id, name) .toString (); }}Ini tidak mungkin untuk dijalankan di server secara langsung, karena paket JAR tidak akan dirilis bersama, kita perlu mengonfigurasi yang berikut:
Klik kanan proyek untuk memilih properti dan mengonfigurasinya sesuai dengan gambar di bawah ini:
Pada saat ini, Anda dapat menjalankan tes, efeknya adalah sebagai berikut:
Pada titik ini, kami belum mengoperasikan database.
4. Tambahkan dan kembalikan dukungan data format JSON
Sekarang, kami sering menggunakan JSON sebagai format transmisi data. Mari kita tambahkan dukungan untuk mengembalikan JSON untuk SpringMVC.
Pertama tambahkan paket JAR:
<dependency> <GroupId> com.fasterxml.jackson.core </groupid> <ArTifactid> jackson-databind </t Artifactid> <version> 2.5.0 </version> </dependency> <ArtifactD> <RUMRIMID> COM.FASTERXML.JACKSON.Core </groupid> <Artifactid> Version> Version. <dependency> <GroupId> com.fasterxml.jackson.core </groupid> <ArTifactId> Jackson-annotations </artifactid> <version> 2.5.0 </version> </dependency>
Kemudian tulis ulang metode getUser () sebagai berikut:
@RequestMapping ("/getUser") @ResponseBody peta publik <string, objek> getUser (id integer, nama string) {peta <string, objek> peta = hashmap baru <string, objek> (); peta.put ("status", "sukses"); Map.put ("Data", UsserService.getUser (id, nama)); peta mengembalikan; }Setelah diulang, efek aksesnya adalah sebagai berikut:
Saat ini, Anda dapat mengembalikan data JSON.
5. Konfigurasikan akses sumber daya statis
Secara umum, kami tidak dapat mengakses sumber daya di direktori Web-INF secara langsung. Jika situs web kami terdiri dari HTML+AJAX, Anda dapat membuat direktori HTML baru di luar Web-INF dan mengkonfigurasi filter default untuk web.xml. Namun, berhati -hatilah untuk meletakkannya sebelum filter SpringMVC:
<servlet-Mapping> <servlet-name> default </servlet-name> <RURL-pola>*.
Jika Anda harus mengakses sumber daya di direktori web-INF, dengan memeriksa dokumen resmi Spring, Anda akan menemukan bahwa ada dua cara
1. Tulisan Tangan Mapper Sumber Daya:
@Configuration @enableWebMvCpublic kelas webconfig memperluas webmvcconfigurerAdapter {@Override public void addResourceHandlers (ResourceHandlerRegistry Registry) {Registry.addResourceHandler ("/Resources/**) .addressourelocations ("/Public-Resen ("/Resources/**). .setCachecontrol (Cachecontrol.Maxage (1, Timeunit.Hours) .Cachepublic ()); }}Seperti yang Anda lihat, Anda juga dapat mengatur waktu cache, dan cara yang lebih sederhana adalah mengkonfigurasi xml:
<mvc: pemetaan sumber daya = "/sumber daya/**" lokasi = "/sumber daya publik/"> <mvc: cache-control max-seage = "3600" cache-public = "true"/> </mvc: sumber daya>
Anda juga dapat menambahkan yang berikut:
<!-Akses ke file sumber daya statis akan diserahkan ke handler servlet default untuk diproses dengan mengakses jalur yang tidak dapat dipetakan ke controller-> <mvc: default-servlet-handler />
6. Solusi Kode Sampah
Kami biasanya menggunakan AJAX untuk mengirimkan permintaan, tetapi kami juga menggunakan bilah alamat untuk menguji secara langsung. Permintaan pengiriman dan posting.
Kirimkan permintaan menggunakan postingan, umumnya tidak akan ada kode yang kacau Cina, tetapi jika kode kacau muncul, Anda dapat menyelesaikan masalah dengan menambahkan filter pengkodean ke web.xml:
<filter> <filter-name>CharacterEncoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <init-param> <param-name> ForceEncoding </param-name> <param-value> true </param-value> </it-param> </tilter> <nilter-Mapping> <nilter-name> KaraktereCoding </filter-name> <RURL-PATER>/*</RURL-POLATH> </filter-Mapping>
Di atas hanya dapat menyelesaikan kode pos yang kacau Cina. Untuk GET (termasuk metode pengiriman langsung dari bilah alamat browser), kita perlu memodifikasi konfigurasi tomcat, menemukannya di server.xml di direktori conf dan memodifikasinya sebagai berikut:
<Connector ConnectionTimeout = "20000" port = "8080" protocol = "http/1.1" redirectport = "8443" uriencoding = "utf-8"/>>
Jika kami hanya menguji dan proyek tidak digunakan, kami dapat secara langsung menemukan server.xml di bawah server di Eclipse dan membuat perubahan yang sama seperti di atas:
7. Integrasikan SpringDatajpa+Hibernate
Anda dapat belajar tentang JPA: Pengantar Spesifikasi dan Contoh JPA (Solusi Persistensi Data Java)
Springdatajpa juga merupakan solusi yang ringan, dan hibernate yang disukai mengimplementasikan JPA.
Pertama -tama, paket JAR, paket JAR SpringDatajpa, ditambahkan bersama saat mengintegrasikan musim semi. Di bawah ini adalah Paket JAR Hibernate (dan Driver MySQL).
<!-Hibernate-> <dependency> <GroupId> org.hibernate </groupId> <ArTifactId> hibernate-core </artifactid> <version> $ {hibernate.version} </version> </dependency> <sgroupid> org.hibernate </groupid> <cortifact> <celepnace> <roGrupid> org.hibernate </groupid> <cortifact> <version> $ {hibernate.version} </version> </dependency> <dependency> <GroupId> org.hibernate </groupid> <ArTifactId> hibernate-entityManager </arttifactid> <version> $ {hibernate.version} </version> </Dependency> <version> <version> {hibernate.version. <ArTifactId> hibernate-c3p0 </artifactid> <version> $ {hibernate.version} </version> </dependency> <dependency> <groupid> mysql </groupid> <ArTifactId> mysql-connector-java </artifactid> versi 5.1.1.1.1.9 </Versi> </Versi >.1.1.1.9 </Versi> </Versi> </Versi >.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.Versi manajemen terpadu adalah:
<!-Nomor Versi Hibernate-> <Hibernate.Version> 5.1.0.Final </hibernate.version>
Tambahkan file konfigurasi JPA Persistence.xml ke direktori meta-INF. Basis data menggunakan MySQL saat memperkenalkan artikel ini. Dan tambahkan konten berikut:
<? Xml Version = "1.0" encoding = "UTF-8"?> <Versi Persistence = "1.0" xmlns = "http://java.sun.com/xml/ns/persistence" xmlns: xsi = "http:/www.w3.org/2001 =" http:/www.w33.org/200 XSI: schemalocation = "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence_1_0.xsd"> <persistence- unit nama = "demo" transaksi-type = "resource_loce_ Penyedia> org.eclipse.persistence.jpa.persistenceProvider </penyedia-> <dentser> org.hibernate.ejb.hibernatePerSistence </sbroider> <slass> com.ninelephas.meerkat.pojo.user </class> <class>-koneksi Mysql-Property-Propers.pojo.user </class> <! name = "hibernate.connection.driver_class" value = "com.mysql.jdbc.driver"/> <name properti = "hibernate.connection.url" value = "jdbc: mysql: //127.0.0.1: 3306/demo? createDatabaseifnotnoxist = froid = 0.1: 330/demo? CreateDatabaseifnotexor = FREE"/330/DEMO? CreateDataFnotexor => name = "hibernate.connection.username" value = "root" /> <name properti = "hibernate.connection.password" value = "root" /> <name properti = "hibernate.dialect" values = "org.hibernate.dialect.mysqldialect" /< /properties> < /org.hibernate.dialect.mysqlDialect " /< /properties> < /org.hibernate.dialect.mysqlDialect" /< /properties> < /fingistence-finistence-unit>
Konten Lengkap Setelah Menambahkan Dukungan JPA ke File Konfigurasi Spring ApplicationContext.xml:
<? XML Versi = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmls xmlns: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: p = "http:/schema/aop" xmlns: p = "http:org.org.schaMa.aop xmlns: tx = "http://www.springframework.org/schema/tx" xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: jpa = "http://www.springframework.org/schema/data/jpa" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-weans-4.2.xsd http://www.springframework.org/schema/context http:/www.spramework.org/schema/context http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/mvc http:/www.springframework.org/schema/mvc:mvc http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd "> <! nyalakan ioc annotation scan-> <jpa.xsd"> <! <bean id = "EntityManagerFactory"> <name properti = "jPavendorAdapter"> <bean> <name properti = "dihasilkan" nilai = "true" /> <nama properti = "database" value = "mysql" /> < /bean> < /properti> <properti nama = "persistenceUnname" value = " scan-> <mvc: anotasi-driven/> <bean> <name properti = "viewResolvers"> <cist> <bean> <name properti = "prefix" value = "/web-inf/view/"/> <properti nama = "nilai" value = ". Name = "DefaultViews"> <cist> <bean/> </list> </prop Propert> </ bean> <!-Akses ke file sumber daya statis akan meninggalkan jalur yang tidak dapat dipetakan ke pengontrol ke penangan servlet default untuk diproses-> <mvc: default-servlet-handler/> <!-configure transaction uNRAGER-> <MVC: DEFAULT-SERVLET "" RRONGANE "<!-Configure Transaction Manager-> <MVC: Default-Servlet" " Ref = "EntityManagerFactory" /> < /bean> <!-Mengaktifkan transaksi anotasi-> <tx: transaksi yang digerakkan oleh anotasi-manager = "transactionManager" /> <!-Mengkonfigurasi Data Pemindaian JPA Data Spring-> <JPA: Repositori Basis-Puncak = "com.anxpp.demo"
Ubah entitas:
Paket com.anxpp.demo.core.entity; import javax.persistence.entity; import javax.persistence.generatedValue; import javax.persistence.generationType; import javax.persistence.id; import @persistence.table; @enterpublic.idsistence; GenerationType.Auto) ID Integer Pribadi; nama string pribadi; pengguna publik () {} pengguna publik (nama string) {this.name = name; } public integer getId () {return id; } public void setid (integer id) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; } @Override public string toString () {return "id:"+id+", name:"+name; }}Anda dapat menghapus implementasi lapisan DAO. Kami ingat untuk mewarisi antarmuka lapisan DAO dari JParepository yang kuat:
Public Interface userdao memperluas jParepository <user, serializable> {user findById (integer id);}Apakah itu terlihat sangat ringkas dan tidak memerlukan implementasi menulis? SpringDatajpa akan secara otomatis membantu kami menyelesaikannya.
Ubah Antarmuka Lapisan Layanan:
Paket com.anxpp.demo.core.service; import java.util.list; import com.anxpp.demo.core.entity.user; antarmuka publik Userservice {user findById (id integer); Simpan Pengguna (Nama String); Daftar <User> findAll ();}Ubah Implementasi Lapisan Layanan:
Paket com.anxpp.demo.core.service.impl; impor java.util.list; impor org.springframework.beans.factory.annotation.autowired; impor org.springframework.stereotype.service; impor com.anxpp.demo.core.dao.dao.dao; com.anxpp.demo.core.entity.user; import com.anxpp.demo.core.service.userservice; @servicePublic kelas UserserviceImpl mengimplementasikan Userservice {@Autowired userdao userdao; @Override Public User findById (integer id) {return userdao.findbyId (id); } @Override Pengguna publik Simpan (nama string) {return userdao.save (pengguna baru (nama)); } @Override Daftar publik <user> findAll () {return userdao.findall (); }}Ubah pengontrol untuk menyediakan beberapa antarmuka uji:
Paket com.anxpp.demo.controller; import java.util.hashmap; impor java.util.map; impor org.springframework.beans.factory.annotation.Autowired; impor org.spramework.stereotipe.stereotypy.stereType.stereotype.stereotypy org.springframework.web.bind.annotation.responseBody; import com.anxpp.demo.core.service.userservice;@controller@requestMapping ("/") Democontroller kelas publik {@Autowired UserserService UserserService; @RequestMapping ("/") @ResponseBody public string index () {return "index"; } @RequestMapping ("/info") Public String Info () {return "info"; } @RequestMapping ("/findAll") @ResponseBody peta publik <String, Object> getUser () {peta <string, object> peta = hashmap baru <string, objek> (); peta.put ("status", "sukses"); Map.put ("Data", UsserService.findall ()); peta mengembalikan; } @RequestMapping ("/findById") @ResponseBody peta publik <String, Object> findById (integer id) {peta <String, Object> peta = new HashMap <String, Object> (); peta.put ("status", "sukses"); Map.put ("Data", UsserService.findbyId (ID)); peta mengembalikan; } @RequestMapping ("/add") @ResponseBody peta publik <String, Object> Simpan (nama string) {peta <string, objek> peta = hashmap baru <string, objek> (); peta.put ("status", "sukses"); peta.put ("Data", UsserService.Save (Name)); peta mengembalikan; }}Efek Menjalankan:
Jadi, bagaimana jika Anda perlu menambahkan data yang mencari nama belakang yang ditentukan dengan ID lebih besar dari nilai yang ditentukan?
Jika SQL, kami akan menulis dengan cara ini (? Mewakili parameter):
Pilih * dari pengguna di mana id>? Dan nama seperti '?%';
Tapi di sini, kita bahkan tidak perlu menulis SQL (atau HQL) dan cukup menambahkan metode ke antarmuka lapisan DAO:
Daftar <User> findByIdgreatreThanAndnamelike (ID integer, nama string);
Anda tidak perlu meragukan bahwa metode di atas akan berhasil jika dieksekusi (Catatan: Gunakan implementasi layanan, ingat nama+"%" saat memanggil metode ini)!
Di atas adalah pengetahuan yang relevan yang diperkenalkan kepada Anda tentang membangun springmvc+springdatajpa+hibernate dari proyek java paling dasar. Saya harap ini akan membantu semua orang. Jika Anda ingin mengetahui informasi lebih lanjut, harap perhatikan situs web Wulin.com!