今回は、Spring Bootアプリケーションで接続するデータベースをSQL Serverに変更してみたので、そのサンプルプログラムを共有する。
前提条件
下記記事に記載されている、Windows端末上へのSQL Serverインストールが完了していること。
SQL Serverのデータ分析を行う環境構築を行った(1)今回は、SQL Serverのデータ分析を行う環境構築として、SQL Server・SQL Server Management Stud...
また、下記記事に従ってUSER01ユーザーを作成済であること。
SQLServer認証のユーザーを作成してみた今回は、SQL ServerのSSMS(SQL Server Management Studio)を利用して、SQL Server認証の...
さらに、USER01ユーザーでログインした際に、masterデータベースに、以下のテーブルデータを作成済であること。
また、下記記事の「SQL ServerのTCP/IPポート開放」が完了していること。
JavaでSQL Serverにデータロードするプログラムを作成した(環境構築編)今回も引き続き、Javaで作成したSQL Serverにデータロードするプログラムについて記載する。ここでは、JavaでSQL Serv...
さらに、下記記事の実装が完了していること。
MyBatisのSQL文をXMLファイルに配置してみたMyBatisを利用するプログラムで、これまではMapperクラスに直接SQL文を記載していたが、今回はXMLファイルにSQL文を移動し...
サンプルプログラムの作成
作成したサンプルプログラムの構成は以下の通り。
なお、上記の赤枠は、前提条件のプログラムから追加/変更したプログラムである。
build.gradleの内容は以下の通りで、SQL Serverに接続するための設定を追加している。
plugins { id 'org.springframework.boot' version '2.1.7.RELEASE' id 'java' } apply plugin: 'io.spring.dependency-management' group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' compileOnly 'org.projectlombok:lombok:1.18.10' annotationProcessor 'org.projectlombok:lombok:1.18.10' //SQL Serverに接続するための設定 compile group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '8.4.1.jre11' implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.1' }
application.propertiesの内容は以下の通りで、SQL Serverに接続するための設定に変更している。
server.port = 8084 # DB接続情報 spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=master spring.datasource.username=USER01 spring.datasource.password=USER01 spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver # SQLSQLログ出力 logging.level.org.springframework=warn logging.level.com.example.demo.UserDataMapper=debug
また、UserDataMapper.xmlの内容は以下の通りで、findMaxIdのSELECT文をSQL Server用に変更している。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.UserDataMapper"> <select id="findAll" resultType="com.example.demo.UserData"> SELECT u.id, u.name, u.birth_year as birthY, u.birth_month as birthM , u.birth_day as birthD, u.sex as sex, m.sex_value as sex_value FROM USER_DATA u, M_SEX m WHERE u.sex = m.sex_cd ORDER BY u.id </select> <select id="findById" resultType="com.example.demo.UserData"> SELECT id, name, birth_year as birthY , birth_month as birthM , birth_day as birthD, sex FROM USER_DATA WHERE id = #{id} </select> <delete id="deleteById" parameterType="java.lang.Long"> DELETE FROM USER_DATA WHERE id = #{id} </delete> <insert id="create" parameterType="com.example.demo.UserData"> INSERT INTO USER_DATA ( id, name, birth_year, birth_month, birth_day, sex ) VALUES (#{id}, #{name}, #{birthY}, #{birthM}, #{birthD}, #{sex}) </insert> <update id="update" parameterType="com.example.demo.UserData"> UPDATE USER_DATA SET name = #{name}, birth_year = #{birthY} , birth_month = #{birthM}, birth_day = #{birthD}, sex = #{sex} WHERE id = #{id} </update> <select id="findMaxId" resultType="long"> SELECT IsNull(MAX(id), 0) FROM USER_DATA </select> </mapper>
その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-sqlserver-mybatis/demo
サンプルプログラムの実行結果
Spring Bootアプリケーションを起動し、「http://(サーバー名):(ポート番号)/」とアクセスすると、以下の画面が表示される。
その他、下記記事と同じように、データの追加・更新・削除を行うことができる。
Spring BootのWEB画面上でCRUDを含むOracleアクセス処理を実装してみた(完成イメージ編)今回は、C(Create)・R(Read)・U(Update)・D(Delete)を一通り含むOracle接続処理をSpring Boo...
要点まとめ
- Spring BootでSQL Serverに接続するには、TCP/IPポートを解放しJavaプログラムからSQL Serverへのアクセスができるようにした上で、build.gradleにSQL Serverコネクタを追加し、DB接続先設定をSQL Server用に変更すればよい。