Fortsetzung des letzten Males. https://qiita.com/YJ2222/items/8c29fc7fc2d886a9b35e
-Erstellen Sie die erforderlichen Dateien. Erstellen Sie anhand des folgenden Bildes und "Erläuterung jeder Datei".
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 kann mit der Funktion von thymeleaf getAttribute erhalten.-->>
<td>ID:</td><td th:text="${id}"></td>
</tr>
<tr>
<td>Spitzname:</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 //Abhängigkeitsspritze.
private UserFindLogic userFindLogic;
@GetMapping("/")
public String getUser() {
return "user";
}
// user.Bearbeitung von Post aus HTML.@Holen Sie sich den Wert des Namens mit RequestParam.
@PostMapping("/user/db")
public String postDbRequest(@RequestParam("text") String str, Model model) {
int id = Integer.parseInt(str); //Zeichenkettenkonvertierung.
//Ohne neues UserFindLogic@Da die Abhängigkeit von Autowired eingefügt wird, kann UserFindLogic als Benutzertyp ausgeführt werden.
User user = userFindLogic.findUser(id); // UserFindLogic.Führen Sie die findUser-Methode von Java aus.
// UserFindLogic.Führen Sie die folgenden Schritte aus, nachdem Sie den Rückgabewert von Java erhalten haben.
model.addAttribute("id", user.getUserId()); //SetAttribute-Benutzerinformationen.
model.addAttribute("nickname", user.getNickName());
return "userResult"; // userResult.Weiterleiten an 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 //Anmerkung zur Geschäftslogik.
public class UserFindLogic {
@Autowired
private UserDAO userDAO;
public User findUser(int id) { //Führen Sie die Methode gemäß den Anweisungen der Steuerung aus.
Map<String, Object> map = userDAO.findUser(id); //Führen Sie findUser von UserDAO aus.
//Empfangen Sie eine Benutzervariable von DAO.
int userId = (Integer) map.get("user_id"); //Zerlegen Sie die empfangene Variable mit map.Informationen erhalten mit get.
String nickName = (String) map.get("nickname");
User user = new User(); //Benutzerinstanz erstellen (Benutzer.java)
user.setUserId(userId); //Setter ausführen.
user.setNickName(nickName);
return user; //Gibt die Benutzerinstanz als Rückgabewert an den Controller zurück.
}
}
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 //Eine Anmerkung zur DAO-Klasse.
public class UserDAO {
@Autowired
private JdbcTemplate jdbcTemplate; //Eine Instanz, die mit DB verbunden werden kann.
public Map<String, Object> findUser(int id) { // UserFindLogic.Führen Sie die Methode gemäß den Anweisungen von Java aus.
//Generieren Sie die SELECT-Anweisung
String query = "SELECT "
+ " * "
+ "FROM account "
+ "WHERE user_id=?";
//Führen Sie SQL für DB mit der Funktion jdbcTemplate aus.
Map<String, Object> user = jdbcTemplate.queryForMap(query, id);
return user; //UserFindLogic für das obige Verarbeitungsergebnis.Kehren Sie als Rückgabewert zu Java zurück.
}
}
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>Spitzname:</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)
);
-Der Prozessablauf ist leicht vorstellbar, wenn Sie sich auf den Kommentarbereich des Codes und das Bild unten beziehen.
das ist alles. Jetzt können Sie sogar eine Verbindung zur Datenbank in Ihrer lokalen Umgebung herstellen.