[Java][Framework] Spring Bootを使って、Spring MVC速攻開発してみる!(DB接続あり)

公開日: : Framework, Java , , , ,

STSインストール

STSは、EclipseにSpring関連のいろいろな機能を詰め込んだオールインワンパッケージ。
素のEclipseに後付けでSpring関連プラグインを追加することができるようですが、
私はうまくいかなかったので、今回はSTSそのものを使用。

以下URLからダウンロードします。

https://spring.io/tools/sts

Mavenインストール

とりあえず、このあたりからMavenをとってきてインストール。

https://maven.apache.org/download.cgi

Mavenプロジェクト作成

下記コマンドでプロジェクト作成
おまじないです。
「SpringBootProject」がプロジェクト名です。

$ mvn -B archetype:generate -DgroupId=com.example -DartifactId=SpringBootProject -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart

Eclipseへインポート

上部メニューの「ファイル」→「インポート」から、
「Existing Maven Projects」を選択。

右上の「参照」ボタンで先ほど作成した「SpringBootProject」を選択する。

※インポートでエラーが発生し、プロジェクト名のところに赤い×がついている場合、無視でOK。

SpringBootの設定

pom.xmlに以下を追記。
DB接続はpostgresqlで設定しているが、DBに合わせて変更要。
ググるとでてくるとおもう。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.3.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>8.3-603.jdbc4</version>
    </dependency>
</dependencies>

DB接続設定

プロジェクト直下に「application.properties」ファイルを作成。
以下を記述。
postgresql以外で設定する場合、適宜変更要。
ググると情報でてくるはず。

spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.datasource.driverClassName=org.postgresql.Driver

Javaクラス作成

Javaクラスを作成する。コピペでOK。

●com.example.App

package com.example;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import com.example.entity.TestData;
import com.example.repository.TestDataRepository;

@RestController
@EnableAutoConfiguration
public class App {

    @Autowired
    TestDataRepository repository;

    @RequestMapping("/")
    String home(){
        return "Hello World!!";
    }

    @RequestMapping("/getData")
    List<TestData> testData(Model model){

        // DBからデータ取得
        List<TestData> list = repository.findAll();

        return list;
    }

    @RequestMapping("/getDataForHtml")
    ModelAndView testData(ModelAndView mav){

        // DBからデータ取得
        List<TestData> list = repository.findAll();

        // テンプレート名指定
        mav.setViewName("testThymeleaf");
        // 動的項目設定
        mav.addObject("messages", list);

        return mav;
    }

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

●com.example.entity.TestData ※Entityクラス

package com.example.entity;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity(name="item_master")
public class TestData {

    @Id
    private Long id;
    private Long value;
    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getValue() {
        return value;
    }

    public void setValue(Long value) {
        this.value = value;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}

●com.example.repository.TestDataRepository

package com.example.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import com.example.entity.TestData;

@Repository
public interface TestDataRepository extends JpaRepository<TestData, Long>{
}

DB設定

今回は「item_master」というテーブルを作成し、
「id」「value」「name」という3つの項目を作成しています。
このあたりは適宜やってください。

実行

App.javaを右クリックして、「Run As」→「Spring Boot App」を選択。

ブラウザを開いて、以下URLにアクセスし、DBに設定したデータが表示されれば成功です。

http://localhost:8080/getData

http://localhost:8080/getDataForHtml

スポンサードリンク

関連記事

no image

[Java][Servlet][JSP] ServletからJSPへの転送

こんにちは。 今回は、「Servletでリクエストを受けて、JSPで表示する。」方法を解説しま

記事を読む

no image

[Java][MySQL] JavaからMySQLを使う方法

MySQLは、フリーでありながら商用としても使用できるパワーを持つデータベース(RDB)です。

記事を読む

no image

[Java][Eclipse] Mavenが利用可能な動的Webプロジェクトの作成

こんにちは、keiです。 今回は、Mavenが利用可能な動的Webプロジェクトの作成について解

記事を読む

no image

[Java][Servlet] EclipseでのJavaServlet作成

こんにちは、今回はEclipseを使用してJavaServletを作成します。 Eclipse

記事を読む

no image

[Java] クラスとインスタンス

こんにちは。 クラスとインスタンスについて解説します。 インスタンスは「オブジェクト」とも言

記事を読む

no image

[Java][基本] ループ処理(for文)

Javaのループ処理の基本である、for文を解説します。 ●文法 for( [①初期化];

記事を読む

no image

[Java] テキストファイルの読み込み方法

こんにちは、今回はテキストファイルをJavaで読む方法を紹介します。 標準で提供されているクラ

記事を読む

no image

[java] 文字列の一部を切り取る方法(substring)

こんにちは。 今回は文字列の一部を切り取る方法について解説します。 具体的には、String

記事を読む

no image

[Java] 文字列の分割(split)

こんにちは。 今回は、文字列の分割について解説します。 昔はStringTokenize

記事を読む

no image

[Java] Apache POIでExcel操作!

Apache POIをまずは使ってみようという方(自分も含め)のメモ 導入 Maven htt

記事を読む

スポンサードリンク

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサードリンク

no image
[git] Windowsへのインストール(Git for Windows)

概要 Windows環境にGitをインストールします。 インストー

no image
[Fluentd] WindowsにFluentdをインストールする

WindowsにFluentdをインストールしたときのメモ 参考にさ

no image
[Re:dash] BigQuery接続で日本語タイトルを出す(v2.0.0)

BigQueryは現在マルチバイトを含むSQLを発行することができない

no image
[Python] Nullの判定方法(None)

Nullの判定方法(None) 表記方法 Pythonでは、Nul

no image
[Python] 型の検査・判定

Pythonでの型の検査・判定方法 isinstance サン

→もっと見る

  • 2018年10月
    « 6月    
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
  • 2018年10月
    « 6月    
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
PAGE TOP ↑