English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
메모리 데이터베이스는 무엇인가요
広く使用されているメ모리データ베이스는 다음과 같습니다. 메모리データ베이스는 시스템 메모리에依存하여 디스크 데이터ストレ이지スペースではなくデータを保存します. 메모리アクセス는ディスクアクセスよりも速いため입니다.データをパーシ스ティブにする必要がない場合、メ모리データ베이스를 사용합니다. メモ리データ베이스はエンベ디드データベ이스です.デフォルトでは、メモ리データ베이스は非持続性であり、アプリケ이션을再起動할 때 저장된すべて의 데이터가消失します。 H2,HSQLDB (HyperSQL 데이터베이스) ,public static void main(String[] args) Apache Derby. 자동으로 설정을 생성합니다.
persistency database는 데이터를 물리 메모리에 지속적으로 저장합니다. 데이터베이스 서버가 꺼지더라도 데이터는 사용할 수 있습니다. 유명한 persistency database는 다음과 같습니다 Oracle, MySQL, Postgres,와 같이。
이 대목에 대하여 内存数据库,数据存储在 系统内存中。程序关闭时丢失了数据。它对 POC (概念证明)很有帮助,而不对生产应用程序有用。广泛使用的内存数据库是 H2데이터베이스 예제 애플리케이션.class, args);
H2 是 嵌入式,开源public static void main(String[] args) 内存数据库。它是用 Java 编写的关系数据库管理系统。这是一个 客户端/服务器应用程序。它通常用于 单元测试。它将数据存储在内存中,而不是将数据持久存储在磁盘上。
优点
零配置 易于使用。 轻巧,快速。 它提供了简单的配置,可以在真实数据库和内存数据库之间切换。 它支持标准的SQL和JDBC API。 它提供了一个可在数据库中维护的Web控制台。
如果要在应用程序中使用H2数据库,则需要在pom.xml文件中添加以下依赖项:
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency>
添加依赖项后,我们需要配置H2数据库的 数据源URL,驱动程序类名称,用户名public static void main(String[] args) 비밀번호。 Spring Boot提供了一种简单的方法来配置 application.properties 文件中的这些属性。
spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
在 spring.datasource.url 属性中, mem 是内存数据库的名称,而 testdb 是内存数据库的名称。默认情况下,H2提供的架构。我们还可以定义自己的架构和数据库。默认用户名是 sa ,空白密码表示 空密码。如果要更改用户名和密码,可以覆盖这些值。
如果要将数据保留在在H2数据库中,我们应该将数据存储在一个文件中。为此,我们需要更改数据源的 URL 属性。
#保存数据 spring.datasource.url=jdbc:h2:file:/data/sampledata spring.datasource.url=jdbc:h2:C:/data/sampledata
在上面的属性中, sampledata 是一个文件名。
我们可以定义通过在 resource 文件夹(src)中创建 SQL 文件创建架构/src/resource)。
schema.sql
DROP TABLE if EXISTS CITY; CREATE TABLE CITY ( City_code int AUTO_INCREMENT PRIMARY KEY, city_name VARCHAR(50) NOT NULL, city_pincode INT(8) NOT NULL, );
다음과 같이 가능합니다 resource 폴더(src/src/resource)에 파일을 생성하십시오 SQL 파일을 사용하여 테이블에 데이터를 채웁니다.
data.sql
INSERT INTO CITY VALUES ('Delhi', 110001); INSERT INTO CITY VALUES ('Kanpur', 208001); INSERT INTO CITY VALUES ('Lucknow', 226001);
Spring Boot이 응용 프로그램 시작 시 자동으로 선택합니다 data.sql 파일을 열고 H2데이터베이스를 실행합니다.
기본적으로, H2데이터베이스의 콘솔 뷰.2데이터베이스를 활성화하기 전에, 다음 속성을 사용하여 활성화해야 합니다.
# H 활성화2 consolespring.h2.console.enabled=true
H2console을 호출하여 URL http://localhost:8080/h2-console을 브라우저에서 접근할 수 있습니다.2컨솔.2데이터베이스의 콘솔 뷰를 정의했습니다.
위의 스크린 샷에서 우리는 w3codebox 의 데이터베이스.
Spring Boot을 설정해 보겠습니다.
단계1: Spring Initializr를 열어 http://start.spring.io.
단계2: Spring Boot 버전을 선택합니다 2.3.0.M1데이터베이스 예제 애플리케이션.class, args);
단계2: 제공 Group이름. 우리는 다음을 제공했습니다 인터페이스를 만들었습니다.3codebox.
단계3: 제공 Artifact ID. 우리는 다음을 제공했습니다 spring-boot-h2-database-example.
단계5: 의존성을 추가합니다 Spring Web, Spring Data JPA,public static void main(String[] args) H2데이터베이스.
단계6: 클릭하세요 Generate (생성) 버튼을 클릭하면, 그 프로젝트를 다음과 같이 패키짐합니다: Jar 파일에서 그것을 다운로드하여 로컬 시스템에 저장합니다.
단계7: 추출 Jar 파일을 STS 작업 공간에 붙여넣습니다.
8단계: 가져오기프로젝트 폴더를 STS에 가져옵니다.
파일-> 가져오기-> 기존 Maven 프로젝트-> 탐색-> spring 폴더를 선택합니다-boot-h2-database-example-> 완료
импорт는 시간이 걸립니다.
단계9: 폴더에서/src/java 폴더에 있는 이름 인터페이스를 만들었습니다.3codebox.model 데이터베이스 예제 애플리케이션.class, args);
단계10: 패키지 인터페이스를 만들었습니다.3codebox.model에 있는 클래스를 생성했습니다. 이름이 Student 클래스. "도서" 클래스에서 다음 작업을 수행했습니다:
사칙변수를 정의합니다 id, age, namepublic static void main(String[] args) Getter와 Setter를 생성합니다.
파일을 마우스 오른쪽 버튼으로 클릭하세요-> Source-> Generate Getters and Setters。 주석 사용 @Entity로 표시하면 Entity 데이터베이스 예제 애플리케이션.class, args); 주석 사용 @Table클래스를 Table 이름으로. 주석을 사용하여 @Column 각 변수를 정의합니다 Column 데이터베이스 예제 애플리케이션.class, args);
Student.java
이제, 이 애플리케이션을 실행하겠습니다.3codebox.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; //클래스를 엔티티로 표시합니다 @Entity //클래스 이름을 테이블 이름으로 정의합니다 @Table public class Student { //id를 주키로 표시합니다 @Id //id를 열쇠 이름으로 정의합니다 @Column private int id; //name을 열쇠 이름으로 정의합니다 @Column private String name; //연령 age를 열쇠 이름으로 정의합니다 @Column private int age; //email을 열쇠 이름으로 정의합니다 @Column private String email; 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; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
단계11: studentRepository.deleteById(id); 폴더에서/src/main 인터페이스를 만들었습니다.3codebox.controller codebox.repository
StudentController.java
이제, 이 애플리케이션을 실행하겠습니다.3codebox.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.w3codebox.model.Student; import com.w3codebox.service.StudentService; //RestController를 생성 중 @RestController public class StudentController { //StudentService 클래스를 자동装配 @Autowired StudentService studentService; //데이터베이스에서 모든 학생의 상세 정보를 검색하는 get 맵핑을 생성 @GetMapping("/student) private List<Student> getAllStudent() { return studentService.getAllStudent(); } //특정 학생의 상세 정보를 검색하는 get 맵핑을 생성 @GetMapping("/student/{id}") private Student getStudent(@PathVariable("id") int id) { return studentService.getStudentById(id); } //특정 학생을 삭제하는 맵핑을 생성 @DeleteMapping("/student/{id}") private void deleteStudent(@PathVariable("id") int id) { studentService.delete(id); } //데이터베이스에서 학생 상세 정보를 발행하는 post 맵핑을 생성 @PostMapping("/student) private int saveStudent(@RequestBody Student student) { studentService.saveOrUpdate(student); return student.getId(); } }
단계13: studentRepository.deleteById(id); 폴더에서/src/java에서 이름을 인터페이스를 만들었습니다.3codebox.service codebox.repository
단계14: 패키지를 생성하십시오. Service 패키지에서 클래스를 생성했습니다. 인터페이스를 만들었습니다.3codebox.service.
StudentService.java 에서 이름을 StudentService 의 서비스 클래스.
이제, 이 애플리케이션을 실행하겠습니다.3codebox.service; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.w3codebox.model.Student; import com.w3codebox.repository.StudentRepository; @Service public class StudentService { @Autowired StudentRepository studentRepository; //모든 학생 기록을 가져오기 public List<Student> getAllStudent() { List<Student> students = new ArrayList<Student>(); studentRepository.findAll().forEach(student -> students.add(student)); return students; } //특정 기록을 가져오기 public Student getStudentById(int id) { public Student getStudentById(int id) } return studentRepository.findById(id).get(); { public void saveOrUpdate(Student student) } //studentRepository.save(student); 특정 기록을 삭제합니다 { public void delete(int id) } }
단계15: studentRepository.deleteById(id); 폴더에서/src/main 인터페이스를 만들었습니다.3java에서 이름이 codebox.repository
단계16: 패키지를 생성하십시오. 저장소패키지에서 인터페이스를 만들었습니다.3com.w codebox.repository에서 이름이 StudentRepository 그것은 저장소 인터페이스를 확장합니다. Crud Repository 인터페이스.
StudentRepository.java
이제, 이 애플리케이션을 실행하겠습니다.3codebox.repository; import org.springframework.data.repository.CrudRepository; import com.w3codebox.model.Student; public interface StudentRepository extends CrudRepository<Student, Integer> { }
이제, 다음에서 application.properties 파일에서 데이터 소스를 구성하세요 URL, 드라이버 클래스 이름, 사용자 이름public static void main(String[] args) 비밀번호데이터베이스 예제 애플리케이션.class, args);
단계17: 열기 application.properties 파일을 열고 다음 속성을 구성하세요.
application.properties
spring.datasource.url=jdbc:h2:mem:w3codebox spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect # H 활성화2 consolespring.h2.console.enabled=true
모든 클래스와 패키지를 생성한 후, 프로젝트 디렉토리는 다음과 같습니다.
现在,我们将运行该应用程序。
단계18: 열기 SpringBootH2DatabaseExampleApplication.java 文件并将其作为Java应用程序运行。
SpringBootH2DatabaseExampleApplication.java
이제, 이 애플리케이션을 실행하겠습니다.3파일을 열고 Java 애플리케이션으로 실행합니다. SpringBootH DatabaseExampleApplication.java package com.w codebox;2import org.springframework.boot.SpringApplication; { import org.springframework.boot.autoconfigure.SpringBootApplication; { @SpringBootApplication2public class SpringBootH } }
DatabaseExampleApplication Postman보내기 POST public static void main(String[] args) GET SpringApplication.run(SpringBootH 데이터베이스 예제 애플리케이션.class, args); 와
다음 단계에서 다른 클라이언트를 사용하여 요청하고,//에서 https:/www.getpostman.com/downloads//또는 브라우저 https:/1https://bit.ly Postman을 시작하고가입。사용자 이름을 만듭니다. "HCOCwF"에 Google Chrome 확장 프로그램을 추가했습니다. w3codebox 의 사용자가 클릭했습니다. 제출단계19: 열기 Postman다음 작업을 수행하세요:
선택 POST URL http: //localhost: 8080/학생. 선택바디 콘텐츠 타입 선택 JSON(애플리케이션/json) 데이터 추가. 다음과 같은 데이터를 본문에 추가했습니다:{ "id": "00"1", "age": ""23", "name": "Amit", "email": "[email protected]" }
요청이 성공적으로 실행되면, 다음과 같이 표시됩니다: 상태: 200 OK 。이는 데이터베이스에 성공적으로 입력되었음을 의미합니다。
이와 같이 다음 데이터를 추가했습니다.
{"id": "002","age": ""24","name": "Vadik","email": "[email protected]" } { "id": "00"3", "age": ""21", "name": "Prateek", "email": "[email protected]" } { "id": "00"4", "age": ""25", "name": "Harsh" "email": "[email protected]" } { "id": "00"5", "age": ""24", "name": "Swarit", "email": "[email protected]" }
H를 방문하겠습니다2컨솔을 통해 데이터를 확인하세요.
단계20: 브라우저를 열고 다음 URL을 호출하세요 http://localhost:8080/h2-console. 클릭하세요 Connect 버튼, 다음과 같이 보입니다.
클릭하세요 연결버튼을 클릭하면 데이터베이스에서 Student표, 다음과 같이 보입니다.
단계21: 클릭하세요 Student표, 그런 다음 실행버튼. 이 테이블은 우리가 본문에 삽입한 데이터를 표시합니다.
단계22: Postman을 열고 요청을 보내세요 GET 요청. 이는 우리가 데이터베이스에 삽입한 데이터를 반환합니다.
다음 URL을 사용하여 요청을 보내겠습니다 http: //localhost: 8080/student/{id}를 보냈습니다 GET 요청. 우리는 다음 URL을 호출했습니다 http://localhost:8080/student/3입니다. 이는 ID가3의 학생의 상세 정보.
와 같이도 요청을 보낼 수 있습니다. Delete 요청. 예를 들어, ID가2의 학생 레코드.
학생 레코드를 삭제하려면 다음 URL을 포함한 요청을 보내세요 http://localhost:8080/student/의 DELETE 요청. 우리는 ID가 2 의 학생이 데이터베이스에서 삭제되었습니다。