ホームページ Java &#&チュートリアル Java と Spring Boot を使用して Postgres データベース用の REST API を生成する

Java と Spring Boot を使用して Postgres データベース用の REST API を生成する

Jan 06, 2025 pm 10:21 PM

このチュートリアルでは、monstarillo を使用して Postgres データベース用の Java API を生成する方法を説明します。 API は Spring Boot と Springdoc を使用して文書化します。 API は、実行対象のテーブルに対して CRUD 操作を実行します。 API の単体テストも生成されます。
このチュートリアルを進めるには、次のものが必要です:

monstarillo がインストールされました。
Postgres データベース – chinhook データベースを使用します。 Docker で Chinhook サンプル Postgres データベースをセットアップする
Java がインストールされています
Java IDE – InteliJ
を使用します。 Git

最初のステップは、API の生成に使用するテンプレートを取得することです。これを行うには、リポジトリ共有テンプレートのクローンを作成します。使用するテンプレートは java-api フォルダーにあります。
Monstarillo に生成されたコードを配置する場所を指示します
次に、生成されたコードをどこに配置するかを決定する必要があります。 Docker 経由で Monstarillo を実行します。 Monstarillo を実行している Docker イメージにディレクトリ ~/shared-volume を公開します。リポジトリのクローンを作成することによって作成された共有テンプレート フォルダーは、~/shared-volume フォルダーにあります。 ~/shared-volume/code-gen-output にコードを生成します。 Monstarillo は、コードを生成するときに code-gen-output フォルダーを作成します。

templates.json ファイルを変更します
Monstarillo は、json ファイルを使用して、実行するテンプレート、実行方法、生成するファイルの名前と配置場所を指示します。ファイル java-api/postgres/templates.json を変更します。 templates.json ファイル内のテンプレート配列は、Monstarillo にどのテンプレートを実行するか、作成するファイルの名前と配置場所を指示します。 templates.json ファイル内のタグ配列は、テンプレートや templates.json で使用されるいくつかの「タグ」を定義します。たとえば、Pac​​kagePath は templates.json ファイルで何度も使用されます。 PackagePath は多くのテンプレートで使用されますが、タグを使用すると一度定義できます。テンプレートを実行するには、タグ配列内の TemplateRoot タグと OutputPath タグを変更する必要があります。

*TemplateRoot * – テンプレート ルートは、複製したリポジトリ内の java-api フォルダーを指す必要があります。
*OutputPath * – 出力パスは、Monstarillo が生成したファイルを配置するフォルダーを指す必要があります。フォルダーがまだ存在しない場合は、Monstarillo によって作成されます。
*PackageBase * – クラスでパッケージを設定するために使用されます
*ArtifactId * – 生成された POM.xml
で使用されます *GroupId * – 生成された POM.xml
で使用されます *ApplicationClassName * – 生成されたアプリケーションのメインクラスの名前として使用されます
*ModelPropertySurrondString * – アプリケーションのモデルを生成するテンプレートで使用されます。これは、列名がキャメルケースである場合に便利です。

Generate a REST API Using Java and Spring Boot for your Postgres database
Docker で Monstarillo を実行しているので、タグを次のように設定します。

{
   "tagName": "TemplateRoot",
   "value": "/usr/local/monstarillo/shared-templates/java-api"
},
{
   "tagName": "OutputPath",
   "value": "/usr/local/monstarillo/code-gen-output/java-01"
}

Monstarillo をローカルで実行している場合、タグを次のように設定します。

{
   "tagName": "TemplateRoot",
   "value": "/home/patrick/code/patrick-templates/java-api"
},
{
   "tagName": "OutputPath",
   "value": "/home/patrick/code-gen-output/java-01"
}

Monstarillo を実行してコードを生成します
次に、Monstarillo を実行してコードを生成するコマンドを構築します。 Monstarillo に Postgres データベースを使用していることを伝え、接続情報を提供する必要があります。また、前に設定した template.json ファイルの場所を渡して、どのテンプレートを実行するかを Monstarillo に指示する必要があります。

Docker で Monstarillo を実行するには、コマンドは次のようになります:

docker run --volume=/mnt/c/code:/usr/local/monstarillo \
--network=host \
monstarillo/monstarillo:latest postgres \
--t /usr/local/monstarillo/shared-templates/java-api/postgres/templates.json  \
--u postgres \
--p <Your Database Password> \
--db "chinhook-db" \
--host "localhost" \
--schema "public"
In this command I am mounting /mnt/c/code to the docker image as /usr/local/monstarillo that is running monstarillo. My shared-templates folder is at /mnt/c/code/shared-templates and will be generating code to /mnt/c/code/code-gen-output/java-01

Monstarillo をローカルで実行している場合、コマンドは次のようになります:

monstarillo postgres \
--t /home/patrick/code/patricks-monstarillo-templates/java-api/templates.json  \
--u postgres \
--p <Your Database Password>\
--db "chinhook-db" \
--host "localhost" \
--schema "public"

コマンドを実行すると、出力は次のようになります:

Generate a REST API Using Java and Spring Boot for your Postgres database
Monstarillo が各テーブル名を出力し、それが実行されることに注目してください。この情報を使用して、コマンドのエラーをトラブルシューティングできる場合があります。

生成されたコードを表示する
次に、選択した IDE で選択した出力ディレクトリを開いてコードを表示できます。

Generate a REST API Using Java and Spring Boot for your Postgres database

次に、生成されたコード内の application.properties ファイルを変更して、データベース接続情報を更新する必要があります。このファイルは src/main/resources/application.properties

にあります。

Generate a REST API Using Java and Spring Boot for your Postgres database

IntelliJ では、IDE で PersistApi クラスを開いて実行します。

Generate a REST API Using Java and Spring Boot for your Postgres database

新しい API が実行されており、テストできます。ポストマンを利用させていただきます。 http://localhost:8080/album

でアルバム コントローラーにアクセスできます。

Generate a REST API Using Java and Spring Boot for your Postgres database

http://localhost:8080/swagger-ui/index.html にアクセスして、生成されたコードの OpenAPI 定義を確認することもできます。

Generate a REST API Using Java and Spring Boot for your Postgres database

src/java/com.monstarillo.persist_api で生成された単体テストに注目してください

Generate a REST API Using Java and Spring Boot for your Postgres database

コメント欄でご意見をお聞かせください

以上がJava と Spring Boot を使用して Postgres データベース用の REST API を生成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ハッシュマップはJavaで内部的にどのように機能しますか? ハッシュマップはJavaで内部的にどのように機能しますか? Jul 15, 2025 am 03:10 AM

HashMapは、Javaのハッシュテーブルを介してキーと値のペアストレージを実装し、そのコアはデータの位置をすばやく配置することにあります。 1.最初にキーのHashCode()メソッドを使用して、ハッシュ値を生成し、ビット操作を介して配列インデックスに変換します。 2。異なるオブジェクトは、同じハッシュ値を生成し、競合をもたらす場合があります。この時点で、ノードはリンクされたリストの形式で取り付けられています。 JDK8の後、リンクされたリストが長すぎ(デフォルトの長さ8)、効率を改善するために赤と黒の木に変換されます。 3.カスタムクラスをキーとして使用する場合、equals()およびhashcode()メソッドを書き直す必要があります。 4。ハッシュマップは容量を動的に拡大します。要素の数が容量を超え、負荷係数(デフォルト0.75)を掛けた場合、拡張して再ハッシュします。 5。ハッシュマップはスレッドセーフではなく、マルチスレッドでconcuを使用する必要があります

WindowsでJava_home環境変数を設定する方法 WindowsでJava_home環境変数を設定する方法 Jul 18, 2025 am 04:05 AM

tosetjava_homeonwindows、firstlocatethejdkinstallationpath(例:c:\ programfiles \ java \ jdk-17)、thencreateSystemenvironmentvaria blenamedjava_homewiththatpath.next、updatethepathvariablebyadding%java \ _home%\ bin、andverifythesetusingingingjava-versionandjavac-v

Java仮想スレッドパフォーマンスベンチマーク Java仮想スレッドパフォーマンスベンチマーク Jul 21, 2025 am 03:17 AM

仮想スレッドには、非常に並行したシナリオとIO集約型シナリオに大きなパフォーマンスの利点がありますが、テスト方法と適用可能なシナリオに注意を払う必要があります。 1.正しいテストでは、実際のビジネス、特にIOブロッキングシナリオをシミュレートし、JMHやガトリングなどのツールを使用してプラットフォームスレッドを比較する必要があります。 2。スループットのギャップは明らかであり、スケジューリングがより軽量で効率的であるため、100,000の同時リクエストよりも数倍から10倍高くなる可能性があります。 3。テスト中に、盲目的に高い並行性数を追求し、非ブロッキングIOモデルに適応し、レイテンシやGCなどの監視インジケーターに注意を払う必要があります。 4.実際のアプリケーションでは、Webバックエンド、非同期タスク処理、および多数の同時のIOシナリオに適していますが、CPU集約型タスクはプラットフォームスレッドまたはForkjoinpoolに依然として適しています。

JDBCを使用してJavaのトランザクションを処理する方法は? JDBCを使用してJavaのトランザクションを処理する方法は? Aug 02, 2025 pm 12:29 PM

JDBCトランザクションを正しく処理するには、最初に自動コミットモードをオフにし、次に複数の操作を実行し、結果に応じて最終的にコミットまたはロールバックする必要があります。 1。CONN.SETAUTOCOMMIT(FALSE)を呼び出して、トランザクションを開始します。 2。挿入や更新など、複数のSQL操作を実行します。 3。すべての操作が成功した場合はconn.commit()を呼び出し、データの一貫性を確保するために例外が発生した場合はconn.rollback()を呼び出します。同時に、リソースを使用してリソースを管理し、例外を適切に処理し、接続を密接に接続するために、接続の漏れを避けるために使用する必要があります。さらに、接続プールを使用してセーブポイントを設定して部分的なロールバックを達成し、パフォーマンスを改善するためにトランザクションを可能な限り短く保つことをお勧めします。

Javaにリンクリストを実装します Javaにリンクリストを実装します Jul 20, 2025 am 03:31 AM

リンクリストを実装する鍵は、ノードクラスを定義し、基本操作を実装することです。 firstデータや次のノードへの参照を含むノードクラスを作成します。次に、LinkedListクラスを作成し、挿入、削除、および印刷機能を実装します。 deppentedメソッドは、テールにノードを追加するために使用されます。 printlistメソッドを使用して、リンクリストのコンテンツを出力します。 dreatewithValueメソッドは、指定された値を持つノードを削除し、ヘッドノードと中間ノードのさまざまな状況を処理するために使用されます。

Java Microservices Serviceメッシュ統合 Java Microservices Serviceメッシュ統合 Jul 21, 2025 am 03:16 AM

ServiceMeshは、Java Microservice Architectureの進化のための避けられない選択であり、その中心はネットワークロジックとビジネスコードの分離にあります。 1. ServiceMeshは、ビジネスに焦点を当てるために、サイドカーエージェントを介したロードバランシング、ヒューズ、監視、その他の機能を処理します。 2。ISTIO使節は中程度および大規模なプロジェクトに適しており、Linkerdは軽量で小規模な試験に適しています。 3. Java Microservicesは、発見とコミュニケーションのために、装い、リボン、その他のコンポーネントを閉鎖し、IStiodに引き渡す必要があります。 4.展開中にサイドカーの自動注入を確保し、トラフィックルールの構成、プロトコル互換性、ログトラッキングシステムの構築に注意を払い、増分移行とコントロール前の監視計画を採用します。

Javaの日付をSimpleDateFormatでフォーマットする方法は? Javaの日付をSimpleDateFormatでフォーマットする方法は? Jul 15, 2025 am 03:12 AM

SimpledateFormatを作成して使用するには、NewsimpledateFormat( "yyyy-mm-ddhh:mm:ss")などの形式の文字列を渡す必要があります。 2。ケースの感受性に注意を払い、混合シングルレター形式とYyyyとDDの誤用を避けます。 3。SimpleDateFormatはスレッドセーフではありません。マルチスレッド環境では、新しいインスタンスを作成するか、毎回Threadlocalを使用する必要があります。 4.解析方法を使用して文字列を解析する場合、parseexceptionをキャッチし、結果にタイムゾーン情報が含まれていないことに注意する必要があります。 5。DateTimeFormatterとLOを使用することをお勧めします

高度なJavaコレクションフレームワークの最適化 高度なJavaコレクションフレームワークの最適化 Jul 20, 2025 am 03:48 AM

Java Collection Frameworkのパフォーマンスを向上させるために、次の4つのポイントから最適化できます。1。アレイリストへの頻繁なランダムアクセス、ハッシュセットへのクイック検索、同時環境の同時ハッシュマップなど、シナリオに従って適切なタイプを選択します。 2.初期化中に容量と荷重係数を合理的に設定して、容量の拡張オーバーヘッドを減らしますが、メモリ無駄を避けます。 3.不変のセット(list.of()など)を使用して、一定または読み取り専用データに適したセキュリティとパフォーマンスを改善します。 4.メモリの漏れを防ぎ、弱い参照またはプロのキャッシュライブラリを使用して、長期生存セットを管理します。これらの詳細は、プログラムの安定性と効率に大きく影響します。

See all articles