この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 36133|答える: 7

[出典] Spring Boot Hibernate Druid MySQL プロジェクト構築チュートリアル【ソースコード付き】

[リンクをコピー]
掲載地 2019/02/20 14:44:57 | | | |
私もJavaは半分しか使っておらず、Spring Familyのバケットにはあまり詳しくありません。オンラインチュートリアルや自分の経験をもとにプロジェクトフレームワークを構築しました。
プロジェクト環境:JDKバージョン:1.8.0_171、mySQLバージョン:5.7.17、スプリングブート:2.1.1.RELEASE、開発ツール:idea。

ハイバネートとJPA

この記事のウェブプロジェクトは、永続化レイヤーフレームワークとしてHibernateを使用しています。 Spring Bootでは、もう一つの概念を理解する必要があります:JPA(連邦平均権)です

前の文は曖昧かもしれませんが、JPAがスプリングブートの概念であることを意味するわけではありません。 代わりに、Java Persistence APIと呼ばれ、中国語では「Java Persistence Layer API」と訳されます。

JPAはORM(またはO/Rマッピング)に基づく標準仕様であり、JPAは標準ルールのみを定義し、実装は提供しません。

現在、JPAの主な実装はHibernate、EclipseLink、OpenJPAなどです。

データアクセス解決技術の分野でHibernateが支配的であるため、JPA標準は基本的にHibernateに支配されています。

スプリングブーツは自動小銃です

Spring Data JPAは、Hibernateフレームワークを開発者が適用するためのインターフェースツールとして提供されています。 私たちのSpring Bootは完全自動化の「自動依存モジュール」を提供しています:spring-boot-starter-data-jpa


POM依存構造:

ハイバネートの引用なしのPOMファイルについて質問がある方はいらっしゃいますか?



その理由は、上の図に示されているように、spring-boot-starter-data-jpaはhibernate-coreに依存しており、spring-boot-starter-data-jpaを参照すると、mavenプロジェクトは自動的に依存するパッケージを導入するからです。


application.ymlプロフィール:

スプリング構成データソース情報の公式リンク:ハイパーリンクのログインが見えます。

##########################################
###datasource - mysqlデータベースの接続情報を指定してください
###spring.datasource.url: MySQLアドレス
###spring.datasource.user: データベースのユーザー名
###spring.datasource.password:データベースのパスワード
###spring.datasource.driverClassName: データベースドライバに対応しています
###spring.datasource.max アクティブ:接続プール内の最大アクティブ接続数を指定します
###spring.datasource.max アイドル:接続プール内の最大空き接続数を指定します。
###spring.datasource.min-idle: 維持すべき最小値を指定します(DBCPおよびTomcat接続プールの場合)
###spring.datasource.initial-size: 接続プール開始時に最初に確立された接続数を指定します
###
###其他信息总结:
###spring.dao.exceptiontranslation.enabled PersistenceExceptionTranslationPostProcessorが有効であっても、デフォルトはtrueです
###spring.datasource.abandon-when-percentage-fullsets タイムアウトが放棄された際に放棄された接続のうち、閉鎖または報告された割合
###spring.datasource.allow-pool-sussuspend Hikari poolを使用する際、接続プールの一時停止を許可するかどうかはfalseに設定されています
###spring.datasource.alternate-username-allowed代替ユーザー名が許可されているかどうか。
###spring.datasource.auto-commit 更新が自動的にコミットされるかどうかを指定します。
###spring.datasource.catalogはデフォルトのカタログを指定します。
###spring.datasource.commit-on-returnは、接続が戻された際にすべての未解決トランザクションをコミットするかを決めます
###spring.datasource.connection-init-sqlは、接続プールの前に実行されるSQLに接続が作成され、追加されることを指定します。
###spring.datasource.connection-init-sqls DBCP接続プールを使用する際、初期化時に実行するSQLを指定します
###spring.datasource.connection-properties。 [キー]DBCP接続プールを使用する際に設定すべき属性を指定します
###spring.datasource.connection-test-queryは、接続実行の正当性を検証するSQL文を指定します
###spring.datasource.connection-timeout接続のタイムアウト時間をミリ秒単位で指定します。
###spring.datasource.continue-on-errorをデータベースを初期化し、継続するかどうかのエラーに遭遇すると、デフォルトはfalseです
###spring.datasource.data は Data(DML)スクリプトを指定します
###spring.datasource.data-source-class-name データソースの完全修飾名を指定します。
###spring.datasource.data-source-jndi は jndi のアドレスを指定します
###spring.datasource.data-source-properties. Hikari接続プールを使用する際は、設定する属性を指定します
###spring.datasource.db-propertiesはTomcat接続プールを使用し、設定するプロパティを指定します
###spring.datasource.default-auto-commitは自動的にコミットされます。
###spring.datasource.default-catalogは、デフォルトに接続するカタログを指定します。
###spring.datasource.default-read-onlyを読み取り専用に設定する。
###spring.datasource.default-transaction-isolation 接続されたトランザクションのデフォルトの分離レベルを指定します。
###spring.datasource.driver-class-name はドライバーのクラス名を指定し、デフォルトでjdbc URLから検出されます。
###spring.datasource.fair-queue FIFOを使わせて接続を返すかどうか。
###spring.datasource.health-check-properties。 [キー] 心拍チェック時にヒカリ接続プールを使用した際に属性が渡った
###spring.datasource.idle-timeout接続が使われない期間を指定し、デフォルトでアイドルに設定されています
###spring.datasource.ignore-exception-on-pre-load 接続プールの初期化時に例外が無視されるかどうか。
###spring.datasource.init-sql は接続作成時に実行されます
###spring.datasource.initial-size は、接続プール開始時に最初に確立された接続数を指定します
###spring.datasource.initialization-fail-fast接続プールを作成する際、例外をスローするための指定された最小接続数を作成することはできません
###spring.datasource.initializeデータソースをdata.sqlで初期化するかどうかを指定する。デフォルトはtrueです
###spring.datasource.isolate-internal-queriesは内部クエリを隔離するかどうかを指定し、デフォルトはfalseとなります
###spring.datasource.jdbc-interceptors Tomcat connection poolを使用する際は、jdbcインターセプタとセミコロン分離を指定します
###spring.datasource.jdbc-urlはJDBCのURLを指定します。
###spring.datasource.jmx-enabled はデフォルトで有効化されています:false
###spring.datasource.jndi-nameはjndiの名前を指定します。
###spring.datasource.leak-detection-threshold Hikariの接続プールを使うと、何ミリ秒で接続漏れを検出しますか?
###spring.datasource.log-abandonedはDBCP接続プールを使って放棄された文や接続を追跡し、デフォルトはfalseです
###spring.datasource.log-validation-errorsTomcat接続プールを使用する際、検証エラーを印刷するかどうか。
###spring.datasource.login-timeoutデータベースへの接続タイムアウト時間を指定します。
###spring.datasource.max 年は接続プール内の接続の最大年数を指定します
###spring.datasource.max 寿命は、接続プール内の接続の最大寿命をミリ秒単位で指定します。
###spring.datasource.max-open-prepared-statementsは、開封される最大数の準備済み文を指定します。
###spring.datasource.max 待機は、接続プールが接続の戻りを待つ最大待ち時間をミリ秒単位で指定します。
###spring.datasource.maximum-pool-sizeは、接続プール内の最大接続数(アクティブ接続およびアイドル接続を含む)を指定します。
###spring.datasource.min-evictable-idle-time-millisは、その接続が解除されるまでの最小限の空き接続を指定します。
###spring.datasource.min-idleは、維持すべき最小値を指定します(DBCPおよびTomcat接続プールの場合)。
###spring.datasource.minimum-idleは、接続が維持する最小の空き接続数を指定します。HikariCPを使用する場合も含まれます。
###spring.datasource.name データソースの名前を指定してください。
###spring.datasource.num-tests-per-eviction-runは、各アイドルオブジェクトのイービタースレッドを実行する際のオブジェクト数を指定します
###spring.datasource.passwordデータベースのパスワードを指定します。
###spring.datasource.platformはスキーマに使用するプラットフォーム(schema-${platform}.sqlを指定し、デフォルトは以下の通りです:
###spring.datasource.pool-nameは接続プールの名前を指定します。
###spring.datasource.pool-prepared-statements文をプールするかどうかを指定します。
###spring.datasource.propagate-interrupt-stateスレッドが接続を待つ間に割り込みが中断された場合、割り込み状態を伝播するかどうか。
###spring.datasource.read-onlyHikari接続プールを使用する際、データソースを読み取り専用にマークするかどうか
###spring.datasource.register-mbeansは、Hikari接続プールがJMX MBeansをレジスタしているかどうかを指定します。
###spring.datasource.remove-abandonedは、放棄されたタイムアウト直後に接続を削除するかどうかを指定します。
###spring.datasource.remove-abandoned-timeout接続を放棄すべき時刻を指定します。
###spring.datasource.rollback-on-returnは接続を返す際に保留中のトランザクションをロールバックするものです。
###spring.datasource.schemaはSchema(DDL)スクリプトを指定します。
###spring.datasource.separator はスクリプトの初期化のための文 セパレーターを指定します。デフォルトは;
###spring.datasource.sql-script-encoding は SQL スクリプトのエンコーディングを指定します。
###spring.datasource.suspect-timeout放棄接続を印刷する前にタイムアウトを指定します。
###spring.datasource.test-on-borrow。接続プールから接続を借りる際、接続をテストするかどうか。
###spring.datasource.test-on-connectが作成され、接続をテストするかどうか
###spring.datasource.test-on-return接続が接続プールに戻されるかどうか。
###spring.datasource.test-while-idle接続がアイドル状態のときに接続テストを行うこと。
###spring.datasource.time-between-eviction-runs-millis アイドル接続チェック、放棄接続クリーンアップ、アイドル接続プールのサイズ間間の操作時間間隔を指定します
###spring.datasource.transaction-isolation はトランザクション分離レベルを指定し、Hikari接続プールを使用する際に指定されます
###spring.datasource.urlはJDBCのURLを指定します。
###spring.datasource.use-disposable-connection-façadeは、接続が閉じた後に使われないようにラップします。
###spring.datasource.use-equal は ==を置き換えるためにString.equals()を使うかどうかを判明します。
###spring.datasource.use-lockは接続操作でロックされています
###spring.datasource.usernameデータベース名を指定します。
###spring.datasource.validation-intervalは、接続チェックを行うms 数を指定します。
###spring.datasource.validation-queryは、接続取得時の接続検証のためのSQLクエリ文を指定します。
###spring.datasource.validation-query-timeoutは接続検証クエリのタイムアウト時間を指定します。
###spring.datasource.validation-timeoutHikari接続プールを使用する際に指定される接続検証のタイムアウト時間を設定します
###spring.datasource.validator-class-name クエリのテストに使用されたバリデーターの完全修飾子。
###spring.datasource.xa.data-source-class-name データソースの完全な修飾子を指定します。
###spring.datasource.xa.properties は、XAデータソースに渡されるプロパティを指定します
###spring.datasource.url=jdbc:mysql://localhost:3306/test?user=root&password=root&useUnicode=true&characterEncoding=UTF8
##########################################
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.max-アクティブ=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
##########################################
##SPring JPAの設定情報
###spring.jpa.database はターゲットデータベースを指定します。
###spring.jps.show-sq: SQL文を表示するかどうか
###spring.jpa.hibernate.ddl-auto は DDL モード(none, validate, update, create, create-drop)を指定します。 組み込みデータベースを使用する場合、デフォルトはcreate-dropで、それ以外はnoです。
###spring.jpa.hibernate.naming-strategy命名ポリシーを指定してください。
###其他:
###spring.jpa.database-platformターゲットデータベースの種類を指定します。
###spring.jpa.generate-ddl 起動時にスキーマを初期化するかどうか、デフォルトはfalse
###spring.jpa.hibernate.ddl-auto は DDL モード(none, validate, update, create, create-drop)を指定します。 組み込みデータベースを使用する場合、デフォルトはcreate-dropで、それ以外はnoです。
###spring.jpa.hibernate.naming-strategy命名ポリシーを指定してください。
###spring.jpa.open-in-view はOpenEntityManagerInViewInterceptorを登録し、JPA EntityManagerをリクエストスレッドにバインドします。デフォルトはtrueです
###spring.jpa.properties は JPA プロバイダーに追加の属性を追加します。
###spring.jpa.show-sql SQL ログを有効にするかどうかはデフォルトで false に設定されています
##########################################
spring.jpa.database = MYSQL
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = Update
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.freemarker.charset=UTF-8

パッケージ全体の構造



データソース構成:




エンティティクラス:



データベース運用インターフェース:

データベース運用インターフェースはJpaRepositoryジェネリッククラスから継承しており、それを継承すると開発者に授ける神聖な力を得ます。



これらのメソッドを直接呼び出してデータベース操作を行うことができ、またHQLをカスタマイズして自分の性格に合った他の操作を実行させることも可能です。例えば:

このコードでは、@Queryコメントを通じて、HQLの執筆を完了ここで「:name」は下記の@Param注釈のパラメータと整合しています。

注:HQLのテーブル名はORMマップのクラス名であるべきであり、HQLには「*」の意味が異なるなど、従来のSQL文といくつかの違いがあります。

HQLに慣れていない場合は、SQL文も使えます:



上記の方法は実行すれば依然として有効です。nativeQuery to true とは、SQL 言語を使用することを意味します

コントローラークラス:

プロジェクト開始

Hibernateはエンティティクラスをデータベースに自動的にマッピングして関連するデータベーステーブルを作成し、@Table、@Column、@Id、@GeneratedValue(戦略=GenerationType.AUTO)などの注釈に基づいてデータベーステーブルを自動的にマッチングします。 集計作業を大幅に省けます。


(プロジェクト開始前にデータベースを構築する必要があり、テーブルは自動的に作成されます)



hibernate_sequenceテーブルはid生成戦略@GeneratedValue注釈付きで、GenerationType.AUTOは自動生成を表します。id属性がintまたはlong型属性である場合、String型のidであれば、idの上に注釈を追加すると即座にエラーが報告されます。 したがって、String型のIDであれば、IDに@GeneratedValueで注釈を付ける必要はありません(strategy = GenerationType.AUTO)。

検査を依頼してください

データリクエストの完了と投稿によるデータ保存。


呼び出すハイパーリンクのログインが見えます。以下の図に示されるように、データを追加するインターフェースPOST要求:



データベースのクエリは以下の通りです:



以下のインターフェースからデータを取得します:

ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。



注意:上記のインターフェースの要望通り、Javaは大文字の大文字を区別する非常に敏感で、URLアドレスでもパラメータでも大文字を区別しなければなりません! もし文字が大文字か小文字の場合、リクエストがインターフェースに届かなかったり、パラメータが空になったりします!

ドルイドは以下の状況を監視します。






最後にソースコードを添付します:

観光客の皆さん、この投稿の隠された内容を見たい方は、どうぞ答える


(終わり)





先の:データソースの設定に失敗しました
次に:解友午後の茶 | 2019年2月20日(水)
掲載地 2019/02/21 2:19:13 |
「学ぶことを学ぶ」という方法を見てみてください。
掲載地 2019/07/05 17:27:02 |
学ぶことを...
掲載地 2019/07/22 14:15:41 |
「学ぶことを学ぶ」という方法を見てみてください。
掲載地 2019/11/21 21:08:12 |
【実戦】スプリングブート休止 ドルイド MySQL プロジェクト構築チュートリアル
掲載地 2020/03/30 13:52:54 |
どうもありがとうございます
掲載地 2020/06/28 15:13:11 |
大手のコード学習を見てみましょう
掲載地 2020/11/18 23:57:19 |
学ぶために
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com