LoginSignup
8
9

More than 5 years have passed since last update.

Spring MVCでMySQLにJDBC Templateを使って接続してみた

Last updated at Posted at 2017-12-05

はじめに

  • 前回の環境を元に、データベースへの接続の実装をしてみました。

Mavenから依存関係の追加

pom.xmlを開き、内の最終行に追加してください。

MySQL JDBCコネクタの追加

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.45</version>
</dependency>

Spring JDBCの追加

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

クリーンアップとインストール

  1. プロジェクトを右クリックし、「実行 > Maven clean」を実行します。
  2. 同じく、「実行 > Maven install」を実行します。

MySQLのセットアップ

MySQLのインストール

brew install mysql

MySQLの起動

mysql.server start

データベースの作成

CREATE DATABASE sandbox DEFAULT CHARACTER SET utf8;

テーブルの作成

create table users(id int, name varchar(20));

データの投入

適当にInsertしておいてください。

JDBCの接続設定

root-context.xmlを開き、内の最終行に追加してください。

接続設定

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName">
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property name="url">
        <value>jdbc:mysql://127.0.0.1:3306/sandbox</value>
    </property>
    <property name="username">
        <value>root</value>
    </property>
    <property name="password">
        <value></value>
    </property>
</bean>

JDBC Templateの設定

<bean class="org.springframework.jdbc.core.JdbcTemplate">
    <constructor-arg ref="dataSource" />
</bean>

接続確認プログラムの実装

コントローラーの実装

HomeController.java
package com.sandbox.app;

import java.util.List;
import java.util.Locale;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 * Handles requests for the application home page.
 */
@Controller
public class HomeController {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String home(Locale locale, Model model) {

        List<Map<String, Object>> list = jdbcTemplate.queryForList("SELECT * FROM users");

        model.addAttribute("data", list.get(0).get("name") );

        return "home";
    }
}

ビューの実装

home.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
    <head>
        <title>Home</title>
    </head>
    <body>
    <h1>
        Hello world!  
    </h1>
    <p>  DB's data is ${data}. </p>
    </body>
</html>

Tomcatの起動

プロジェクトを右クリックし、「実行 > サーバーで実行」を実行します。以下のようなページが表示されれば成功です。

FireShot Capture 066 - Home - http___localhost_8080_app_.jpg

まとめ

  • JPAとの違いってなんだろう?
  • 実践的にはORMライブラリを使うのだろうか?
8
9
1

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
8
9