LoginSignup
17
18

More than 5 years have passed since last update.

Spring JDBCをSpringBootから扱えるようになるまでのメモ

Last updated at Posted at 2015-10-24

目的

シンプルなサンプルプロジェクトを作成してから、Spring JDBCによるデータアクセスができるようになるまで

環境

IDE STS
フレームワーク Spring Boot
DB H2

手順

SpringBootのプロジェクトを作成する
スクリーンショット 2015-10-24 12.58.55.png

pom.xmlに、以下のようにdependencyを追記する

スクリーンショット 2015-10-24 13.00.54.png
・spring-boot-starter-jdbc
SpringJDBCに関するライブラリを追加している

・com.h2database
 ここでDBを設定している。
 今回はh2databaseをDBとして設定している。
 
jdbcSampleApplication

jdbcSampleApplication.java
package com.example;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;

@EnableAutoConfiguration
public class JdbcSampleApplication implements CommandLineRunner{
    @Autowired
    NamedParameterJdbcTemplate jdbcTemplate;

    @Override
    public void run(String... strings) throws Exception {

        String sql = "select :test01 +:test02";//パラメータを表示するだけ
        SqlParameterSource param = new MapSqlParameterSource()
.addValue("test01", 1).addValue("test02",2);//パラメータを設定
        Integer result = jdbcTemplate.queryForObject(sql, param, Integer.class);
        System.out.println("result =" + result);//コンソールに表示する
    }

    public static void main(String[] args) {
        SpringApplication.run(JdbcSampleApplication.class, args);
    }
}

変更点
初期生成されるソースに以下の変更を行う
・CommandLineRunnerを実装
 DIコンテナのイジェクションができるようにする
 
@AutowiredでNamedParameterJdbcTemplateを指定
 DIコンテナがイジェクションするフィールドであることを@Autowiredで指定する
 これで、jdbcTemplateにNamedParameterJdbcTemplateのオブジェクトがインジェクションされてくる
 autoconfigureによって、pom.xmlにJDBCドライバを定義するだけで利用可能になる

・パラメータの設定
 SQLのプレースフォルダは :キー名
MapSqlParameterSourceのオブジェクトにキー名、値、でパラメータを設定する。

・SQLの実行
 jdbcTemplate.queryForObject(sql, param, Integer.class);
 で、SQL、パラメータを設定し、結果を受け取る。
 

jdbcSampleApplicationを選択し、
Run Asから
Java Applicationを選択し実行する。
スクリーンショット 2015-10-24 13.34.24.png

コンソールに実行結果が表示される。
スクリーンショット 2015-10-24 13.32.57.png

17
18
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
17
18