English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
メモリデータベースはシステムメモリに依存しており、ディスクデータストレージ空間ではありません。なぜなら、メモリアクセスはディスクアクセスよりも速いからです。データを永続化しない場合、メモリデータベースを使用します。メモリデータベースはインラインデータベースです。デフォルトでは、メモリデータベースは非持続的で、アプリケーションを再起動すると、すべての保存されたデータが失われます。
広く使用されているメモリデータベースは、 H2、HSQLDB (HyperSQLデータベース) 、および Apache Derby。 それが自動的に設定を作成します。
持久性データベースはデータを物理メモリに永続的に保存します。データベースサーバーが戻るときでも、データは利用可能です。人気のある持久性データベースには、 Oracle、MySQL、Postgres、など。
それについて メモリデータベースにデータが保存されています。 システムメモリで使用されています。プログラムが終了すると、データが失われます。それは POC (概念証明)が非常に役立ち、生産アプリケーションには適していません。広く使用されているメモリデータベースは H2。
H2 は 内蔵、オープンソースおよび メモリデータベース。これは、Javaで書かれた関係データベース管理システムです。これは クライアント/サーバーで使用されます。 アプリケーション。これは、通常、サーバーやクライアント、データベースで使用されます。ユニットテスト
。データはメモリに保存され、ディスクにデータを永続化することはありません。
利点 設定不要です。 使いやすいです。 軽量で高速です。 簡単な設定で、実際のデータベースとメモリデータベース間で切り替えることができます。 標準のSQLとJDBC APIをサポートしています。
アプリケーションでH2データベースを使用する場合、pom.xmlファイルに以下の依存関係を追加する必要があります:
<dependency> <groupId>com.h2database2database</<groupId>com.h groupId>2scope>/<artifactId>h artifactId>/<scope>runtime< scope>/<
dependency>2依存関係を追加後、H データベースのおよび パスワードデータソースURL、ドライバークラス名、ユーザー名を設定するためには、 application.properties 。Spring Bootは、データソースURL、ドライバークラス名、ユーザー名を簡単に設定する方法を提供しています。
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:/データ/sampledata spring.datasource.url=jdbc:h2:C:/データ/sampledata
上記の属性では、 sampledata ファイル名です。
私たちは、以下のように定義することができます リソース フォルダー(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, 00
以下で、以下を設定できます。 リソース フォルダ(src/src/リソース)にフォルダを作成します。 SQL ファイルを作成してテーブルにデータを入力します。
Spring Bootはアプリケーションの起動時に自動的に以下を取得します。
INSERT INTO CITY VALUES ('Delhi', 110INSERT INTO CITY VALUES ('Lucknow',100 INSERT INTO CITY VALUES ('Delhi', 208INSERT INTO CITY VALUES ('Lucknow',100 INSERT INTO CITY VALUES ('Kanpur', 226INSERT INTO CITY VALUES ('Lucknow',100
); Spring Bootはアプリケーションの起動時に自動的に以下を取得します。 data.sql2ファイルを開き、H
コンソールが無効になっています。2デフォルトでは、H2データベースのコンソールビュー。H
#Hを有効にする2 consolespring.h2.console.enabled=true
データベースが有効化されたら、以下の属性を使用して有効化する必要があります。2一旦H//localhost:8080/h2-consoleをブラウザでアクセスする方法を示しています。2コンソール。以下の図はH2データベースのコンソールビューを定義しました。
上のスクリーンショットでは、以下の名前の w3codebox のデータベース。
Spring Bootを設定しましょう。
ステップ1: Spring Initializrを開きます http://start.spring.io 。
ステップ2: Spring Bootバージョンを選択 2.3.0.M1。
ステップ2: 提供 Group名前。以下を提供しました com.w3codebox。
ステップ3: 提供 Artifact ID。以下を提供しました spring-boot-h2-database-example。
ステップ5: 依存関係を追加 Spring Web、Spring Data JPA 、および H2データベース。
ステップ6: をクリックして、 Generate (生成)ボタンをクリックすると、プロジェクトが以下にパッケージされます: Jar ファイル内で、それをローカルシステムにダウンロードします。
ステップ7: 展開 JarファイルをコピーしてSTSワークスペースに貼り付けます。
第8ステップ: インポートプロジェクトフォルダをSTSにインポート。
ファイル->インポート->既存のMavenプロジェクト->ブラウズ->springフォルダを選択-boot-h2-database-example->完了
インポートには少し時間がかかります。
ステップ9: フォルダーに/src/javaフォルダ内の名前 com.w3codebox.model 。
ステップ10: パッケージ com.w3codebox.model内のクラス。 名前の Studentのクラス。 「本」クラスで以下の操作を行いました:
四つの変数の定義 id, age, nameおよび GetterとSetterの生成。
ファイルを右クリックします-> ソース-> GettersとSettersを生成します。 アノテーションを使用 @Entityとしてマークします Entity 。 アノテーションを使用 @Tableこのクラスを Table 名前を指定します。 アノテーションを使用して @Column 各変数を定義します Column 。
Student.java
package com.w3codebox.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 com.w3codebox.controller codebox.repository
StudentController.java
package com.w3codebox.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中に名前が com.w3codebox.service codebox.repository
ステップ14: パッケージを作成します。 Service パッケージ com.w3codebox.service。
StudentService.java に名前が StudentService のサービスクラス。
package com.w3codebox.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 com.w3javaに、 codebox.repository
ステップ16: パッケージを作成します。 リポジトリインターフェースが作成されました。 com.w3codebox.repositoryに、 StudentRepository のストレージインターフェースを拡張しています。 これは、 Crud Repository インターフェース。
StudentRepository.java
package com.w3codebox.repository; import org.springframework.data.repository.CrudRepository; import com.w3codebox.model.Student; public interface StudentRepository extends CrudRepository<Student, Integer> { }
今から、以下の application.properties ファイルでデータソースを設定 URL、ドライバークラス名、ユーザー名および パスワード。
ステップ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
package com.w3codebox; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootH2DatabaseExampleApplication { public static void main(String[] args) { SpringApplication.run(SpringBootH2DatabaseExampleApplication.class, args); } }
次のステップで、残りのクライアントを使用します Postman送信 POST および GET リクエスト 。 Postmanがシステムにインストールされていない場合、以下の手順を実行してください:
から https://www.getpostman.com/downloads/またはブラウザ https://bit.ly/1HCOCwF にGoogle Chromeエクステンションを追加します。 Postmanを起動し、登録。ユーザー名を作成します。以下の名前で作成しました w3codebox のユーザーが、以下をクリックしました Submitステップ19: を開きます Postman以下の操作を実行します:
選択 POST URL http: //localhost: 8080/student。 選択Body コンテンツタイプを選択 JSON(application/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 の学生はデータベースから削除されました。