이 글에서는 주로 Spring Boot JPA 액세스 Mysql 예제를 소개합니다. 편집자는 꽤 좋다고 생각하여 지금부터 공유하고 참고용으로 제공하겠습니다.
이전 글에서는 Maven을 통해 Spring Boot 프로젝트를 빌드하고, 웹 모듈을 참조하여 애플리케이션을 시작하고, 간단한 웹 애플리케이션 액세스를 완료하는 방법을 설명했습니다. 이를 기반으로 포트 수정, 아래 코드 및 예제(이 사용 사례는 순전히 수동으로 테스트 및 통과되었으므로 걱정하지 마십시오).
기본 포트 수정
다음 내용으로 srcmainresources 아래에 application.properties를 추가하세요
server.port=8888
Project디렉터리 구조
응용 프로그램을 시작하면 로그에 다음이 표시됩니다.
포트가 기본 8080에서 8888로 변경되었습니다
JPA 액세스mysql 데이터베이스
1. POM에
<!-- Spring Boot JPA --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>RELEASE</version> </dependency> <!-- MYSQL --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
를 추가합니다. 2. 다음 내용과 함께 srctestresources 아래에 application.properties를 추가합니다(정식 애플리케이션의 경우 다음을 추가하세요). srcmainresources 아래의 application.properties에 대한 구성)(중국어):
server.port=8888 spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=dbuser spring.datasource.password=dbpass spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.properties.hibernate.hbm2ddl.auto=create-drop
create: model 클래스를 기반으로 테이블을 생성하지만 실행할 때마다 삭제됩니다. 이전 테이블을 생성하고 테이블을 재생성하고, 아무런 변경 없이 2번을 해도 (프로덕션에서 비활성화 되어 있어서 실수로 사용하면 눈물이 난다...)
create-drop: 테이블 생성 모델 클래스를 기반으로 하지만 sessionFactory가 닫히는 즉시 테이블이 자동으로 삭제됩니다. (생산 비활성화)
update: 가장 일반적으로 사용되는 속성도 다음을 기반으로 테이블을 생성합니다. 모델 클래스가 변경되더라도 테이블의 행은 여전히 존재하며 이전 행은 삭제되지 않습니다.
validate: 데이터베이스의 테이블과만 비교합니다. , 새 테이블을 생성하지는 않지만 새 값을 삽입합니다.
3 , 새 엔터티
srcmainjavacomentityUser.java
package com.entity; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import java.io.Serializable; @Entity @Table(name="t_user") public class User implements Serializable { private static final long serialVersionUID = -3258839839160856613L; @Id @GeneratedValue private Long id; private String name; private String moblie; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getMoblie() { return moblie; } public void setMoblie(String moblie) { this.moblie = moblie; } }
새 데이터 액세스인터페이스(JPA)
srcmainjavacomdaoUserRepository .java
package com.dao; import entity.User; import org.springframework.data.jpa.repository.JpaRepository; /** * Description: * date: 2017/3/15 16:28 */ public interface UserRepository extends JpaRepository<User, Long> { User findByName(String name); }
소스 코드에서 볼 수 있듯이 JpaRepository는 save( 업데이트 및 저장), 삭제, getOne, findAll 및 기타 메소드를 사용하므로 기본 데이터 작업의 경우 인터페이스를 정의할 필요가 없으며 직접 사용하면 됩니다.
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package org.springframework.data.jpa.repository; import java.io.Serializable; import java.util.List; import org.springframework.data.domain.Example; import org.springframework.data.domain.Sort; import org.springframework.data.repository.NoRepositoryBean; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.query.QueryByExampleExecutor; @NoRepositoryBean public interface JpaRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> { List<T> findAll(); List<T> findAll(Sort var1); List<T> findAll(Iterable<ID> var1); <S extends T> List<S> save(Iterable<S> var1); void flush(); <S extends T> S saveAndFlush(S var1); void deleteInBatch(Iterable<T> var1); void deleteAllInBatch(); T getOne(ID var1); <S extends T> List<S> findAll(Example<S> var1); <S extends T> List<S> findAll(Example<S> var1, Sort var2); }
4. 해당 유닛 테스트를 작성하여 작성된 내용이 올바른지 확인
POM에
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency>
를 추가하여 유닛 테스트를 생성합니다. case
srctestjavaUserTest.java
import com.SampleController; import com.dao.UserRepository; import com.entity.User; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; /** * date: 2017/3/15 17:21 */ @RunWith(SpringRunner.class) @SpringBootTest(classes = SampleController.class) public class UserTest { @Autowired private UserRepository userRepository; @Test public void saveTest() { User user = new User(); user.setName("王大锤"); user.setMoblie("13300000000"); userRepository.save(user); Assert.assertEquals("13300000000", userRepository.findByName("王大锤").getMoblie()); } }
실행 결과 예시
위 내용은 Spring Boot JPA 액세스 Mysql 샘플 코드에 대한 자세한 설명(그림 및 텍스트)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!