SpringBootによるJDBCデータソースの詳細な説明

この記事では、主にSpringBootでのJDBCデータソースの使用に関する知識を記録しています。興味がある場合は、エディターで学習してください。

1.コード表示

pom.xml

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<scope>runtime</scope>
</dependency>

application.properties

spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://192.168.1.110:3306/jdbc
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

クラスをテストし、デフォルトの接続データソースをテストします

@SpringBootTest
class SpringBootJdbcApplicationTests {
    
    
	
	@Autowired
	DataSource dataSource;

	@Test
	void contextLoads() throws SQLException {
    
    
		System.out.println(dataSource.getClass());
		Connection connection = dataSource.getConnection();
		System.out.println(connection);
		connection.close();
	}

}

効果:
springbootデータソースとしてorg.apache.tomcat.jdbc.pool.DataSourceを使用するには、1.5.10デフォルト;
springbootデータソースとして使用するクラスcom.zaxxer.hikari.HikariDataSourceに2.4.3デフォルト;
の関連する設定データソースはInsideDataSourcePropertiesにあります。

2.自動構成の原則

DataSourceConfigurationを参照し、構成に従ってデータソースを作成します。spring.datasource.typeを使用してカスタムデータソースタイプを指定できます。

3.SpringBootはデフォルトでデータソースをサポートします

この構成クラスでDataSourceConfigurationを表示できます

SpringBootバージョン2.4.3は、5つのデータソース
1、org.apache.tomcat.jdbc.pool.DataSource
2、com.zaxxer.hikari.HikariDataSource
3、org.apache.commons.dbcp2.BasicDataSource
4、oracle.ucp。jdbcをサポートします。 PoolDataSource5
。データソースをカスタマイズすることもできます

	@Configuration(proxyBeanMethods = false)
	@ConditionalOnMissingBean(DataSource.class)
	@ConditionalOnProperty(name = "spring.datasource.type")
	static class Generic {
    
    

		@Bean
		DataSource dataSource(DataSourceProperties properties) {
    
    
		//使用DataSourceBuilder创建数据源,利用反射创建响应type的数据源,并且绑定相关属性
			return properties.initializeDataSourceBuilder().build();
		}

	}

4.一般的に使用される主流のオープンソースデータベース接続プール

一般的に使用される主流のオープンソースデータベース接続プールには、C3P0、DBCP、Tomcat Jdbcプール、BoneCP、Druidなどがあります。

C3p0:データソースとJNDIバインディングを実現するオープンソースのJDBC接続プールは、JDBC3仕様とJDBC2の標準拡張をサポートします。現在それを使用しているオープンソースプロジェクトには、Hibernate、Springなどが含まれます。シングルスレッド、パフォーマンスの低下、小規模システムに適しており、コードは約600KBです。

DBCP(データベース接続プール):Apacheによって開発されたJavaデータベース接続プールプロジェクト、Jakartacommons-プールオブジェクトプールメカニズム。Tomcatで使用される接続プールコンポーネントはDBCPです。dbcpを単独で使用するには、common-dbcp.jar、common-pool.jar、common-collections.jarの3つのパッケージが必要です。データベース接続は事前にメモリに配置されます。アプリケーションがデータベース接続を確立する必要がある場合は、直接適用できます。接続プール内の1つについては、使い切ったら元に戻します。シングルスレッド、同時実行性が低く、パフォーマンスが低く、小規模なシステムに適しています。

Tomcat Jdbcプール:Tomcatは7.0より前の接続プールコンポーネントとしてcommon-dbcpを使用していましたが、dbcpはシングルスレッドです。スレッドセーフを確保するために、接続プール全体がロックされています。パフォーマンスが低下します。dbcpには60を超えるクラスがあり、比較的複雑です。Tomcatは、7.0以降、Tomcat jdbcプールと呼ばれる新しい接続プールモジュールを導入しました。これは、Tomcat JULIに基づいており、Tomcatログフレームワークを使用し、dbcpと完全に互換性があり、非同期で接続を取得し、高度な同時アプリケーション環境をサポートします。 8つの超シンプルなコアファイル。JMXはXA接続をサポートしています。

BoneCP:公式ステートメントBoneCPは、効率的で無料のオープンソースのJavaデータベース接続プール実装ライブラリです。設計の本来の目的は、データベース接続プールのパフォーマンスを向上させることです。一部のテストデータによると、BoneCPは最速であり、当時2番目に高速な接続プールよりも約25倍高速であり、一部の永続化製品に完全に統合されています。 HibernateやDataNucleusなど。BoneCP機能:高度にスケーラブルで高速、接続状態切り替えのコールバックメカニズム、接続への直接アクセスを可能にする、自動リセット機能、JMXサポート、遅延読み込み機能、XMLおよびプロパティファイル構成のサポート、より優れたJavaコード編成、100%単体テストブランチコードカバレッジ。コードは約40KBです。

Druid:Druidは、Java言語で最高のデータベース接続プールです。Druidは、強力な監視および拡張機能を提供できます。これは、ビッグデータのリアルタイムクエリや分析、特に発生した場合コードの展開、マシンの障害、およびその他の製品システムでダウンタイムが発生した場合でも、Druidは100%通常の動作を維持できます。主な機能:分析と監視用に設計されています;高速インタラクティブクエリ;高可用性;拡張可能; Druidはオープンソースプロジェクトであり、ソースコードはgithubでホストされています。

5.SpringbootがSQLの自動実行を開始します

application.propertiesに
schema.sqlを追加して、ファイル名指定します

#spring某个版本之后需要加上这句,否则不会自动执行sql文件
spring.datasource.initialization-mode=always
# schema.sql中一般存放的是建表语句
spring.datasource.schema = classpath:schema.sql
# data.sql中一般存放的是需要插入更新等sql语句
spring.datasource.data =  classpath:data.sql

6.データベースを操作します

JdbcTemplate操作データベースは自動的に構成されます

簡単な使い方

おすすめ

転載: blog.csdn.net/weixin_43888891/article/details/114808769