Spring Bootを使用してTiDBに接続する
春は MySQL 互換データベースであり、 Java用の人気のあるオープンソース コンテナ フレームワークです。このドキュメントでは Spring の使用方法としてスプリングブーツを使用します。
このチュートリアルでは、TiDBをSpring Data JPAおよびJPAプロバイダとしてのハイバネイトと組み合わせて使用し、以下のタスクを実行する方法を学びます。
- 環境をセットアップしてください。
- HibernateとSpring Data JPAを使用してTiDBに接続します。
- アプリケーションをビルドして実行します。オプションで、基本的な CRUD 操作用のサンプルコードスニペットを見つけることができます。
注記:
このチュートリアルは、 TiDB Cloud Starter、 TiDB Cloud Essential、 TiDB Cloud Dedicated、およびTiDB Self-Managedに対応しています。
前提条件
このチュートリアルを完了するには、以下が必要です。
- Java Development Kit (JDK) 17以降が必要です。業務要件や個人のニーズに応じて、 OpenJDKまたはOracle JDKを選択できます。
- メイブン3.8以上。
- Git 。
- TiDBクラスタ。
TiDBクラスタをお持ちでない場合は、以下の手順で作成できます。
TiDBに接続するには、サンプルアプリを実行してください。
このセクションでは、サンプルアプリケーションコードを実行してTiDBに接続する方法を説明します。
ステップ1:サンプルアプリのリポジトリをクローンする
サンプルコードリポジトリをクローンするには、ターミナルウィンドウで以下のコマンドを実行してください。
git clone https://github.com/tidb-samples/tidb-java-springboot-jpa-quickstart.git
cd tidb-java-springboot-jpa-quickstart
ステップ2:接続情報を設定する
選択したTiDBのデプロイオプションに応じて、TiDBに接続してください。
私のTiDBページに移動し、対象のTiDB Cloud StarterまたはEssentialインスタンスの名前をクリックして、概要ページに移動します。
右上隅の「接続」をクリックしてください。接続ダイアログが表示されます。
接続ダイアログの設定がご使用のオペレーティング環境と一致していることを確認してください。
接続タイプは
Publicに設定されています。ブランチは
mainに設定されています。Connect With は
Generalに設定されています。お使いの環境に合ったオペレーティングシステムを選択してください。
ヒント:
プログラムがWindows Subsystem for Linux(WSL)上で実行されている場合は、対応するLinuxディストリビューションに切り替えてください。
「パスワードを生成」をクリックすると、ランダムなパスワードが生成されます。
ヒント:
以前にパスワードを作成したことがある場合は、元のパスワードを使用するか、 「パスワードをリセット」をクリックして新しいパスワードを生成できます。
env.sh.exampleをコピーしてenv.shに名前を変更するには、次のコマンドを実行します。cp env.sh.example env.sh対応する接続文字列
env.shファイルにコピー&ペーストしてください。例は以下のとおりです。export TIDB_HOST='{host}' # e.g. gateway01.ap-northeast-1.prod.aws.tidbcloud.com export TIDB_PORT='4000' export TIDB_USER='{user}' # e.g. xxxxxx.root export TIDB_PASSWORD='{password}' export TIDB_DB_NAME='test' export USE_SSL='true'必ずプレースホルダー
{}を、接続ダイアログから取得した接続パラメータに置き換えてください。TiDB Cloud Starter は安全な接続を必要とします。そのため、
USE_SSLの値をtrueに設定する必要があります。env.shファイルを保存します。
私のTiDBページに移動し、対象のTiDB Cloud Dedicatedクラスタの名前をクリックして概要ページに移動します。
右上隅の「接続」をクリックしてください。接続ダイアログが表示されます。
接続ダイアログで、「接続タイプ」ドロップダウンリストから「パブリック」を選択し、 「CA証明書」をクリックしてCA証明書をダウンロードします。
IP アクセス リストを設定していない場合は、最初の接続の前に、 [IP アクセス リストの設定] をクリックするか、「IP アクセス リストを設定する」の手順に従ってIPアクセスリストを設定する。
TiDB Cloud Dedicated は、パブリック接続タイプに加えて、プライベート エンドポイントおよびVPC ピアリング接続タイプもサポートしています。詳細については、 TiDB Cloud Dedicatedクラスタに接続します参照してください。
env.sh.exampleをコピーしてenv.shに名前を変更するには、次のコマンドを実行します。cp env.sh.example env.sh対応する接続文字列
env.shファイルにコピー&ペーストしてください。例は以下のとおりです。export TIDB_HOST='{host}' # e.g. tidb.xxxx.clusters.tidb-cloud.com export TIDB_PORT='4000' export TIDB_USER='{user}' # e.g. root export TIDB_PASSWORD='{password}' export TIDB_DB_NAME='test' export USE_SSL='false'必ずプレースホルダー
{}を、接続ダイアログから取得した接続パラメータに置き換えてください。env.shファイルを保存します。
env.sh.exampleをコピーしてenv.shに名前を変更するには、次のコマンドを実行します。cp env.sh.example env.sh対応する接続文字列
env.shファイルにコピー&ペーストしてください。例は以下のとおりです。export TIDB_HOST='{host}' export TIDB_PORT='4000' export TIDB_USER='root' export TIDB_PASSWORD='{password}' export TIDB_DB_NAME='test' export USE_SSL='false'プレースホルダー
{}を接続パラメータに置き換え、USE_SSLfalseに設定してください。TiDB をローカルで実行している場合、デフォルトのホスト アドレスは127.0.0.1で、パスワードは空です。env.shファイルを保存します。
ステップ3:コードを実行して結果を確認する
サンプルコードを実行するには、以下のコマンドを実行してください。
make別のターミナルセッションでリクエストスクリプトを実行してください。
make request期待される出力.txtをチェックして、出力が一致するかどうかを確認してください。
サンプルコードスニペット
以下のサンプルコードスニペットを参考に、独自のアプリケーション開発を完成させてください。
完全なサンプルコードと実行方法については、 tidb-samples/tidb-java-springboot-jpa-quickstartリポジトリを参照してください。
TiDBに接続する
設定ファイルapplication.ymlを編集します。
spring:
datasource:
url: ${TIDB_JDBC_URL:jdbc:mysql://localhost:4000/test}
username: ${TIDB_USER:root}
password: ${TIDB_PASSWORD:}
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
show-sql: true
database-platform: org.hibernate.dialect.TiDBDialect
hibernate:
ddl-auto: create-drop
設定後、環境変数TIDB_JDBC_URL 、 TIDB_USER 、およびTIDB_PASSWORDを、ご使用の TiDB の実際の値に設定してください。設定ファイルには、これらの環境変数のデフォルト設定が記載されています。環境変数を設定しない場合、デフォルト値は次のようになります。
TIDB_JDBC_URL:"jdbc:mysql://localhost:4000/test"TIDB_USER:"root"TIDB_PASSWORD:""
データ管理: @Repository
Spring Data JPA は@Repositoryインターフェースを介してデータを管理します。 JpaRepositoryが提供する CRUD 操作を使用するには、 JpaRepositoryインターフェースを拡張する必要があります。
@Repository
public interface PlayerRepository extends JpaRepository<PlayerBean, Long> {
}
次に、 @Autowiredを必要とするクラスにPlayerRepository使用して自動依存性注入を行うことができます。これにより、CRUD関数を直接使用できるようになります。以下に例を示します。
@Autowired
private PlayerRepository playerRepository;
データを挿入または更新する
playerRepository.save(player);
詳細については、データを挿入するデータの更新を参照してください。
クエリデータ
PlayerBean player = playerRepository.findById(id).orElse(null);
詳細については、 クエリデータを参照してください。
データを削除する
playerRepository.deleteById(id);
詳細については、データを削除するを参照してください。
次のステップ
このドキュメントで使用されているサードパーティライブラリおよびフレームワークの詳細については、それぞれの公式ドキュメントを参照してください。
開発者ガイドデータを挿入するデータの更新、データを削除する、「SQL パフォーマンス最適化」などの章単一表の読み取り読んで、TiDB アプリケーション 取引SQLパフォーマンス最適化。
プロフェッショナルなTiDB開発者向けコースコースを通じて学習し、試験に合格するとTiDB認定資格を取得します。
Java開発者向けのコース「 JavaからTiDBを操作するを通じて学習します。
お困りですか?
- 不和or スラックコミュニティに質問してください。
- TiDB Cloudのサポートチケットを送信してください
- TiDB Self-Managedのサポートチケットを送信してください