この記事では、主に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操作データベースは自動的に構成されます
簡単な使い方