[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][MySQL] JavaからMySQLを使う方法

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

記事を読む

no image

[Java][Jersey] JerseyでRESTfulなJAX-RS Webサービス作成

こんにちは、keiです。 今回はRESTfulなWeb Serviceの作成を行っていきます。

記事を読む

no image

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

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

記事を読む

no image

[Java][Framework] Spring BootのJPAでDB接続した際のEntityキャッシュのクリア方法

Spring BootのJPAでDBアクセスした際に、処理を一定量こなすと、Heapが足りなくな

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

no image

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

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

記事を読む

スポンサードリンク

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のインストールとかする。 このあたり。

→もっと見る

  • 2022年8月
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
  • 2022年8月
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
PAGE TOP ↑