Dies ist die Spring Boot-Version der SQL Server-Verbindungswebanwendung, die mit [hier] erstellt wurde (https://qiita.com/t_skri/items/4e3c11050f93e4761dda).
OS:Windows 10 Pro 64bit DB:SQL Server 2019(Cent OS 8 on Hyper-V) Editor:Visual Studio Code 1.44.2 JDK:AdoptOpenJDK 11.0.6+10 x64
Ich habe es mit den folgenden Einstellungen im Frühjahr initializr (https://start.spring.io/) erstellt.
Erweitern Sie die erstellte Vorlage auf "D: \ JAVA \ Project".
pom.xml Der JDBC von SQL Server ist die Version jre8. Ändern Sie ihn daher in die Version jre11. Fügen Sie "mssql-jdbc.version" in die Eigenschaften ein. (Es hat ohne Änderungen funktioniert, aber nur für den Fall)
<properties>
<java.version>11</java.version>
<mssql-jdbc.version>8.2.2.jre11</mssql-jdbc.version>
</properties>
application.properties Beschreiben der DB-Verbindungsinformationen.
application.properties
spring.datasource.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.url=jdbc:sqlserver://xxx:1433;databaseName=Training01;QuotedID=NO
spring.datasource.username=xxx
spring.datasource.password=xxx
Erstellen Sie eine Entität, die Daten von der Datenbank empfängt.
D:\JAVA\Project\bootSample2\src\main\java\com\example\bootSample2\persistence
└─entity
└─ProductsMaster.java
ProductsMaster.java
package com.example.bootSample2.persistence.entity;
import lombok.Data;
@Data
public class ProductsMaster {
private String ProductsCode;
private String ProductsName;
private Integer UnitPrice;
public ProductsMaster() {}
public ProductsMaster(
String ProductsCode,
String ProductsName,
Integer UnitPrice
) {
this.ProductsCode = ProductsCode;
this.ProductsName = ProductsName;
this.UnitPrice = UnitPrice;
}
}
Erstellen Sie ein Repository, das eine Verbindung zur Datenbank herstellt und SQL-Anweisungen ausgibt.
D:\JAVA\Project\bootSample2\src\main\java\com\example\bootSample2\persistence
└─repository
├─ProductsMasterRepository.java
└─ProductsMasterRepositoryImpl.java
ProductsMasterRepository.java
package com.example.bootSample2.persistence.repository;
import java.util.List;
import com.example.bootSample2.persistence.entity.ProductsMaster;
public interface ProductsMasterRepository {
List<ProductsMaster> productsMasterList();
}
ProductsMasterRepositoryImpl.java
package com.example.bootSample2.persistence.repository;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;
import com.example.bootSample2.persistence.entity.ProductsMaster;
@Repository
public class ProductsMasterRepositoryImpl implements ProductsMasterRepository {
@Autowired
NamedParameterJdbcTemplate jdbcTemplate;
@Override
public List<ProductsMaster> productsMasterList() {
String sql = "SELECT * FROM ProductsMaster ORDER BY ProductsCode;";
List<ProductsMaster> pMList = jdbcTemplate.query(sql,
(rs, rowNum) -> new ProductsMaster(
rs.getString("ProductsCode"),
rs.getString("ProductsName"),
rs.getInt("UnitPrice")
)
);
return pMList;
}
}
Erstellen Sie einen Service, der die Geschäftslogik darstellt.
D:\JAVA\Project\bootSample2\src\main\java\com\example\bootSample2
└─service
├─ProductsMasterService.java
└─ProductsMasterServiceImpl.java
ProductsMasterService.java
package com.example.bootSample2.service;
import java.util.List;
import com.example.bootSample2.persistence.entity.ProductsMaster;
public interface ProductsMasterService {
List<ProductsMaster> productsMasterList();
}
ProductsMasterServiceImpl.java
package com.example.bootSample2.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.bootSample2.persistence.entity.ProductsMaster;
import com.example.bootSample2.persistence.repository.ProductsMasterRepository;
@Service
public class ProductsMasterServiceImpl implements ProductsMasterService {
@Autowired
ProductsMasterRepository productsMasterRepository;
@Override
public List<ProductsMaster> productsMasterList() {
List<ProductsMaster> pMList = productsMasterRepository.productsMasterList();
return pMList;
}
}
Erstellen Sie ein Formular, das Eingabe- / Ausgabewerte in der Ansicht empfängt.
D:\JAVA\Project\bootSample2\src\main\java\com\example\bootSample2\web
└─form
└─ProductsMasterForm.java
ProductsMasterForm.java
package com.example.bootSample2.web.form;
import java.util.List;
import com.example.bootSample2.persistence.entity.ProductsMaster;
import lombok.Data;
@Data
public class ProductsMasterForm {
private List<ProductsMaster> pmList;
}
D:\JAVA\Project\bootSample2\src\main\java\com\example\bootSample2\web
└─controller
└─ProductsMasterController.java
ProductsMasterController.java
package com.example.bootSample2.web.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.RequestMapping;
import com.example.bootSample2.service.ProductsMasterService;
import com.example.bootSample2.web.form.ProductsMasterForm;
@Controller
@RequestMapping("/productsMaster")
public class ProductsMasterController {
@Autowired
ProductsMasterService productsMasterService;
@GetMapping("/index")
public String indexGet(Model model) {
ProductsMasterForm productsMasterForm = new ProductsMasterForm();
productsMasterForm.setPmList(productsMasterService.productsMasterList());
model.addAttribute("productsMasterForm", productsMasterForm);
return "productsMaster/index";
}
}
RootController.java
package com.example.bootSample2.web.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class RootController {
@GetMapping("/")
public String root() {
return "redirect:productsMaster/index";
}
}
Erstellen Sie einen Ordner "productsMaster" unter "D: \ JAVA \ Project \ bootSample2 \ src \ main \ resources \ templates ". Erstellen Sie index.html im Ordner productsMaster.
D:\JAVA\Project\bootSample2\src\main\resources\templates
└─productsMaster
└─index.html
index.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Spring5 MVC sqlSample01</title>
</head>
<body>
<h1>Hello Spring Products List</h1>
<table border="1">
<thead>
<tr>
<th>Produktcode</th>
<th>Produktname</th>
<th>Stückpreis</th>
</tr>
</thead>
<tbody>
<tr th:each="pm : ${productsMasterForm.pmList}" th:object="${pm}">
<td th:text="*{ProductsCode}"></td>
<td th:text="*{ProductsName}"></td>
<td th:text="*{UnitPrice}"></td>
</tr>
</tbody>
</table>
</body>
</html>
Drücken Sie zum Ausführen die Taste "F5". http://localhost:8080/ Bitte zugreifen. Stellen Sie sicher, dass Sie automatisch zu [http: // localhost: 8080 / productsMaster / index](http: // localhost: 8080 / productsMaster / index) umgeleitet werden.
Es ist in Ordnung, wenn die folgende Seite angezeigt wird.
Auf GitHub hochgeladen. https://github.com/t-skri1/SpringSample04
Der Inhalt der Quelle bleibt unverändert, mit der Ausnahme, dass sich die hierarchische Struktur und der Speicherort der Ansicht von denen ohne Start unterscheiden. Der andere Unterschied ist
--DB-Verbindungsinformationen werden unter "application.properties" beschrieben.
Wird sein.
DevTool wurde hinzugefügt, damit Sie es im laufenden Betrieb bereitstellen können. Das ist sehr praktisch.
Recommended Posts