Ich habe Java für ein paar Jahre studiert. Vor kurzem (wenn auch spät) habe ich angefangen, Frühling zu studieren. Ich habe sofort versucht, eine Funktion / einen Bildschirm für den Administrator der Einkaufsseite zu erstellen. Ich bin immer noch arm, aber bitte beziehen Sie sich darauf, wenn Sie möchten.
STS-Version: 4.7.0.RELEASE MySQL-Version: 8.0.15 mysql-connector-java version: 8.0.16
SampleApplication.java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@SpringBootApplication
public class Sample1Application {
@RequestMapping(value = "/index", method = RequestMethod.GET)
public String index() {
return "index";
}
public static void main(String[] args) {
SpringApplication.run(Sample1Application.class, args);
}
}
SampleController.java
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
@Controller
public class SampleController {
@Autowired
JdbcTemplate jdbcTemplate;
@Autowired
private SampleService sampleService;
@ModelAttribute
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login(Model model) {
LoginForm loginForm = new LoginForm();
loginForm.setId("");
loginForm.setName("");
model.addAttribute("loginForm", loginForm);
model.addAttribute("message", "Bitte geben Sie die Administratorinformationen ein");
return "login";
}
@ModelAttribute
@RequestMapping(value = "/login_result", method = RequestMethod.POST)
public String login_result(LoginForm loginForm, Model model) {
List<Map<String, Object>> list;
list = jdbcTemplate.queryForList("select * from user");
for(int i = 0; i < list.size(); i++) {
if (("[" + loginForm.getId() + "," + " " + loginForm.getName() + "]").compareTo((list.get(i).values().toString())) == 0) {
model.addAttribute("message", "Sie haben sich erfolgreich angemeldet");
}
else {
model.addAttribute("message", "Ich konnte mich nicht anmelden");
}
}
return "login_result";
}
@ModelAttribute
@RequestMapping(value = "/admin_menu", method = RequestMethod.GET)
public String admin_menu(Model model) {
model.addAttribute("message", "Bitte wählen Sie ein Menü");
return "admin_menu";
}
@ModelAttribute
@RequestMapping(value = "/show_product", method = RequestMethod.GET)
public String show_product(Model model) {
List<String> products = null;
products = sampleService.selectAll();
model.addAttribute("products",products);
model.addAttribute("message", "Produkt angezeigt");
return "show_product";
}
@ModelAttribute
@RequestMapping(value = "/register_product", method = RequestMethod.GET)
public String register_product(Model model) {
ProductForm productForm = new ProductForm();
model.addAttribute("productForm", productForm);
model.addAttribute("message", "Bitte registrieren Sie das Produkt");
return "register_product";
}
@ModelAttribute
@RequestMapping(value = "/update_product", method = RequestMethod.GET)
public String update_product(Model model) {
ProductForm productForm = new ProductForm();
model.addAttribute("productForm", productForm);
model.addAttribute("message", "Bitte aktualisieren Sie das Produkt");
return "update_product";
}
@ModelAttribute
@RequestMapping(value = "/delete_product", method = RequestMethod.GET)
public String delete_product(Model model) {
ProductForm productForm = new ProductForm();
model.addAttribute("productForm", productForm);
model.addAttribute("message", "Bitte löschen Sie den Artikel");
return "delete_product";
}
@ModelAttribute
@RequestMapping(value = "/afeter_delete_product", method = RequestMethod.POST)
public String afeter_delete_product(ProductForm productForm, Model model) {
sampleService.delete(productForm);
model.addAttribute("message", "Die Verarbeitung ist abgeschlossen");
return "afeter_delete_product";
}
@ModelAttribute
@RequestMapping(value = "/show_result", method = RequestMethod.POST)
public String show_result(ProductForm productForm, Model model) {
sampleService.insert(productForm);
model.addAttribute("message", "Die Verarbeitung ist abgeschlossen");
return "show_result";
}
}
SampleService.java
package com.example.demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Service;
@Service
public class SampleService {
public List<String> selectAll() {
List<String> entities = null;
entities = new ArrayList<String>();
ResultSet resultSet = null;
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/sample?serverTimezone=JST", "root", "root");
Statement statement = connection.createStatement();
resultSet = statement.executeQuery("select * from product");
while (resultSet.next()) {
String str = resultSet.getString("code") + " " + resultSet.getString("name") + " " + resultSet.getString("description") + " " + resultSet.getString("price") + " " + resultSet.getString("evaluation");
entities.add(str);
}
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
return entities;
}
public void insert(ProductForm productForm) {
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/sample?serverTimezone=JST", "root", "root");
PreparedStatement statement = connection.prepareStatement("INSERT INTO product VALUES (?, ?, ?, ?, ?)");
statement.setString(1, productForm.getCode());
statement.setString(2, productForm.getName());
statement.setString(3, productForm.getDescription());
statement.setString(4, productForm.getPrice());
statement.setString(5, productForm.getEvaluation());
connection.setAutoCommit(true);
statement.execute();
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void update(ProductForm productForm) {
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/sample?serverTimezone=JST", "root", "root");
PreparedStatement statement = connection.prepareStatement("UPDATE product SET code=?, name=?, description=?, price=?, evaluation=? WHERE code=?");
statement.setString(1, productForm.getCode());
statement.setString(2, productForm.getName());
statement.setString(3, productForm.getDescription());
statement.setString(4, productForm.getPrice());
statement.setString(5, productForm.getEvaluation());
statement.setString(6, productForm.getCode());
connection.setAutoCommit(true);
statement.execute();
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void delete(ProductForm productForm) {
Connection connection = null;
try {
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/sample?serverTimezone=JST", "root", "root");
PreparedStatement statement = connection.prepareStatement("DELETE FROM product WHERE code=?");
statement.setString(1, productForm.getCode());
connection.setAutoCommit(true);
statement.execute();
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
LoginForm.java
package com.example.demo;
public class LoginForm {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ProductForm.java
package com.example.demo;
public class ProductForm {
private String code;
private String name;
private String description;
private String price;
private String evaluation;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getEvaluation() {
return evaluation;
}
public void setEvaluation(String evaluation) {
this.evaluation = evaluation;
}
}
Speichern Sie die obigen Quelldateien in src / main / java des Projekts.
index.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring-Shopsite</title>
</head>
<body>
<p>Spring-Willkommen bei Shopsite!</p>
<a href="/login" >Wenn Sie Administrator sind, klicken Sie bitte hier</a>
</body>
</html>
login.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring-Shopsite</title>
</head>
<body>
<p th:text="${message}"></p>
<form th:action="@{/login_result}" th:object="${loginForm}" method="post">
ID:<input type="text" th:field="*{id}">
<BR/>
Name:<input type="text" th:field="*{name}">
<BR/>
<input type="submit" value="Einloggen"/>
<BR/>
</form>
</body>
</html>
login_result.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring-Shopsite</title>
</head>
<body>
<p th:text="${message}"></p>
<div th:if="${#strings.equals(message, 'Sie haben sich erfolgreich angemeldet')}">
<a href="/admin_menu">Administratormenü</a>
</div>
<div th:if="${#strings.equals(message, 'Ich konnte mich nicht anmelden')}">
<a href="/login">Bitte melden Sie sich erneut an</a>
</div>
</body>
</html>
admin_menu.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring-Shopsite</title>
</head>
<body>
<p th:text="${message}"></p>
<a href="/show_product">Anzeige aller registrierten Produkte</a>
<br/>
<a href="/register_product">Produktregistrierung</a>
<br/>
<a href="/update_product">Produktaktualisierung</a>
<br/>
<a href="/delete_product">Produkt löschen</a>
</body>
</html>
show_product.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring-Shopsite</title>
</head>
<body>
<p th:text="${message}"></p>
<table th:each="product : ${products}">
<tr>
<td>
<p th:text="${product}"></p>
</td>
</tr>
</table>
</body>
</html>
register_product.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring-Shopsite</title>
</head>
<body>
<p th:text="${message}"></p>
<form th:action="@{/show_result}" th:object="${productForm}" method="post">
Produktcode:<input type="text" th:field="*{code}">
<BR />
Produktname:<input type="text" th:field="*{name}">
<BR />
Erklärung:<input type="text" th:field="*{description}">
<BR />
Preis:<input type="text" th:field="*{price}">
<BR />
Bewertung:<input type="text" th:field="*{evaluation}">
<BR />
<input type="submit" value="Anmeldung"/>
<BR />
</form>
</body>
</html>
update_product.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring-Shopsite</title>
</head>
<body>
<p th:text="${message}"></p>
<form th:action="@{/show_result}" th:object="${productForm}" method="post">
Produktcode:<input type="text" th:field="*{code}">
<BR />
Produktname:<input type="text" th:field="*{name}">
<BR />
Erklärung:<input type="text" th:field="*{description}">
<BR />
Preis:<input type="text" th:field="*{price}">
<BR />
Bewertung:<input type="text" th:field="*{evaluation}">
<BR />
<input type="submit" value="aktualisieren"/>
<BR />
</form>
</body>
</html>
delete_product.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring-Shopsite</title>
</head>
<body>
<p th:text="${message}"></p>
<form th:action="@{/afeter_delete_product}" th:object="${productForm}" method="post">
Produktcode:<input type="text" th:field="*{code}">
<BR />
<input type="submit" value="Löschen"/>
<BR />
</form>
</body>
</html>
after_delete_product.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring-Shopsite</title>
</head>
<body>
<p th:text="${message}"></p>
</body>
</html>
show_result.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Spring-Shopsite</title>
</head>
<body>
<p th:text="${message}"></p>
</body>
</html>
Speichern Sie die obigen Vorlagendateien in Vorlagen unter src / main / resources.
Erstellen Sie danach das Projekt und es sollte normal ausgeführt werden. Von dieser Zeit Leider verarbeitet das Projekt keine Produktbilder, aber ich beabsichtige, nur die Grundfunktionen beizubehalten. Vielleicht werden wir dieses Projekt fortsetzen, aber nochmals vielen Dank zu diesem Zeitpunkt. Wir sehen uns wieder.
Ich werde auch pom nur für den Fall posten.
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>Sample-1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Sample-1</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>