LoginSignup
53
47

More than 5 years have passed since last update.

SpringBootとJPAを使ってDBにInsertするための8つのこと

Last updated at Posted at 2017-12-01

 SpringBootとJPAを使ってDBにInsertするための8つのこと

目次
0. 今回の目的
1. SpringBootのプロジェクト作成
2. MysqlにDBを用意する
3. PropertiesFileの設定
4. Entityクラスの用意
5. Repositoryクラスの用意
6. Serviceクラスの用意
7. Controllerクラスの用意
8. curlを使って確認
9. おわり

 0. 今回の目的

  • SpringBootを始めたばかりの時に、JPAを使ってDBにInsertするだけのことが出来なくて 猫にも分かる記事がなかったのであの時の自分に向けて書く。
  • 特別JPAについての説明などはないです、ただただDBにInsertすることを記事にしただけです。

1. SpringBootのプロジェクト作成

  • 先ずはSpringBootのプロジェクトを作成します
  • SPRING INITIALIZRにアクセスする
  • Generate a [Gradle Project] with [Java] and Spring Boot [1.5.9] に設定する
  • [Group][Artifact]は適当でどうぞ。今回はGroup名は[com.jpa]にArtifact名は[demojpa]にします。
  • [Dependencies]には[Web][MySql][JPA][lombok]を設定します。
  • 以上で[Generate Project]で作成してください。
  • 作成されたプロジェクトを展開してIDEでOPENする。(今回はInteliJ IDEAを使用)

2. MysqlにDBを用意する

  • MySqlにJPAのテスト用のDBを用意する。
  • 今回はこのような構成で用意しました。
  • DB名は[jpa_test]
CREATE TABLE `members` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(255) NULL,
  PRIMARY KEY (`id`));

id name
1 hoge

3. PropertiesFileの設定

  • IDEを開く
    • srcのmain直下の[resources][application.properties]を開く
    • 以下の3行のおまじないを書き、MySqlに繋げるようにしておく。
      • spring.datasource.url=jdbc:mysql://localhost:3306/jpa_test
      • spring.datasource.username= MySqlのusername
      • spring.datasource.password= MySqlのpassword

4. Entityクラスの用意

  • srcのmain直下に[domain]Packageを作成する。
  • [domain]Packageの中に[Members.java]を作成して以下のコードを記述する。
package com.jpa.demojpa.domain;

import lombok.Data;

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

@Data
@Entity
public class Members {
    @Id
    @GeneratedValue
    private Integer id;
    private String name;
}

5. Repositoryクラスの用意

  • [domain]Packageの中に[MembersRepository.java]を作成して以下のコードを記述する。
package com.jpa.demojpa.domain;

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

@Repository
public interface MembersRepository extends JpaRepository<Members, Integer> {
}

6. Serviceクラスの用意

  • srcのmain直下に[service]Packageを作成する。
  • [service]Packageの中に[MembersService.java]を作成して以下のコードを記述する。
package com.jpa.demojpa.service;

import com.jpa.demojpa.domain.Members;
import com.jpa.demojpa.domain.MembersRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

@Service
@RequiredArgsConstructor
public class MembersService {
    private final MembersRepository membersRepository;

    public String create() {
        Members members = new Members();
        members.setName("hoge");
        membersRepository.save(members);
        return "success!!";
    }
}

7. Controllerクラスの用意

  • srcのmain直下に[web]Packageを作成する。
  • [web]Packageの中に[MembersController.java]を作成して以下のコードを記述する。
package com.jpa.demojpa.web;

import com.jpa.demojpa.service.MembersService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/members")
@RequiredArgsConstructor
public class MembersController {
    private final MembersService membersService;

    @PostMapping
    public String create() {
        return membersService.create();
    }
}

8. curlを使って確認

  • ターミナルを開き以下のcurlで確認する。
curl http://localhost:8080/members
  • [success!!]が返ってくるはずです、返ってきたらMySqlを確認してください。

9. おわり

  • 以上でSpringBootとJPAを使ってDBにInsertするための8つのこと終了です。
  • あとは[findOne][save][delete]とかがJpaRepositoryには用意されているので使ってみてください。
membersRepository.findOne(1);
membersRepository.save(members);
membersRepository.delete(1);
53
47
0

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
53
47