0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kotlinでSpring開発 Azure SQL 生成、接続

Last updated at Posted at 2025-03-23

入る前に

1.Azureとは
Qiitaを利用する皆さんは既にご存知だと思いますが
Azureはマイクロソフト(MS)が提供するクラウドサービスで仮想マシンやデータベースを企業や個人が作り、利用できるようにしたサービスです.
データベース面ではSQL、MySQLなどが使えます.
使ったリソースの分だけお金を払えばいいし、一定時間使わないと止まったりするので予算を管理する面でいいと思います.
初回の方は無料クレジットをもらえるので経験してみるのもいいと思います

2.なぜAzure SQL DataBaseを選んだのか

特に理由はないです.昔、何も知らずにAzureのMySQLサーバーを利用した経験があったんですが、作るまでちょっと手間はかかるけど色んな設定を触りながら勉強になると思います.

今までSupabase,MongoDB,SQL DataBaseを使ってみましたが、個人的には
おすすめはSupaBaseです.
勉強として開発してる段階ではサーバーを作る必要はないんですが、
自分でサーバーを作る必要なく、ややこしい設定をする必要もないんで一番使いやすいと感じました.

データベース生成

まずはAzureにログインしたらこのようなホーム画面が見られます
image.png
ここでリソースの作成を押します.

image.png
この画面で左のデータベースを選択したら色んなデータベースが見えます.
SQLデータベースの作成を押します.

まず重要なのは32GB,100,000秒まで無料のサーバーレスデータベースのオファーを受け取ることでApply offerを押します
image.png

image.png
こんな風にコストが0になってるのを確認してから進みます.

その後リソースグループを作ったらデータベースの名前を書いてサーバーを選択します.サーバーが存在しない場合は新規作成します.
image.png

サーバーを作る時は下の認証方法で私はSQL認証を使用、ログインするIDとパスワードを入力します.後でSpringと接続の時にも使われるので覚えときます.
image.png

サーバーの地域を選ぶ際に基本的にEast USになってると思います.地域によって無料オファーが消える場合もあるのでオファーが出てくるのか確認しながら選び直す必要があります.

その後、次へとどんどん進んだら、追加設定でデータベースの照合順序のところに
元々はLatin~~になってますが日本語を扱うなら Japanese_CS_AS_KS_WS を入力しとく方がいいです.
image.png

これで設定は終わりで、データベースを作ったら、ホーム画面でSQLサーバーに入ってネットワーク設定で下のように設定すれば準備完了です.

image.png

image.png

Spring設定

build.gradle.kts

dependenciesに三つのコードを追加します

implementation("com.microsoft.sqlserver:mssql-jdbc:8.4.1.jre8")
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-jdbc")

そして同じくrepositoriesのなかにはこのコードを追加します.

maven { url = uri("https://maven.microsoft.com")}

これが抜けるとdependenciesに追加したJDBC Drvierがちゃんとダウンロードできず、サーバーが稼働できなくなります.

repositories {
    mavenCentral()
    maven { url = uri("https://maven.microsoft.com") }
}

dependencies {
        implementation("org.springframework.boot:spring-boot-starter-web")
        implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
        implementation("org.jetbrains.kotlin:kotlin-reflect")
        testImplementation("org.springframework.boot:spring-boot-starter-test")
        testImplementation("org.jetbrains.kotlin:kotlin-test-junit5")
        testRuntimeOnly("org.junit.platform:junit-platform-launcher")
        implementation("com.microsoft.sqlserver:mssql-jdbc:8.4.1.jre8")
        implementation("org.springframework.boot:spring-boot-starter-data-jpa")
        implementation("org.springframework.boot:spring-boot-starter-jdbc")
}

まとめてこうなります.

application.properties

spring.datasource.url=jdbc:sqlserver://<サーバーの名前>.database.windows.net:1433;database=<データベースの名前>;
spring.datasource.username=<サーバーを作る時のID>
spring.datasource.password=<サーバーを作る時のパスワード>
spring.jpa.hibernate.ddl-auto=update

もし情報を忘れた場合はデータベースのページに入ってここを押してJDBCを確認すれば分かります
image.png

※下の説明はIntellij Ultimateでの接続なんでIDEA版は異なる可能性があります.
image.png
application.propertiesに情報を入れたら左に小さいアイコンが出て、これを押したら
画面が出てきますが、HostやID,パスワードは自動的に入力されてるんで
情報を間違いなく入力してるなら下のTest Connectionをタッチ、問題がなかったら
OK-> これで接続完了です.

image.png

TEST

これでSpringを稼働してみると

image.png

安心のWhitelabelちゃんが出てきてくれます!

環境 バージョン
Windows 10
Spring 3.4.3
Kotlin 1.9.25
Intellij Ultimate (学生)

エピローグ

この記事を書きながら新しくSpringプロジェクトを作ってみたんですが
いつもちゃんとdependenciesでSpring Webをチェックしてたんですが、それを忘れてしまい、データベースには問題がないはずなのにできないなーと思って、
GPTにも聞いてみたり他のプロジェクトのbuild.gradleなどと比較して3時間も無駄にした果て

implementation("org.springframework.boot:spring-boot-starter-web")

最初の設定を忘れたせいで
ここにwebが抜けてたというばかばかしい結果でした...
皆さんもこんなことありましたか?(多分ないですよね)

記事の中で間違ってる部分があれば教えてください.
ありがとうございます.

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?