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