build.gradle
dependencies {
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
compile('org.springframework.boot:spring-boot-starter-web')
providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
compile('mysql:mysql-connector-java')
}
Es ist bequem, eine Sitzung einzupacken, um Anmeldeinformationen zu übertragen
@SessionScope
@Component
public class AccountModel {
private String id;
private String name;
}
@Controller
public class MainController {
@Autowired
private AccountModel accountModel;
/**
* Anmeldevorgang
* @param model
* @param id
* @param post
* @return
*/
@RequestMapping("login")
public String login(Model model,@RequestParam("id") String id,@RequestParam("pass") String pass) {
accountModel.setId(id);
// TODO Passwortprüfung
return "shop";
}
}
<form method="post" th:action="@{login}">
<input type="text" name="id" />
<input type="text" name="pass" />
<button> Anmelden </ button>
</form>
Damit können Sie es jedes Mal überprüfen, wenn Sie sich zum ersten Mal anmelden. Wenn Sie die Sitzungsinformationen zum Zeitpunkt des Kaufs nicht überprüfen und aufbewahren, können Sie zum Registrierungsbildschirm für persönliche Informationen wechseln.
Im Folgenden finden Sie Benennungsregeln für Methoden, die automatisch in SpringDataJPA implementiert werden [Spring Data JPA] Namensregeln für automatisch implementierte Methoden
@Entity
@Table(name="item")
public class Item {
@Id
@GeneratedValue
private int id;
private String name;
private int price;
}
public interface ItemRepos extends JpaRepository<Item, Integer> {
/**
* select * from item where name like %{name}%
* @param name
* @return
*/
public List<Item> findByNameContains(String name);
}
@Controller
public class MainController {
@Autowired
private ItemRepos itemRepos;
/**
* Suchvorgang
* @param model
* @param name
* @return
*/
@RequestMapping("search")
public String search(Model model,@RequestParam("name") String name) {
List<Item> itemList = itemRepos.findByNameContains(name);
model.addAttribute("itemList", itemList);
return "shop";
}
}
<form method="post" th:action="@{search}">
<input type="text" name="name"/>
<button> Suchen </ button>
</form>
JpaRepository # save führt die Aktualisierungsverarbeitung durch, wenn pk dupliziert wird, und fügt die Verarbeitung ein, wenn nicht
/**
* Registrierungsprozess
* @param model
* @param name
* @param price
* @return
*/
@RequestMapping("submit")
public String submit(Model model,@RequestParam("name") String name,@RequestParam("price") String price) {
Item item = new Item();
item.setName(name);
item.setPrice(Integer.valueOf(price));
itemRepos.save(item);
return "shop";
}
Da wir diesmal von einem Training ausgehen, haben wir keine detaillierten Teile implementiert, aber es gibt viele Punkte zu berücksichtigen, wie z. B. die Überprüfung des Eingabewerts und die Trennung der Verarbeitungsschicht.
Recommended Posts