LoginSignup
36
48

More than 5 years have passed since last update.

Spring Boot + PostgreSQLの設定方法

Last updated at Posted at 2017-05-10

メモ

概要

  • SpringBootでPostgreSQLを使えるようにする
  • 簡単なアプリを作る ※どういう仕組みで動いてるかの詳しい説明は省きます

環境

  • SpringToolSuite 3.8.4 (以下、STS)
  • SpringBoot 1.5.3.RELEASE
  • PostgreSQL v9.3

前提

  • SpringToolSuiteが導入済み
  • PostgreSQLが導入済み(今回はホストOSに導入したものを使用)

手順

  1. DBの設定
  2. プロジェクト作成
  3. プロジェクト設定
  4. モデル・コントローラ・リポジトリ・サービスの作成
  5. 実行

準備

プロジェクトを作る前にあらかじめDBを作っておきます

PostgreSQL
CREATE DATABASE testdb;
 (データベース切り替えを忘れずに)
CREATE TABLE person (
id SERIAL PRIMARY KEY
, name VARCHAR(16)
, age INT);

INSERT INTO person VALUES
 (1,'taro',19)
 , (2,'tadokoro',24)
 , (3,'hanako',14);

導入

新しいプロジェクトの作成

Spring Initializr を使ってプロジェクトを作成
1.png

Generate Projectボタンを押すとプロジェクトフォルダがダウンロードされる。
その後、解凍して好きな場所に置いておく

プロジェクトのインポート

STSのタブの File -> Open Projects From FileSystems..から[Directory]ボタンを選択し、先ほど解凍したプロジェクトフォルダを選択する
Import as がMavenになっていることを確認し、[Finish]を選択

※Import asがEclipseの場合はもう一度解凍し直すか、解凍方法を変えてプロジェクトを選択

環境設定

pom.xmlの書き換え

Spring IO platformにアクセス
springioplatform.png
QuickStartにある設定の記述をコピーして自分のpom.xmlに追加

/bootpostgres/pom.xml
~~~
</properties>

<!-- ここから -->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.spring.platform</groupId>
            <artifactId>platform-bom</artifactId>
            <version>Brussels-SR2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<!-- ここまで -->

<dependencies>
  <!-- ついでに下記も追加 -->
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
  </dependency>
  <!-- 追加ここまで -->
~~~

PostgreSQLへの接続情報を追記する

/src/main/resources/application.properties
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/testdb
spring.datasource.username=postgres
spring.datasource.password=hogehoge

環境設定は以上で終わり

モデルの作成

src/main/java/com.takahashi.Person.java/
@Entity
@Table(name = "person")
public class Person {

  @Id
  @GeneratedValue(strategy=GenerationType.IDENTITY)
  private int id;

  @Column(name="name")
  private String name;

  @Column(name="age")
  private int age;

  public Integer getId() {
    return id;
  }
  public void setId(Integer id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
}

リポジトリの作成

/src/main/resources/com.takahashi.PersonRepository.java
@Repository
public interface PersonRepository extends JpaRepository<Person,Integer>{

}

サービスの作成

/src/main/resources/com.takahashi.PersonService.java
@Service
@Transactional
public class PersonService {

  @Autowired
  PersonRepository repository;

  public List<Person> findAll(){
    return repository.findAll(new Sort(Sort.Direction.ASC,"id"));
  } 
}

コントローラーの作成

/src/main/resources/com.takahashi.PersonController.java
@RestController
@RequestMapping("/person")
public class PersonController {

  @Autowired
  PersonService service;

  @RequestMapping(value="/",method=RequestMethod.GET)
  public List<Person> index(){
    return service.findAll();
  }

}

実行する

プロジェクトを選択して右クリック
Run as -> Spring Boot App
zikkoukekka.png

上記のように表示されていればOK

参考サイト

https://www.slideshare.net/shintanimoto/spring-boot10
http://dev.classmethod.jp/server-side/java/using_spring_boot_2/

サンプルプロジェクト

36
48
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
36
48