[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][Eclipse] Mavenが利用可能な動的Webプロジェクトの作成

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

記事を読む

no image

[Java] StringBuilderの使い方(Stringを連結するクラス)

今回は、可変長文字列クラスのStringBuilderを紹介します。 固定長文字列クラスのSt

記事を読む

no image

[Java][Framework] Play Framework入門

今回は、Javaの比較的新しいWeb Frameworkである、Play Frameworkを試して

記事を読む

no image

[Java][JSP] EclipseでのJSP作成

今回は、Eclipseを用いてJSPを作成してみます。 まず、Eclipseを起動します。

記事を読む

no image

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

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

記事を読む

no image

[Java] 日付の計算方法(DateFormat、Date、Calendar)

こんにちは、kei0310です。 Javaで日付を計算する方法について解説します。 まず

記事を読む

no image

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

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

記事を読む

no image

[Java] CSVファイルの読み込み方法

こんにちは、kei0310です。 CSVファイルをJavaに取り込む方法を解説します。

記事を読む

no image

[Java][Spring] Spring3でDIしてみる!(アノテーション使用)

Spring3を使って、一番基本的な形のプログラムを作成してみます。 今回は、アノテーションを

記事を読む

no image

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

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

記事を読む

スポンサードリンク

Message

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

スポンサードリンク

no image
CentOSにdockerをインストールしてみた

前置き dockerをcentos7にインストールしてみました

no image
awkでのgsubを使った文字列置換(正規表現)

まえおき bashなどのシェルスクリプトで、lsした結果とかを

no image
bashで並列処理する方法(xargs)

並列処理とは 通常、意識せずにプログラムを書くと、大体の場合は

no image
AWS Redshiftの使用ストレージ容量をクエリで調べる方法

用途 AWS Redshfitのコンソールを見れば、使用中のス

no image
pythonでstorage transfer serviceを使ってみた。

準備 pythonのインストールとかする。 このあたり。

→もっと見る

  • 2023年9月
     123
    45678910
    11121314151617
    18192021222324
    252627282930  
  • 2023年9月
     123
    45678910
    11121314151617
    18192021222324
    252627282930  
PAGE TOP ↑