English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring Boot JDBC アプリケーションをJDBC接続と連携するスタートアッププログラムおよびライブラリを提供します。
Spring Boot JDBCでは、データベースに関連するBean(例えば DataSource、JdbcTemplate および NamedParameterJdbcTemplate )は起動時に自動的に設定および作成されます。それらを使用したい場合は、自動装配これらのクラスができます。例えば、
@Autowired JdbcTemplate jdbcTemplate; @Autowired private NamedParameterJdbcTemplate jdbcTemplate;
で、 application.properties ファイルで、 DataSource および 接続プール。Spring Bootはデフォルトで tomcat プールです。
JDBC接続プールの管理 複数のデータベース接続リクエストのメカニズムです。言い換えれば、接続の再利用、つまりデータベース接続のメモリキャッシュ、すなわち 接続プール。接続プールモジュールは、標準のJDBCドライバー製品の上に一層としてそのメンテナンスを行います。
データアクセス速度を向上させ、アプリケーションのデータベース接続数を減少させることができます。また、アプリケーションのパフォーマンスを向上させることができます。接続プールは以下のタスクを実行します:
利用可能な接続を管理する 新しい接続を割り当てる 接続を閉じる
上図では、 クライアント、1つの接続プール(4つの利用可能な接続を持ちます)および 1データソース。
最初の図では、3つのクライアントが異なる接続に接続し、接続が利用可能です。二つ目の図では、クライアント3接続が切断され、その接続は利用可能です。
クライアントが作業を完了すると、その接続は解放され、他のクライアントで使用可能になります。
SpringBoot 2のデフォルトの接続プールは HikariCP それにより、企業向けの機能とより良いパフォーマンスが提供されます。HikariCPはJDBCデータソース実装であり、接続プールメカニズムを提供します。
HikariCPがクラスパスに存在する場合、Spring Bootは自動的にそれを設定します。 HikariCPがクラスパスに存在しない場合、Spring Bootは以下を検索します。 Tomcat JDBC接続プール。 Spring Bootのクラスパスに存在する場合、それを拾います。 以上の2つのオプションが利用できない場合、Spring Bootは以下を選択します。 Apache Commons DBCP2 JDBC接続プールとして使用します。
デフォルトの接続プールを使用したい場合は、接続プールを手動で設定できます。例えば、HikariCPではなくTomcat JDBC接続プールを使用する場合、以下を排除します。 HikariCP 依存関係を追加し、pom.xmlファイルに以下を追加します。 tomcat-jdbc 以下のように依存関係を追加します。
<dependency> <groupId>org.springframework.boot/<groupId> <artifactId>spring-boot-starter-data-jpa</ artifactId > <exclusions> <exclusion> <groupId>com.zaxxer/<groupId> <artifactId>HikariCP/ artifactId > </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.tomcat</<groupId> <artifactId>tomcat-jdbc</artifactId> <version>9.0.10</version> </dependency> <dependency> <groupId>com.h2database</<groupId> <artifactId>h2</artifactId> <version>1.4.9</version> <socpe>runtime</scoope> </dependency>
これらの方法により、Tomcat接続プールを使用するためにコードを書かずに使用できます。 @Configuration クラスをプログラム的に定義して、以下のようにします。 DataSource bean。
一方で、Spring Bootが使用する接続プールスキャンアルゴリズムをスキップすることもできます。application.propertiesファイルに属性を追加して、以下のようにできます。 spring.datasource.type 接続プールデータソースを明確に指定します。
Spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
Tomcat接続プールを既に設定しました。現在、以下で接続プールデータソースを明確に指定します。 application.properties 中追加了一些属性,以优化其性能并满足某些特定要求。
spring.datasource.tomcat.initial-size=20 spring.datasource.tomcat.max-wait=25000 spring.datasource.tomcat.max-active=70 spring.datasource.tomcat.max-idle=20 spring.datasource.tomcat.min-idle=9 spring.datasource.tomcat.default-auto-commit=true
MySQLデータベースに接続するには、アプリケーションのクラスパスにJDBCドライバを含める必要があります:
<!-- MySQL JDBC driver --> <dependency> <groupId>mysql</<groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
その後、 application.properties ファイルで定義されています datasoure 属性。
spring.datasource.password=passwordを使用している場合、 MySQLを使用している場合、以下の属性を使用してくださいデータベース:
spring.datasource.url=jdbc:mysql://192.168.1.4.3306/: test3spring.datasource.username=w codebox
spring.datasource.password=passwordを使用している場合、 Oracle データベースを使用する場合、以下の属性を使用してください:
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl spring.datasource.username=system spring.datasource.password=Password123
Spring JDBCとSpring Boot JDBCの実装は同じです。Spring JDBCに比べて、Spring Boot JBDCには以下の利点があります:
Spring Boot JDBC | Spring JDBC |
必要なのは spring-boot-starter-jdbc 依存関係。 | Spring JDBCでは、複数の依存関係を設定する必要があります。例えば、 spring-jdbc および spring-context。 |
未明示維護のままでは、自動的にDatasource beanが設定されます。beanを使用したくない場合は、属性 spring.datasource.initialize に設定する必要があります。 false 。 | Spring JDBCでは、 XML または javaconfig データベースBeanの作成 |
Spring Bootがbeanを自動的に登録するため、テンプレートbeanを登録する必要はありません。 | テンプレートbeanを登録する必要があります。 PlatformTransactionManager、JDBCTemplate、NamedParameterJdbcTemplate 。 |
.sqlファイルに保存されているすべてのデータベースの初期化スクリプトは自動的に実行されます。 | SQLファイルにデータベースの初期化スクリプト(例えば、テーブルの削除や作成)が作成された場合、設定で明示的にこの情報を提供する必要があります。 |
JDBC | Hibernate |
JDBCは技術。 | Hibernateは ORM フレームワーク。 |
JDBCでは、ユーザーが接続の作成と閉じる責任を持ちます。 | Hibernateでは、ランタイムシステムが接続の作成と閉じる責任を持ちます。 |
遅延ロードをサポートしていません。 | 遅延ロードをサポートし、より良いパフォーマンスを提供します。 |
関連をサポートしていません(2つの独立したクラス間の接続)。 | 関連をサポートしています。 |
次の部分では、Spring BootアプリケーションにおけるMySQLの接続性を学びます。