Continuation de la dernière fois. https://qiita.com/YJ2222/items/8c29fc7fc2d886a9b35e
-Créer les fichiers requis. Créez en vous référant à l'image ci-dessous et "Explication de chaque fichier".
templates/userResult.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"></meta>
<title>User</title>
</head>
<body>
<h1>UserResult</h1>
<table>
<tr>
<!-- th:text peut getAttribute en utilisant la fonction de thymeleaf.-->>
<td>ID:</td><td th:text="${id}"></td>
</tr>
<tr>
<td>surnom:</td><td th:text="${nickname}"></td>
</tr>
</table>
<body>
</html>
controller/UserController.java
package com.ex1.Controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.ex1.model.User;
import com.ex1.model.UserFindLogic;
@Controller
public class UserController {
@Autowired //Injection de dépendance.
private UserFindLogic userFindLogic;
@GetMapping("/")
public String getUser() {
return "user";
}
// user.Traitement des messages depuis html.@Obtenez la valeur de nom avec RequestParam.
@PostMapping("/user/db")
public String postDbRequest(@RequestParam("text") String str, Model model) {
int id = Integer.parseInt(str); //Conversion de chaînes de caractères.
//Sans nouveau UserFindLogic@Puisque la dépendance est injectée par Autowired, UserFindLogic peut être exécuté en tant que type User.
User user = userFindLogic.findUser(id); // UserFindLogic.Exécutez la méthode findUser de java.
// UserFindLogic.Après avoir reçu la valeur de retour de java, exécutez ce qui suit.
model.addAttribute("id", user.getUserId()); //Informations utilisateur SetAttribute.
model.addAttribute("nickname", user.getNickName());
return "userResult"; // userResult.Transférer vers html.
}
}
model/UserFindLogic.java
package com.ex1.model;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ex1.dao.UserDAO;
@Service //Annotation donnée à la logique métier.
public class UserFindLogic {
@Autowired
private UserDAO userDAO;
public User findUser(int id) { //Exécutez la méthode selon les instructions du contrôleur.
Map<String, Object> map = userDAO.findUser(id); //Exécutez findUser de UserDAO.
//Recevez une variable utilisateur de DAO.
int userId = (Integer) map.get("user_id"); //Décomposer la variable reçue avec map.Obtenez des informations avec get.
String nickName = (String) map.get("nickname");
User user = new User(); //Créer une instance utilisateur (utilisateur.java)
user.setUserId(userId); //Exécutez le setter.
user.setNickName(nickName);
return user; //Renvoie l'instance utilisateur en tant que valeur de retour au contrôleur.
}
}
model/User.java
package com.ex1.model;
public class User {
private int userId;
private String nickName;
public void setUserId(int userId) {
this.userId = userId;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public int getUserId() {
return userId;
}
public String getNickName() {
return nickName;
}
}
dao/UserDAO.java
package com.ex1.dao;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
@Repository //Une annotation donnée à la classe DAO.
public class UserDAO {
@Autowired
private JdbcTemplate jdbcTemplate; //Une instance qui peut être connectée à DB.
public Map<String, Object> findUser(int id) { // UserFindLogic.Exécutez la méthode selon les instructions de java.
//Générer une instruction SELECT
String query = "SELECT "
+ " * "
+ "FROM account "
+ "WHERE user_id=?";
//Exécutez SQL pour DB par la fonction de jdbcTemplate.
Map<String, Object> user = jdbcTemplate.queryForMap(query, id);
return user; //UserFindLogic pour le résultat de traitement ci-dessus.Revenir à java comme valeur de retour.
}
}
templates/userResult.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8"></meta>
<title>User</title>
</head>
<body>
<h1>UserResult</h1>
<table>
<tr>
<td>ID:</td><td th:text="${id}"></td>
</tr>
<tr>
<td>surnom:</td><td th:text="${nickname}"></td>
</tr>
</table>
<body>
</html>
src/main/resources/application.properties
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driver-class-name=org.h2.Driver
spring.datasouce.username=sa
spring.datasouce.password=
spring.datasource.sql-script-encoding=UTF-8
spring.h2.console.enabled=true
spring.datasource.initialize=true
spring.datasource.schema=classpath:schema.sql
spring.datasource.data=classpath:data.sql
src/main/resources/data.sql
INSERT INTO account (user_id, nickname, password) VALUES (1, 'user1', 'user1+');
src/main/resources/schema.sql
CREATE TABLE IF NOT EXISTS account (
user_id INT PRIMARY KEY,
nickname VARCHAR(50),
password VARCHAR(50)
);
-Le déroulement du processus est facile à imaginer en se référant à la section commentaire du code et à l'image ci-dessous.
c'est tout. Vous pouvez maintenant même vous connecter à la base de données dans votre environnement local.
Recommended Posts