# 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);