Spring boot2.x 에 H2 데이터베이스 코드 인 스 턴 스 통합
spring boot 에 통합
1.의존 도 추가
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2.H2 관련 설정 추가,application.properties 파일 수정
spring.jpa.database=h2
spring.jpa.show-sql=true
#ddl ,update create
spring.datasource.url=jdbc:h2:./data/test;AUTO_SERVER=TRUE
spring.jpa.hibernate.ddl-auto=update
spring.datasource.username=sa
spring.datasource.password=123456
spring.datasource.driverClassName=org.h2.Driver
spring.h2.console.path=/h2-console
spring.h2.console.enabled=true
설명:spring.datasource.url
데이터베이스 파일
(1)메모리 데이터베이스
jdbc:h2:mem:DBName
메모리 데이터베이스 의 데 이 터 는 메모리 에 존재 합 니 다.프로그램 이 멈 추 면 저장 되 지 않 고 잃 어 버 립 니 다.
eg:
spring.datasource.url=jdbc:h2:mem:test
(2)파일 데이터베이스
jdbc:h2:file:{FilePath}도 jdbc:h2:{FilePath}로 간략화 할 수 있 습 니 다.
FilePath 형식
jdbc:h2:tcp://<{IP|hostname}>[:{Port}]/[]<{dbName}>
추가 매개 변수:
3.코드
domain 계층,즉 User 클래스(entity)
package com.example.demo.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
@Entity
@Table(name = "user")
@Data
public class User {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
dao 층,즉 UserRepository 인터페이스
package com.example.demo.dao;
import com.example.demo.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface UserRepository extends JpaRepository<User,Integer> {
List<User> getUsersByName(String Name);
}
controller 층,즉 데모
package com.example.demo.controller;
import com.example.demo.dao.UserRepository;
import com.example.demo.domain.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class Demo {
@Autowired
private UserRepository repo;
@RequestMapping("find")
public List<User> find() {
return (List<User>) repo.findAll();
}
}
데모 응용 프로그램 작성
package com.example.demo;
import com.example.demo.dao.UserRepository;
import com.example.demo.domain.User;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class DemoApplication {
@Bean
InitializingBean saveData(UserRepository repo){
return ()->{
User u = new User();
u.setName("abc");
repo.save(u);
User u1 = new User();
u1.setName("zyx");
repo.save(u1);
};
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
프로젝트 시작,브 라 우 저 접근 열기http://localhost:8080/find방문 하 다.http://localhost:8080/h2-console/
연결 후 데이터 조회
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.