エンティティとは?
-> relational databaseの表を表す
src/main/resources/templates/test1/index.html
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="utf-8"> <title>check</title> </head> <body > <form method="post" action="#" th:action="@{/test1/testform}" th:object="${test1Form}"> <p><input type="text" id="id" name="id" th:field="*{id}"/></p> <p><input type="text" id="name" name="name" th:field="*{name}"></p> <p><input type="submit" value="送信ボタン"></p> </form> </body> </html>
フォームクラス: Test1Form.java
L controllerのmodel.addAttribute(“test1Form”, new Test1Form());でvalidationをかけている
package com.example.demo; public class Test1Form { private Integer id; private String name; 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; } }
エンティティのクラス: Syain.java (社員)
L formのvalidationと同じく、privateで宣言して、geter, setterを書く
L getter, setterは、データを外部から取得するメソッド、あるいはそのデータを外部から変更するメソッド
package com.example.demo; public class Syain { private Integer id; private String name; 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; } }
MainController.java
package com.example.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @Controller @RequestMapping("/test1") public class MainController { @Autowired private SyainRepository syainRepository; @GetMapping public String disp1( Model model) { model.addAttribute("test1Form", new Test1Form()); return "test1/index"; } @PostMapping("/testform") public String disp2(Test1Form test1Form) { Syain syain = new Syain(); syain.setId(test1Form.getId()); syain.setName(test1Form.getName()); syainRepository.insertSyain(syain); return "redirect:/test1/"; } }
pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
SyainRepository.java
package com.example.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; @Repository public class SyainRepository { private final JdbcTemplate jdbcTemplate; @Autowired public SyainRepository(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public void insertSyain(Syain syain) { jdbcTemplate.update("INSERT INTO syain(id,name) VALUES (?, ?)", syain.getId(), syain.getName()); } }
Description:
Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
なるほど、何となくわかってきた。