이 기사는 가장 기본적인 Java 프로젝트, 웹 프로젝트, Spring, SpringDataJPA, SpringDataJPA+Hibernate의 통합에 소개합니다.
일반적으로 템플릿을 통해 프로젝트를 구축하거나 프로젝트를 직접 가져올 수 있습니다. 그러나이 기사는 더 많은 원칙을 보여줄 목적으로 가장 기본적인 Java 프로젝트부터 시작하도록 선택합니다.
물론, 우리는 여전히 가장 기본적인 Maven 프로젝트로 시작합니다. 실제로, 일반적인 비 중산 프로젝트의 건설 과정은 거의 동일합니다. JAR 패키지는 프로젝트에 수동으로 추가해야하며 Maven 프로젝트는 구성 파일 만 변경해야합니다.
다음은 공식적으로 시작되었습니다.
1. Maven을 기반으로 가장 기본적인 Java 프로젝트를 만듭니다 (Maven을 사용하지 않으면 기존 프로젝트를 사용할 수도 있습니다).
새 프로젝트를 만들려면 다음 : Maven Project를 선택하십시오.
간단한 프로젝트 생성으로 확인하십시오. 다음 :
그룹 ID는 도메인 이름의 역 순서이며 일반적으로 프로젝트 소스 코드의 패키지 이름에 해당합니다. Artifact ID는이 그룹 ID에서 프로젝트의 유일한 이름입니다. 취미에 따라 어떤 식 으로든 채워질 수 있습니다.
이것은 다음과 같은 프로젝트 디렉토리 구조의 결과입니다.
pom.xml은 Maven의 핵심 파일입니다.
2. 프로젝트를 동적 웹 모드로 설정하십시오
그런 다음 프로젝트를 웹 프로젝트로 변환하고 마우스 오른쪽 버튼을 클릭하여 프로젝트 속성을 열면 그림과 같이 왼쪽 메뉴의 프로젝트 측면을 클릭 한 다음, Faceted에서 변환을 클릭하십시오.
오른쪽에서는 동적 웹 모듈을 선택하고 확인을 클릭합니다.
현재 추가 WebContent 디렉토리가 나타납니다.
Web-Inf 디렉토리에서 다음과 같이 web.xml 파일을 추가하십시오.
<? 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 "3.0"> <display-name> springdatajpa </display-name> <welcome-file-list> index.html </welcome-file> </web-app>
그런 다음 환영 페이지 index.html을 추가하십시오.
<html> <head> </head> <hod> <h1> Hello Word! </h1> </body> </html>
디렉토리 구조는 다음과 같습니다.
현재 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 서버에서 실행할 수 있습니다. 효과를 볼 수 있습니다.
3. 스프링+SpringMVC 통합
새 패키지를 만들고 일부 인터페이스 및 클래스를 추가하십시오 (특정 코드는 나중에 나열됩니다). 패키지 구조는 그림과 같습니다.
JAR 패키지를 추가 해야하는 경우 POM 파일을 직접 수정하십시오. 일반적인 프로젝트 인 경우 POM.XML에서 JAR 패키지를 눌러 프로젝트에 추가하십시오.
먼저 통합 관리를 용이하게하는 데 사용되는 스프링 버전을 추가 한 다음 필요한 모든 JAR 패키지를 추가하십시오. 다음은 여기에 필요한 모든 항아리 패키지를 추가하는 것입니다. 완성 된 pom.xml은 다음과 같습니다.
<project xmlns = "http://maven.apache.org/pom/4.0.0"xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance"xsi : schemalocation = "http://maven.apache.org/pom/0.0.0.0 http://maven.apache.org/xsd/maven-4.0.xsd "> <modelversion> 4.0.0 </modelversion> <groupid> com.anxpp </groupid> <artifactid> springdatajpa </artifactid> <version> 0.0.1 버전 </version <!-version> <!-version> <! <Spring.version> 4.2.5. release </spring.version> </properties> <pectients> <!-스프링 코어 패키지-> <prectionency> <groupid> org.springframework </groupId> <artifactid> spring-core </artifactid> <버전> $ {spring.version} </dependency> </dependency> <groupid> org.springframework </groupid> <artifactid> spring-web </artifactid> <bersion> $ {spring.version} </version> </dependency> <prectionency> <groupid> org.springframwork </groupid> <artifactid> spring-orm </artifactid> </version> <pectionency> <groupId> org.springframework </groupid> <artifactid> spring-tx </artifactid> <버전> $ {spring.version} </version> </dependency> <prectionement> <groupId> org.sprameframwork </groupid> <artifactid> spring-jdbc </artifactid> </의존성> <pectionency> <groupid> org.springframework </groupid> <artifactid> spring-webmvc </artifactid> <version> $ {spring.version} </version> </dependency> <groupid> org.springframwork </groupId> <artifactid> spring </artifactid> <버전> $ {spring.version} </version} </version> </dependency> <pectionency> <groupid> org.springframework </groupid> <artifactid> spring-context-support </artifactid> <버전> $ {spring.version} </version> </dependency> <groupd> org.spramwork <artifactid> spring-test </artifactid> <버전> $ {spring.version} </version} </version} </version> </dependency> <groupid> org.springframework </groupid> <artifactid> spring-orm </artifactid> <version> $ {spring.version} </dependency> </dependency> <pelaxency> <groupid> org.springframework.data </groupid> <artifactid> spring-data-jpa </artifactid> <버전> 1.10.1. release </version> </fectionency> </dependencies> </project>Web-Inf 디렉토리에 Spring Configuration 파일 ApplicationContext.xml을 추가하고 다음 내용을 추가하십시오.
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xmlns : context = "http://www.springframework.org/schema/context"xmlns : aop = "http://www.springframework.org/schema/aop"xmlns : p = "http://www.springframwork.org/schema/p. xmlns : tx = "http://www.springframework.org/schema/tx"xmlns : mvc = "http://www.springframework.org/schema/mvc"xsi : skemalocation = "http://www.spramframwork.org/schema http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd 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.sprampramework.org/schema/aop/spring-spring-sd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd "> <!-IOC AnnoTation Scan-> <Context : Component-Scan Base-package ="Com.Anxp.d on on ond on on on on on on on on onxp. 주석 스캔-> <MVC : 주석 구동 /> < /beans>
web.xml을 수정하고 다음에 스프링을 추가하십시오.
<? 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_3_0.xsd"3.0 "> <display-name> springdatajpa </display-name> <layer> <layer-class> org.spramework.web.context.contextloaderlistener </laiseer-class> </larteer> <cectext-param> <param-name> contextConfigLocation </param-name> <param-value> application/application/acpplicecontext.xml </context-param> <servlet> <servlet-name> springmvc </servlet-name> <servlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-param> <param-name> contextConfigLocation </param-name> <Param-value> classPath*: SpringMVC-servlet.xml </param-value> </init-param> <load-on-startup> 1 </load-on-startup> </servlet> <servlet-mapping> <servlet-mapping> <servlet-name> springmvc </servlet-name> url-lattn> </url-pattern> </url-pattern> <welcome-file> index.html </welcome-file> </welcome-file-list> </web-app>
아래 코드를 작성하기 시작하고, 주석을 쓰는 것을 잊지 않도록주의하십시오. 패키지 계층 구조는이 섹션의 시작 부분에 제공되었습니다.
엔티티 사용자 :
패키지 com.anxpp.demo.core.entity; public class user {private integer id; 개인 문자열 이름; 공개 사용자 (정수 ID, 문자열 이름) {this.id = id; this.name = 이름; } public Integer getId () {return id; } public void setId (정수 ID) {this.id = id; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } @override public String toString () {return "id :"+id+", 이름 :"+name; }}userdao 레이어 인터페이스 :
package com.anxpp.demo.core.dao; import com.anxpp.demo.core.entity.user; public interface userDao {user getUser (Integer ID, String Name);}dao 층은 userdaoimpl을 구현합니다.
패키지 com.anxpp.demo.core.dao.impl; import org.springframework.stereotyp.repository; import com.anxpp.demo.core.dao.userdao; import com.anxpp.demo.core.entity.user; @republic class user us us user us {rustoritority public userdaoimpl emplement getUser (정수 ID, 문자열 이름) {return new user (id, name); }}서비스 계층 인터페이스 사용자 서비스 :
package com.anxpp.demo.core.service; import com.anxpp.demo.core.entity.user; public interface userervice {user getUser (정수 ID, 문자열 이름);}서비스 계층 구현 :
패키지 com.anxpp.demo.core.service.impl; import org.springframework.bean.bean.bean.annotation.autowired; import org.sprameframework.stereotyp.service; import com.anxpp.demo.core.dao.userdao; import com.anxp.demo.core.core.useer; com.anxpp.demo.core.service.userservice; @servicepublic class usererviceimpl emperservice {@autowired userdao userdao; @override public user getUser (정수 ID, 문자열 이름) {return userDao.getUser (id, name); }}컨트롤러 계층 데모 컨트롤러 :
패키지 com.anxpp.demo.controller; import org.springframework.beans.beans.annotation.autowired; import org.springframework.stereotyp.controller; import org.springframework.web.bind.bind.annotation.requestmapping; import org.springframework.web.bind.restation com.anxpp.demo.core.service.userservice;@controller@requestmapping ( "/") 공개 클래스 democontroller {@autowired userervice userervice; @RequestMapping ( "/") @ResponseBody public String index () {return "index"; } @RequestMapping ( "/getUser") @ResponseBody public String getUser (정수 ID, 문자열 이름) {return UserserVice.getUser (id, name) .toString (); }}JAR 패키지가 함께 해제되지 않기 때문에 서버에서 직접 실행할 수 없습니다. 다음을 구성해야합니다.
프로젝트를 마우스 오른쪽 버튼으로 클릭하여 속성을 선택하고 아래 그림에 따라 구성하십시오.
현재 테스트를 실행할 수 있습니다. 효과는 다음과 같습니다.
이 시점에서 우리는 아직 데이터베이스를 운영하지 않았습니다.
4. JSON 형식 데이터 지원을 추가하고 반환합니다
이제 우리는 종종 JSON을 데이터 전송 형식으로 사용합니다. SpringMVC의 Returning JSON에 대한 지원을 추가합시다.
먼저 JAR 패키지 추가 :
<pectionency> <groupid> com.fasterxml.jackson.core </groupid> <artifactid> Jackson-databind </artifactid> <version> 2.5.0 </version> </exceentency> <groupId> com.fasterxml.jackson.core </groupICD> <artifactid> jackson-core> <berson-core> <pectionency> <groupid> com.fasterxml.jackson.core </groupid> <artifactid> Jackson-Nantations </artifactid> <bersion> 2.5.0 </version> </fectionency>
그런 다음 다음과 같이 getUser () 메소드를 다시 작성하십시오.
@RequestMapping ( "/getUser") @ResponseBody Public Map <String, object> getUser (정수 ID, 문자열 이름) {map <String, object> map = new Hashmap <String, Object> (); map.put ( "state", "success"); map.put ( "data", userservice.getUser (id, name)); 리턴 맵; }재실행 후 액세스 효과는 다음과 같습니다.
현재 JSON 데이터를 반환 할 수 있습니다.
5. 정적 리소스 액세스를 구성하십시오
일반적으로 Web-INF 디렉토리의 리소스에 직접 액세스 할 수 없습니다. 당사 웹 사이트가 HTML+AJAX로 구성된 경우 Web-INF 외부에 새 HTML 디렉토리를 작성하고 Web.xml의 기본 필터를 구성 할 수 있습니다. 그러나 SpringMVC 필터 앞에 두도록주의하십시오.
<servlet-mapping> <servlet-name> 기본값 </servlet-name> <url-pattern>*. html </url-pattern> </servlet-mapping>
Web-Inf 디렉토리의 리소스에 액세스 해야하는 경우 Spring의 공식 문서를 확인하여 두 가지 방법이 있음을 알 수 있습니다.
1. 자원 맵퍼 필기 :
@configuration @enablewebmvcpublic class webconfig는 webmvcconfigureradapter {@override public void addresourcehandlers (resourcehandlerregistry registry) {registry.addresourceHandler ( "/rougents/*") .addresourcelocations ( "/public-resources/")를 확장합니다. .SetCacheControl (cachecontrol.maxage (1, timeUnit.hours) .cachePublic ()); }}보시다시피, 캐시 시간을 설정할 수도 있고 간단한 방법은 XML을 구성하는 것입니다.
<mvc : 리소스 매핑 = "/resources/**"위치 = "/public-Resources/"> <mvc : 캐시-콘트롤 max-age = "3600"cache-public = "true"/> </mvc : resources>
다음을 추가 할 수도 있습니다.
<!-정적 리소스 파일에 대한 액세스는 컨트롤러에 매핑 할 수없는 경로에 액세스하여 처리를 위해 기본 서블릿 핸들러에 양도됩니다-> <mvc : default-servlet handler />
6. 쓰레기 코드 솔루션
우리는 일반적으로 Ajax를 사용하여 요청을 제출하지만 주소 표시 줄을 사용하여 직접 테스트합니다. 요청 제출물 let and post.
Post를 사용하여 요청 제출, 일반적으로 중국어가 달린 코드는 없지만, Barlled 코드가 나타나면 Web.xml에 인코딩 필터를 추가하여 문제를 해결할 수 있습니다.
<filter> <filter-name> 캐릭터 엔코딩 </filter-name> <filter-class> org.spramework.web.filter.characterencododingfilter </filter-class> <init-param> <param-name> encoding </param-name> <param-value> utf-8 </param-value> </initparam> </initparam> <Param-Name> ForceEncoding </param-name> <param-value> true </param-value> </init-param> </filter> <filter-mapping> <filter-name> charac
위의 것은 중국의 garbled 포스트 코드 만 해결할 수 있습니다. Get (브라우저 주소 표시 줄의 직접 제출 방법 포함)의 경우 Tomcat 구성을 수정하고 Conf Directory에서 Server.xml에서 찾아 다음과 같이 수정해야합니다.
<Connector ConnectsTimeout = "20000"port = "8080"프로토콜 = "http/1.1"redirectport = "8443"uriencoding = "utf-8"/>
우리가 단지 테스트 중이고 프로젝트가 배포되지 않은 경우 Eclipse에서 서버에서 Server.xml을 직접 찾아 위와 동일한 변경을 할 수 있습니다.
7. SpringDatajpa+Hibernate를 통합합니다
JPA에 대해 배울 수 있습니다 : JPA 사양 및 예제 소개 (Java Data Persistence Solution)
SpringDatajpa는 또한 경량 솔루션이며 선호되는 최대 절전 모드는 JPA를 구현합니다.
우선, SpringDatajpa Jar 패키지 인 JAR 패키지가 스프링을 통합 할 때 함께 추가되었습니다. 아래는 최대 절전 모드 (및 MySQL 드라이버)의 JAR 패키지입니다.
Hibernate-> <pectionency> <groupid> org.hibernate </groupid> <artifactid> Hibernate-Core </artifactid> <bersion> $ {hibernate.version} </version> </dependency> <pelevency> <groupid> org.hibernate </groupid> <artifactid> Hibernate-ehcache-ehcache-ehcache-ehcache- <버전> $ {hibernate.version} </version> </fectionency> <pectionency> <groupid> org.hibernate </groupid> <artifactid> hibernate-entitymanager </artifactid> <version> $ {hibernate.version} </version> </fectionency> <group </group </group </group </group <Artifactid> hibernate-c3p0 </artifactid> <버전> $ {hibernate.version} </version} </version> </version> <pectionency> <groupid> mysql </groupId> <artifactID> mySQL-Connector-Java </artifactID> version> 5.1.9 </dependent>통합 관리 버전은 다음과 같습니다.
<! -Hibernate 버전 번호-> <hibernate.version> 5.1.0.final </hibernate.version>
Meta-Inf 디렉토리에 JPA의 구성 파일 Persistence.xml을 추가하십시오. 데이터베이스는이 기사를 소개 할 때 MySQL을 사용합니다. 다음 내용을 추가하십시오.
<? xml version = "1.0"encoding = "utf-8"?> <iresistence version = "1.0"xmlns = "http://java.sun.com/xml/ns/persistence"xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance" " xsi : schemalocation = "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence_1_0.xsd"> veristence-unit name = "Demo"Transact-Type = "Resource_local"> <! Provider> org.eclipse.persistence.jpa.persistenceprovider </<provider> org.hibernate.ejb.hibernatepersistence </provider> <class> com.ninelephas.meerkat.pojo.user </class> <!- <Properties> <Properties> 이름 = "hibernate.connection.driver_class"value = "com.mysql.jdbc.driver"/> <property name = "hibernate.connection.url"value = "jdbc : mysql : //127.0.0.1 : 3306/demo? creadatabaseifnotexist = true" 이름 = "hibernate.connection.username"value = "root" /> <property name = "hibernate.connection.password"value = "root" /<property name = "hibernate.dialect"value = "org.hibernate.dialect.mysqldialect" /> < /propertence-unit> < /persistence>
Spring 구성 파일 ApplicationContext.xml에 JPA 지원을 추가 한 후 전체 컨텐츠 :
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xmlns : context = "http://www.springframework.org/schema/context"xmlns : aop = "http://www.springframework.org/schema/aop"xmlns : p = "http://www.springframwork.org/schema/p. xmlns : tx = "http://www.springframework.org/schema/tx"xmlns : mvc = "http://www.springframework.org/schema/mvc"xmlns : jpa = "http://wwww.spramframpramworwork.org/schema/" xsi : schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/contet http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/sprring-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.spramework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spron-jpa/data/ IOC 주석 스캔-> <context : component-scan base-package = "com.anxpp.demo" /> <bean id = "entityManagerFactory"> <property name = "jpavendorAdapter"> <ean> <속성 이름 = "generateddl"value = "true" /> <property name = "database"value = "mysql" />>>>>>>>>>> />. 이름 = "persistenceUnitName"value = "demo"/> </bean> <!-MVC 주석 스캔을 켜십시오-> <mvc : Annotation-Driven/> <ean> <bean> <bean name = "viewResolvers"> <slist> <bean> <property name = "prefix"value = "/web-inf/view/"/> <속성 이름 = "valuix"> "/ban" </list> </property> <!-객체를 json으로 변환하는 데 사용되었습니다-> <속성 이름 = "defaultViews"> <list> <bean/> </list> </property> </bean> <!-정적 리소스 파일에 대한 액세스는 컨트롤러에 컨트롤러에 맵핑 될 수없는 경로를 프로세스 할 수없는 경로를 남겨 둡니다. id = "transactionManager"> <속성 이름 = "EntityManagerFactory"ref = "entityManagerFactory" /> < /bean> <!-주석 트랜잭션 활성화-> <TX : Annotation-Driven Transaction-Manager = "TransactionManager" /> <!-구성 Spring Data JPA 스캔 디렉토리-<jpa : repositories acackage = ". /> < /beans>
엔티티 수정 :
패키지 com.anxpp.demo.core.entity; import javax.persistence.entity; import javax.persistence.generatedValue; import javax.persistence.generationtype; import javax.persistence.id; import javax.persistence.table @enter @enter {@id @@id @id @@id @@id @endertity. GenerationType.AUTO) 개인 정수 ID; 개인 문자열 이름; public user () {} public user (문자열 이름) {this.name = name; } public Integer getId () {return id; } public void setId (정수 ID) {this.id = id; } public String getName () {return name; } public void setName (문자열 이름) {this.name = 이름; } @override public String toString () {return "id :"+id+", 이름 :"+name; }}DAO 계층의 구현을 삭제할 수 있습니다. 우리는 강력한 jparepository에서 DAO 레이어 인터페이스를 상속하는 것을 기억합니다.
public interface userdao 확장 jparepository <user, serializable> {user findbyid (정수 ID);}특히 간결하게 보이고 서면 구현이 필요하지 않습니까? SpringDatajpa는 자동으로이를 완료하는 데 도움이됩니다.
서비스 계층 인터페이스 수정 :
package com.anxpp.demo.core.service; import java.util.list; import com.anxpp.demo.core.entity.user; public interface userservice {user findbyid (Integer ID); 사용자 저장 (문자열 이름); List <user> findall ();}서비스 계층 구현 수정 :
패키지 com.anxpp.demo.core.service.impl; import java.util.list; import org.springframework.bean.bean.beans.annotation.autowired; import org.spramframework.stereotype.service; import com.anxpp.demo.core.dao.userdao; com.anxpp.demo.core.entity.user; import com.anxpp.demo.core.service.uservice; @servicepublic class usererviceimpl empostements userervice {@autowired userDao userDao; @override public user findByid (Integer ID) {return userDao.FindById (id); } @override public user save (string name) {return userDao.save (새 사용자 (name)); } @override public list <user> findall () {return userDao.findall (); }}여러 테스트 인터페이스를 제공하도록 컨트롤러를 수정하십시오.
pack org.springframework.web.bind.annotation.responsebody; import com.anxpp.demo.core.service.userservice;@controller@requestmapping ( "/") 공개 클래스 democontroller {@autowired userservice userservice; @RequestMapping ( "/") @ResponseBody public String index () {return "index"; } @requestmapping ( "/info") public String info () {return "info"; } @RequestMapping ( "/findAll") @ResponseBody public map <String, object> getUser () {map <String, Object> Map = new Hashmap <String, Object> (); map.put ( "state", "success"); map.put ( "data", userervice.findall ()); 리턴 맵; } @RequestMapping ( "/findByid") @ResponseBody public map <string, object> findByid (Integer ID) {map <String, object> map = new Hashmap <String, Object> (); map.put ( "state", "success"); map.put ( "data", userservice.findbyid (id)); 리턴 맵; } @RequestMapping ( "/add") @ResponseBody Public Map <String, Object> Save (String Name) {Map <String, Object> Map = New Hashmap <String, Object> (); map.put ( "state", "success"); map.put ( "data", userservice.save (name)); 리턴 맵; }}실행 효과 :
그렇다면 지정된 값보다 큰 ID가있는 지정된 성을 찾는 데이터를 추가 해야하는 경우 어떻게해야합니까?
SQL이면이 방법을 작성합니다 (? 매개 변수를 나타냅니다).
*에서 us where id>에서 *를 선택하십시오. 그리고 '?%'와 같은 이름;
그러나 여기서는 SQL (또는 HQL)을 작성하고 DAO 레이어 인터페이스에 메소드를 추가 할 필요조차 없습니다.
List <user> findByIdGreaterThanandnamelike (정수 ID, 문자열 이름);
위의 방법이 실행 된 경우 위의 방법이 성공할 것이라고 의심 할 필요는 없습니다 (참고 :이 메소드를 호출 할 때 서비스 구현을 사용하십시오. 이름+"%")!
위의 것은 가장 기본적인 Java 프로젝트에서 SpringMVC+SpringDatajpa+Hibernate를 구축하는 데 소개 된 관련 지식입니다. 모든 사람에게 도움이되기를 바랍니다. 더 많은 정보를 알고 싶다면 Wulin.com 웹 사이트에주의를 기울이십시오!