[Spring Boot] JdbcTemplate データ接続テンプレート - JdbcTemplate の概要

JdbcTemplate の使用を開始する

このセクションでは、JDBC とは何か、JdbcTemplate とは何かという基本的な部分から始まり、Spring Boot プロジェクトが JdbcTemplate を使用してデータベースを操作する方法を紹介します。

1. JdbcTemplate の概要

1.1 JDBCとは

JDBC (Java Database Connectivity、Java Database Connection) は、アプリケーションがデータベースにアクセスする方法を標準化するために使用される Java 言語の API で、データベース内のデータのクエリや更新の方法など、複数のリレーショナル データベースに統一されたアクセス方法を提供します。JDBC は、より高度なツールやインターフェイスを構築できるベースラインを提供し、データベース開発者がデータベース アプリケーションを作成できるようにします。

1.2 JdbcTemplateとは

JavaがデータベースにアクセスするためのAPI仕様として、JDBCはさまざまなデータベースへのアクセス方法を統一していますが、Javaプログラム内でJDBCを直接使用するのは依然として非常に複雑で煩雑であるため、SpringではJDBCをより深いレベルでカプセル化し、JdbcTemplateがSpringから提供されています。 . データベースを操作するための便利なツール。主にデータベース接続の管理を実装しており、JdbcTemplate を使用してクエリ、挿入、更新、削除などのすべてのデータベース操作を実行でき、JDBC を直接使用することによって発生する面倒なコーディングを効果的に回避できます。

Spring のマスターとして、Spring Boot は自然に JdbcTemplate を統合します。Spring Boot は、JDBC の使用に対応するスターター spring-boot-starter-jdbc を提供します。これは、実際には Spring JDBC をさらにカプセル化し、Spring Boot プロジェクトでの JDBC の使用を促進します。

1.3 JdbcTemplateの特徴

高速です。ORM フレームワークと比較すると、JDBC メソッドが最も高速です。

構成はシンプルで、Spring はデータベース接続を除いて追加の構成をほとんどカプセル化しません。

使い方は簡単で、DBUtils ツール クラスに似ており、JdbcTemplate オブジェクトを挿入するだけです。

1.4 JdbcTemplateのメソッド数種類

JdbcTemplate はシンプルですが非常に強力で、非常に豊富で実用的なメソッドを提供します。まとめると、主に次の種類のメソッドがあります。

1)execute() メソッド: 任意の SQL ステートメントを実行するために使用できます。通常は DDL ステートメントを実行するために使用されます。

2) update()、batchUpdate() メソッド: 追加、変更、削除などのステートメントを実行するために使用されます。

3) query() メソッドと queryForXXX() メソッド: クエリ関連のステートメントを実行するために使用されます。

4) call() メソッド: データベース ストアド プロシージャおよび関数に関連するステートメントを実行するために使用されます。

一般に、追加、削除、変更の 3 種類の操作は、主に update() メソッドとbatchUpdate() メソッドを使用して完了します。query() メソッドと queryForObject() メソッドは主にクエリ関数を完了するために使用されます。execute() メソッドを使用すると、データベース テーブルを作成、変更、削除できます。call() メソッドは、ストアド プロシージャを呼び出すために使用されます。

ほとんどの場合、MyBatis、Hibernate、Spring Data JPA など、より強力な永続化フレームワークを使用してデータベースにアクセスします。JdbcTemplate のような基本的なデータベース フレームワークを紹介する理由は、読者が基礎から学習を始められることを願っているだけであり、これらの基本的なフレームワークをマスターすることによってのみ、他の複雑なフレームワークをよりよく学ぶことができます。

2.Spring Boot は JdbcTemplate を統合します

JDBC と Spring Boot を統合するのは非常に簡単で、依存関係を導入し、基本的な構成を実行するだけです。次に、具体的な例を使用して、Spring の JdbcTemplate を使用してデータベース操作を実行する方法を学習します。

ステップ 01依存関係構成を追加します。

JDBC およびその他の関連依存関係を pom.xml 構成ファイルに追加します。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

上記の例では、spring-boot-starterjdbc 依存関係が pom.xml ファイルに導入されています。同時に、プロジェクトではデータベースとして MySQL を使用するため、MySQL ドライバー パッケージをプロジェクトに導入する必要があります。spring-boot-starter-jdbc は、HikariCP と spring-jdbc に直接依存します。

  • HikariCP は、Spring Boot 2.0 によってデフォルトで使用されるデータベース接続プールであり、伝説的な最速のデータベース接続プールでもあります。
  • spring-jdbc は、Spring フレームワークによる JDBC の単純なカプセル化であり、JDBC 操作を簡素化する開発ツールキットを提供します。

ステップ 02データベースとテーブル構造を作成します。

まず jdbctest テスト データベースを作成し、次に id、名前、性別、年齢などのフィールドを含む Student テーブルを作成します。対応する SQL スクリプトは次のとおりです。

DROP TABLE IF EXISTS 'student';
CREATE TABLE 'student' (
			'id' bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
			'name' varchar(32) DEFAULT NULL COMMENT '姓名',
			'sex' int DEFAULT NULL,
			'age' int DEFAULT NULL,
			PRIMARY KEY ('id')
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;;

ステップ 03データソースを構成します。

application.properties で MySQL データベース接続関連のコンテンツを構成します。具体的な構成は次のとおりです。

spring.datasource.url=jdbc:mysql://Localhost:3306/jdbctest?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

上記の例では、データベース接続構成はデータベース接続アドレス、ユーザー名、パスワード、データ ドライバーなど非常に単純であり、その他の追加構成は必要ありません。Spring Boot 2.0 では、com.mysql.jdbc.Driver の有効期限が切れているため、com.mysql.cj.jdbc.Driver を使用することをお勧めします。

ステップ 04 JdbcTemplate を使用します。

JdbcTemplate は Spring Boot プロジェクトに統合されており、データは上記で作成されています。次に、単体テスト クラス JdbcTests を作成して、JdbcTemplate がデータベースを操作することを確認します。サンプルコードは次のとおりです。

@RunWith(SpringRunner.class)
    @SpringBootTest
    class JdbcTests {
    
    
    @Autowired
    JdbcTemplate jdbcTemplate;
    @Test
    void querytest() throws SOLException {
    
    
        List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from student");
        System.out.println(list.size());
        Assert.assertNotNull(list);
        Assert.assertEquals(1,list.size());
    }
}

上記は単純にJdbcTemplateを使ったテスト例ですが、SpringのJdbcTemplateが自動設定されます。@Autowired を使用して JdbcTemplate を必要な Bean に挿入し、直接呼び出します。

操作は成功しました。JdbcTemplate はデータベースに接続し、データ クエリ操作を正常に実行しました。上記は JdbcTemplate を Spring Boot プロジェクトに統合します。

おすすめ

転載: blog.csdn.net/weixin_45627039/article/details/132354902