English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
削除操作: を意味します。 作成、読取/検索、更新および 削除これらは持続可能なストレージの基本機能の4つです。
CRUD操作をユーザーインターフェースの約束として定義することができます。この約束により、コンピュータベースのフォームやレポートを通じて情報を検索、検索、および修正することができます。CRUDはデータ指向で、 HTTP動詞の標準化用法。HTTPには重要な動詞があります。
POST: 创建新资源 GET: 读取资源 POST: 新しいリソースを作成する GET: リソースを読み取る
PUT:
DELETE: リソースを削除する データベースでは、これらの操作の各ものは一連のコマンドに直接対応しますが、RESTful APIとの関係は少し複雑です。 標準的なCRUD操作 作成操作: それは新しいレコードを作成するためのINSERT文を実行します。 読み取り操作: それはテーブルのレコードを読み取ります。
それはテーブルに対してUPDATE文を実行します。それは入力パラメータにも基づいています。 削除操作: それはテーブルから指定された行を削除します。それは入力パラメータにも基づいています。 CRUD操作の動作原理 CRUD操作は最もダイナミックなウェブサイトの基盤です。したがって、CRUD
HTTP 動詞区別する必要があります。 POST HTTP操作動詞を使用します。 を使用します。新しいレコードを作成する場合、更新 PUT 動詞を使用する必要があります。同様に、1つのレコードを削除する場合、 削除レコードを削除する場合、 DELETE 動詞。CRUD操作を通じて、ユーザーや管理者はオンラインでデータを検索、作成、編集、削除することができます。
CRUD操作を実行するオプションがたくさんあります。最も効果的な選択肢の1つは、操作を実行するためのプロシージャーをSQLで作成することです。
CRUD操作はデータベースアプリケーションで実現されるすべての主要な機能を参照します。 CRUDの各文字はSQL文とHTTPメソッドに対応します。
操作 | SQL | HTTP動詞 | RESTful Webサービス |
Create | INSERT | PUT/POST | POST |
Read | SELECT | GET | GET |
Update | UPDATE | PUT/POST/PATCH | PUT |
DELETE | DELETE | DELETE | DELETE |
Spring Bootは CrudRepository のインターフェースを含んでおり、CRUD操作のためのメソッドが含まれています。それは org.springframework.data.repository で定義されています。それはSpring Dataを拡張しています。 リポジトリインターフェース。それはストレージに対して一般的なCRUD操作を提供します。 CrudRepositoryを使用するには、インターフェースを作成して拡張する必要があります。 CrudRepository 。
文法
public interface CrudRepository<T,ID> extends Repository<T,ID>
その中で
T はストレージ管理のドメインタイプです。 ID はストレージ管理のエンティティのIDタイプです。
PagingAndSortingRepository。
public interface StudentRepository extends CrudRepository<Student, Integer> { }
を作成しました。 在上面的例で、名前のある StudentRepository のインターフェースは、CrudRepositoryを拡張しています。その中で、 Student は管理するリポジトリであり、 Integer
SpringがJpaRepositoryを導入しています JpaRepositoryはJPAに関連するメソッドを提供し、フラッシュ、永続性コンテキスト、および一つのレコードをバッチで削除するメソッドを提供します。それはこのパッケージにあります JpaRepositoryは拡張しました CrudRepository および org.springframework.data.jpa.repositoryで定義されています。
PagingAndSortingRepository。
例えば、 { }
これらのインターフェースを使用する理由は何ですか? これらのインターフェースは、私たちが一般的な操作を実行できるメソッドを提供し、カスタムメソッドを定義することもできます。
CrudRepository | JpaRepository |
CrudRepositoryはページネーションやソートのメソッドを提供していません。 | JpaRepositoryはPagingAndSortingRepositoryを拡張し、ページネーションを実装するためのすべてのメソッドを提供します。 |
これが使用されますタグインターフェース。 | JpaRepositoryは拡張しました CrudRepository および PagingAndSortingRepository 。 |
CRUD機能のみを提供します。例えば、 findById(), findAll()などです。 | 追加のメソッドとPagingAndSortingRepositoryおよびCrudRepositoryのメソッドを提供します。例えば、 flush(), deleteInBatch()。 |
JpaRepositoryとPagingAndSortingRepositoryが提供する機能が必要でない場合に使用されます。 | アプリケーションでページネーションとソート機能を実装する際に使用されます。 |
Spring Bootアプリケーションを設定し、CRUD操作を実行しましょう。
手順1: Spring Initializrを開いてください http://start.spring.io 。
手順2: Spring Bootのバージョンを選択してください。 2.3.0.M1。
手順2: Group名称。私たちは提供しました。 インターフェースが作成されました。3codebox。
手順3: 提供 Artifact ID。私たちは以下を提供しました spring-boot-crud-operation。
手順5: 依存関係を追加 Spring Web、Spring Data JPA、および H2データベースにパッケージを包装します。
手順6: をクリックします Generate (生成)ボタンをクリックすると、 Jar ファイルから、それをローカルシステムにダウンロードします。
手順7: JarファイルをSTSワークスペースに貼り付けます。
手順8:プロジェクトフォルダーをSTSにインポート
ファイル-> インポート-> 現有のMavenプロジェクト-> ブラウズ-> フォルダースプリングを選択-boot-crud-操作-> 完了
インポートには少し時間がかかります。
手順9: フォルダー内に インターフェースが作成されました。3codebox.model のパッケージ。フォルダー src/main/java。
手順10: パッケージ インターフェースが作成されました。3codebox.modelでクラスを作成します。 以下の名前のクラスを作成しました Booksのクラス。 「本」クラスで以下の操作を行いました:
4つの変数を定義します bookid, bookname, author、および GetterとSettersを生成します。
ファイル上で右クリック-> 源-> Generate GettersとSetters。 アノテーションを使用して @EntityクラスをEntity。 アノテーションを使用して @Table、このクラスを Table 名前。 アノテーションを使用して @Column 各変数を定義します。 Column 。
Books.java
package com.w3codebox.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; //mark class as an Entity @Entity //defining class name as Table name @Table public class Books { //Defining book id as primary key @Id @Column private int bookid; @Column private String bookname; @Column private String author; @Column private int price; public int getBookid() { return bookid; } public void setBookid(int bookid) { this.bookid = bookid; } public String getBookname() { return bookname; } public void setBookname(String bookname) { this.bookname = bookname; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } }
手順11: この src/main/javaフォルダに以下の名前のクラスを作成します インターフェースが作成されました。3codebox.controller のパッケージ。
手順12: パッケージ インターフェースが作成されました。3codebox.controllerにControllerクラスを作成します。 以下の名前のクラスを作成しました BooksControllerの制御クラス。 BooksControllerクラスでは、以下の操作を行いました:
アノテーションを使用して @RestControllerクラスを RestController 。 アノテーションを使用して @Autowired 自動アノテーション BooksService クラス。 以下のメソッドを定義します: getAllBooks() 。これは、すべての本のリストを返します。 getBooks() これは、パス変数で指定した本の詳細情報を返します。@PathVariableアノテーションを使用して、bookidをパラメータとして渡し、メソッドのパラメータにURIテンプレート変数をバインドする指示を出しました。 deleteeBook() これは、パス変数で指定した特定の本を削除します。 saveBook() 図書の詳細情報を保存します。@RequestBodyアノテーションは、メソッドのパラメータをWebリクエストの正文にバインドする必要があることを示します。 update(): このメソッドは1件のレコードを更新します。更新するレコードを正文で指定する必要があります。同じ目的を達成するために、@RequestBodyアノテーションを使用しました。
BooksController.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.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import com.w3codebox.model.Books; import com.w3codebox.service.BooksService; //このクラスをControllerとしてマークします @RestController public class BooksController { //BooksServiceクラスを自動装配します @Autowired BooksService booksService; //データベースからすべての図書の詳細情報を検索するGETマッピングを作成します @GetMapping("/book") private List<Books> getAllBooks() { return booksService.getAllBooks(); } //特定の書籍の詳細情報を検索するGETマッピングを作成します @GetMapping("/book/{bookid}") private Books getBooks(@PathVariable("bookid") int bookid) { return booksService.getBooksById(bookid); } //特定の本を削除するマッピングを作成します @DeleteMapping("/book/{bookid}") private void deleteBook(@PathVariable("bookid") int bookid) { booksService.delete(bookid); } //データベースに図書の詳細情報を公開するPOSTマッピングを作成します @PostMapping("/books") private int saveBook(@RequestBody Books books) { booksService.saveOrUpdate(books); return books.getBookid(); } //図書の詳細情報を更新するPUTマッピングを作成します @PutMapping("/books") private Books update(@RequestBody Books books) { booksService.saveOrUpdate(books); return books; } }
手順13: フォルダー src/main/javaに、 インターフェースが作成されました。3codebox.service のパッケージ。
手順14: 创建一个 Service 类。 インターフェースが作成されました。3codebox.service中创建了一个名为 BooksService 的服务类。
BooksService.java
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.Books; import com.w3codebox.repository.BooksRepository; //定义业务逻辑 @Service public class BooksService { @Autowired BooksRepository booksRepository; //使用cruddrepository的findaAll()方法获取所有书籍记录 public List<Books> getAllBooks() { List<Books> books = new ArrayList<Books>(); booksRepository.findAll().forEach(books1 -> books.add(books1)); return books; } //通过使用cruddrepository的findById()方法获取特定的记录 public Books getBooksById(int id) { return booksRepository.findById(id).get(); } //使用CrudRepository的save()方法保存特定记录 public void saveOrUpdate(Books books) { booksRepository.save(books); } //使用CrudRepository的deleteById()方法删除特定记录 public void delete(int id) { booksRepository.deleteById(id); } //レコードを更新します。 public void update(Books books, int bookid) { booksRepository.save(books); } }
手順15: フォルダー src/main/javaに、 インターフェースが作成されました。3codebox.repository のパッケージ。
第16ステップを作成します。 リポジトリパッケージ インターフェースが作成されました。3com.w codebox.repositoryで、 BooksRepository それはリポジトリインターフェースを拡張しています。 Crudリポジトリインターフェース。
BooksRepository.java
package com.w3codebox.repository; import org.springframework.data.repository.CrudRepository; import com.w3codebox.model.Books; //repositoryがCrudRepositoryを拡張する public interface BooksRepository extends CrudRepository<Books, Integer> { }
今、以下で application.properties ファイルでデータソースを設定します。 URL、ドライバークラス名、ユーザー名および パスワード。
手順17: を開きます application.properties ファイルを開いて以下の属性を設定します。
application.properties
spring.datasource.url=jdbc:h2:mem:books_data spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect#有効化するH2 consolespring.h2.console.enabled=true
全てのクラスとパッケージを作成した後、プロジェクトのディレクトリ構造は以下の通りです。
今、このアプリケーションを実行します。
手順18: を開きます SpringBootCrudOperationApplication.java ファイルを開いてJavaアプリケーションとして実行します。
SpringBootCrudOperationApplication.java
package com.w3codebox; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringBootCrudOperationApplication { public static void main(String[] args) { SpringApplication.run(SpringBootCrudOperationApplication.class, args); } }
手順19: を開きます Postman以下の操作を実行します:
を選択 POST URL http:を呼び出し//localhost:8080/books。 を選択Body コンテンツタイプを選択します JSON(application/json) データを挿入しました。以下のデータを主体に挿入しました:
{ "bookid": "5433", "bookname": "Core and Advance Java", "author": "R. Nageswara Rao", "price": "800" }
クリック送信
リクエストが成功した後、以下が表示されます ステータス: 200 OK これは、レコードがデータベースに成功して挿入されたことを意味します。
同様に、以下のデータを挿入しました。
{"bookid": "0982","bookname": "Programming with Java","author": "E. Balagurusamy","price": ""350" } { "bookid": "6321", "bookname": "Data Structures and Algorithms in Java", "author": "Robert Lafore", "price": "590" } { "bookid": "5433", "bookname": "Effective Java", "author": "Joshua Bloch", "price": "670" }
H2コンソールでデータを確認します。
手順20: ブラウザを開いてURL http:を呼び出します//localhost:8080/h2-console。をクリックします Connect ボタンをクリックします。以下のようになります。
をクリックします 接続ボタンをクリックした後、データベースで以下が見つかります Books テーブルが以下のようになります。
手順21: をクリックします Books テーブルをクリックして、次に を実行しますボタンをクリックします。このテーブルは、本文に挿入したデータを表示しています。
手順22: を開きます Postman、URLを送信します:http://localhost:8080/booksの GET を送信します。データベースに挿入したデータが返されます。
URL http://localhost:8080/book/{bookid}を送信 GET のリクエストを指定しました。 bookid 6830 。IDが6830の本の詳細情報。
同様に、以下を送信することで削除することもできます DELETE リクエストを削除します。IDが 5433 の図書レコードを削除します。
を選択 DELETE メソッドを呼び出し、URL http://localhost:8080/書/5433。再びHに移動して2コントロールタブで実行 Select クエリ。IDが 5433 の本がデータベースから削除されました。
同様に、以下を送信することで更新することもできます PUT リクエストを送信してレコードを更新します。IDが 6321 の本の価格を変更します。
を選択 PUT リクエストの正文に、更新するレコードを貼り付けて変更してください。この例では、IDが6321の本のレコード。以下のレコードで、本の価格を変更しました。
{ "bookid": "6321", "bookname": "Data Structures and Algorithms in Java", "author": "Robert Lafore", "price": "500" }
クリック送信
今、Hに移動します2コンソールに移動して、変更が反映されたか確認してください。この本の価格が以下のように変更されたことが分かります。