[JAVA] Créez une application avec Spring Boot 2

Continuation de la dernière fois. https://qiita.com/YJ2222/items/8c29fc7fc2d886a9b35e

Création de fichier

-Créer les fichiers requis. Créez en vous référant à l'image ci-dessous et "Explication de chaque fichier".  1.png

-Description de chaque fichier.

Écrivez le code dans le fichier créé.

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. 3.png

c'est tout. Vous pouvez maintenant même vous connecter à la base de données dans votre environnement local.

Recommended Posts

Créez une application avec Spring Boot 2
Créez une application avec Spring Boot
Créer un micro service avec Spring Boot
Créez une application de recherche simple avec Spring Boot
Créer Restapi avec Spring Boot (jusqu'à l'exécution de l'application)
Télécharger avec Spring Boot
Créez un site Web avec Spring Boot + Gradle (jdk1.8.x)
Créez une application CRUD avec Spring Boot 2 + Thymeleaf + MyBatis
Créez votre propre utilitaire avec Thymeleaf avec Spring Boot
Créer un environnement Spring Boot avec Windows + VS Code
Créer un serveur API Web avec Spring Boot
Créer un environnement de développement Spring Boot avec docker
Créez un serveur Spring Cloud Config en toute sécurité avec Spring Boot 2.0
Créez un projet de développement d'application Spring Boot avec la commande cURL + tar
Générer un code à barres avec Spring Boot
Hello World avec Spring Boot
Démarrez avec Spring Boot
Bonjour tout le monde avec Spring Boot!
Exécutez LIFF avec Spring Boot
Connexion SNS avec Spring Boot
Téléchargement de fichiers avec Spring Boot
Spring Boot commençant par copie
Spring Boot à partir de Docker
Hello World avec Spring Boot
Définir des cookies avec Spring Boot
Utiliser Spring JDBC avec Spring Boot
Ajouter un module avec Spring Boot
Premiers pas avec Spring Boot
[Spring Boot] Envoyer un e-mail
Envoyer du courrier avec Spring Boot
Créez un site de démonstration simple avec Spring Security avec Spring Boot 2.1
Hello World (application console) avec Apache Camel + Spring Boot 2
Créer une classe immuable avec JAVA
Utiliser l'authentification de base avec Spring Boot
gRPC sur Spring Boot avec grpc-spring-boot-starter
Déploiement à chaud avec le développement Spring Boot
Liaison de base de données avec doma2 (Spring boot)
Programmation Spring Boot avec VS Code
Jusqu'à "Hello World" avec Spring Boot
Créer une application d'enquête avec Spring Boot
Obtenez des résultats de validation avec Spring Boot
Créez une application Web Hello World avec Spring Framework + Jetty
Créer un fichier Excel avec POI
(Intellij) Hello World avec Spring Boot
Google Cloud Platform avec Spring Boot 2.0.0
Créer une application en ligne de commande avec maven
J'ai essayé GraphQL avec Spring Boot
[Java] Intégration LINE avec Spring Boot
À partir de Spring Boot 0. Utilisez Spring CLI
J'ai essayé Flyway avec Spring Boot
La coopération des messages a commencé avec Spring Boot
Créer un site de catalogue d'applications à l'aide de l'interface de ligne de commande pour Microsoft 365 avec Docker
J'ai essayé d'implémenter un client OAuth avec Spring Boot / Security (connexion LINE)
Comment créer votre propre contrôleur correspondant à / error avec Spring Boot
Image de l'application Spring Boot à l'aide de jib-maven-plugin et lancez-la avec Docker
Traitement lors du démarrage d'une application avec Spring Boot
Création d'un environnement de développement Spring Boot dans Vagrant
Créons vous-même une instance avec .new. .. ..