Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

はじめに

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

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ライブラリを使うのだろうか?
neriai
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away