0
0

SpringBoot で TiDB Cloud Serverless に接続する

Posted at

TL;DR

ローカルの SpringBoot アプリケーションで TiDB を使ってみた。

はじめに

TiDB は、MySQL 互換の NewSQL データベースで、昨今いろんな企業が導入しているらしい。

私が TiDB を知ったのは ServerlessDays Tokyo 2023 のセッションなので 1 年前になるが、今回重い腰を上げて使ってみた。

TiDB の準備

登録

以下にアクセスし、右上の 無料ではじめる から登録できる。

必要事項を入力したら、さっそくクラスターが作られている状態になる。

必要なものをもろもろ作成する

データベースやユーザーなどを作成する。
左のタブから SQL Editor を開き、MySQL のコマンドを使用して作成した。

MySQL コマンドの参考になりそうなものを載せておく。

SpringBoot の設定

MySQL に接続できる設定であれば良い。
開発段階では、MySQL の Docker イメージを使っている。
ローカルで TiDB を起動する方法もあるらしいが、面倒くさいのでやっていない。
ローカル起動を試したい方は以下を参考に。
https://zenn.dev/koiping/articles/01f62e77d047e6

依存関係

Gradle の例なので、Maven の場合は読み替えてほしい。
また、Flyway を使用しているため、Flyway の依存関係も載せている。

dependencies {
   implementation("org.springframework.boot:spring-boot-starter-jdbc")
   runtimeOnly("com.mysql:mysql-connector-j")
   runtimeOnly("org.flywaydb:flyway-core:10.18.0")
   runtimeOnly("org.flywaydb:flyway-mysql:10.18.0")
}

プロパティ

spring:
 datasource:
   url: jdbc:mysql://[HOST]:[PORT]/[DATABASE]
   username: [USERNAME]
   password: [PASSWORD]
   driver-class-name: com.mysql.cj.jdbc.Driver
   type: com.zaxxer.hikari.HikariDataSource
   hikari:
     minimum-idle: 2
     maximum-pool-size: 5

ローカルで MySQL に接続したアプリケーションが開発できれば準備完了。

SpringBoot から TiDB に接続

TiDB の画面で、クラスターの Overview ページが開いている状態にする。
右上の Connect を押すと、以下のように接続情報が表示される。

スクリーンショット (11).png

HOST, PORT は先ほどのプロパティにそのまま入れる。
USERNAME, PASSWORD, DATABASE は、ここで作成したものをプロパティに入れる。

プロパティを直接書き直すのではなく、環境変数で設定したっていい。
https://github.com/spring-projects/spring-boot/wiki/Relaxed-Binding-2.0

結論、プロパティをローカルの MySQL から TiDB のものに書き換えるだけで良い。

まとめ

本当に MySQL 互換だった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0