SpringBoot 통합 JPA 지구 층 프레임 워 크,데이터베이스 조작 간소화
5902 단어 SpringBootJPA
1.핵심 의존
<!-- JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
2.프로필
spring:
application:
name: node09-boot-jpa
datasource:
url: jdbc:mysql://localhost:3306/data_jpa?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true
ddl-auto 몇 가지 설정 설명1)create
hibenate 를 불 러 올 때마다 지난번 에 생 성 된 시 계 를 삭제 한 다음 bean 류 에 따라 새 시 계 를 다시 만 들 면 데이터 가 손실 되 기 쉽 습 니 다.(처음 만 들 때 사용 하 는 것 을 권장 합 니 다)
2)create-drop
hibenate 를 불 러 올 때마다 bean 클래스 에 따라 표를 만 들 지만 session Factory 가 닫 히 면 표 는 자동 으로 삭 제 됩 니 다.
3)update
hibenate 를 처음 불 러 올 때 bean 류 에 따라 표 의 구 조 를 자동 으로 만 듭 니 다.나중에 hibenate 를 불 러 올 때 bean 류 에 따라 표 구 조 를 자동 으로 업데이트 합 니 다.표 구조 가 바 뀌 더 라 도 표 의 줄 은 이전 줄 을 삭제 하지 않 습 니 다.
4)validate
hibenate 를 불 러 올 때마다 데이터베이스 시트 구 조 를 만 드 는 것 을 검증 합 니 다.데이터베이스 에 있 는 표 와 만 비교 하고 새 표를 만 들 지 는 않 지만 새 값 을 삽입 합 니 다.
3.실체 클래스 대상
이 대상 에 따라 생 성 된 표 구조 입 니 다.
@Table(name = "t_user")
@Entity
public class User {
@Id
@GeneratedValue
private Integer id;
@Column
private String name;
@Column
private Integer age;
// GET SET
}
4.JPA 프레임 의 용법대상 의 조작 인 터 페 이 스 를 정의 하고 Jpa Repository 핵심 인 터 페 이 스 를 계승 합 니 다.
import com.boot.jpa.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
@Repository
public interface UserRepository extends JpaRepository<User,Integer> {
//
User findByAge(Integer age);
//
User findByNameAndAge(String name, Integer age);
//
@Query("from User u where u.name=:name")
User findSql(@Param("name") String name);
}
5.서비스 계층 논리 패키지
import com.boot.jpa.entity.User;
import com.boot.jpa.repository.UserRepository;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class UserService {
@Resource
private UserRepository userRepository ;
//
public void addUser (User user){
userRepository.save(user) ;
}
//
public User findByAge (Integer age){
return userRepository.findByAge(age) ;
}
//
public User findByNameAndAge (String name, Integer age){
return userRepository.findByNameAndAge(name,age) ;
}
// SQL
public User findSql (String name){
return userRepository.findSql(name) ;
}
// ID
public void update (User user){
userRepository.save(user) ;
}
// id
public void deleteStudentById(Integer id){
userRepository.deleteById(id);
}
}
테스트 코드 블록
import com.boot.jpa.JpaApplication;
import com.boot.jpa.entity.User;
import com.boot.jpa.service.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = JpaApplication.class)
public class UserJpaTest {
@Resource
private UserService userService ;
@Test
public void addUser (){
User user = new User() ;
user.setName(" ");
user.setAge(22);
userService.addUser(user);
User user1 = new User() ;
user1.setName("cicada");
user1.setAge(23);
userService.addUser(user1);
}
@Test
public void findByAge (){
Integer age = 22 ;
// User{id=3, name=' ', age=22}
System.out.println(userService.findByAge(age));
}
@Test
public void findByNameAndAge (){
System.out.println(userService.findByNameAndAge("cicada",23));
}
@Test
public void findSql (){
// User{id=4, name='cicada', age=23}
System.out.println(userService.findSql("cicada"));
}
@Test
public void update (){
User user = new User() ;
// ,
user.setId(3);
user.setName(" ");
user.setAge(25);
userService.update(user) ;
}
@Test
public void deleteStudentById (){
userService.deleteStudentById(5) ;
}
}
소스 코드 주소 GitHub 주소:웃 어 봐
https://github.com/cicadasmile/spring-boot-base
클 라 우 드 주소:알 겠 습 니 다.
https://gitee.com/cicadasmile/spring-boot-base
이상 은 SpringBoot 통합 JPA 지구 층 프레임 워 크 입 니 다.데이터베이스 작업 을 간소화 하 는 상세 한 내용 입 니 다.SpringBoot 통합 JPA 지구 층 프레임 워 크 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.