Commit fda95cfd by Patryk Czarnik

ProductController_v2 - wersja bez StringBuildera, ze streamem

parent 5e3856b0
package sklep.alternatywne_dostepy_do_bazy; package sklep.alternatywne_dostepy_do_bazy;
import java.util.List; import java.util.stream.Collectors;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
...@@ -22,33 +22,21 @@ public class ProductController_v2 { ...@@ -22,33 +22,21 @@ public class ProductController_v2 {
@GetMapping(produces = "text/plain;charset=UTF-8") @GetMapping(produces = "text/plain;charset=UTF-8")
@ResponseBody @ResponseBody
public String readAll() { public String readAll() {
List<Product> products = em.createNamedQuery("Product.findAll", Product.class).getResultList(); return em.createNamedQuery("Product.findAll", Product.class)
StringBuilder sb = new StringBuilder("Lista produktów:\n"); .getResultStream()
for(Product product : products) { .map(product -> product.getProductName() + " za cenę " + product.getPrice() + "\n")
sb.append(" * ") .collect(Collectors.joining());
.append(product.getProductName())
.append(" za cenę ")
.append(product.getPrice())
.append('\n');
}
return sb.toString();
} }
@GetMapping(path = "/{id}", produces = "text/plain;charset=UTF-8") @GetMapping(path = "/{id}", produces = "text/plain;charset=UTF-8")
@ResponseBody @ResponseBody
public String readOne(@PathVariable("id") Integer productId) { public String readOne(@PathVariable("id") Integer productId) {
Product product = em.find(Product.class, productId); Product product = em.find(Product.class, productId);
StringBuilder sb = new StringBuilder();
if(product != null) { if(product != null) {
sb.append("Znaleziony produkt:\n") return product.getProductName() + " za cenę " + product.getPrice();
.append(product.getProductName())
.append(" za cenę ")
.append(product.getPrice())
.append('\n');
} else { } else {
sb.append("Nie ma produktu o numerze ").append(productId); return "Nie ma produktu o numerze " + productId;
} }
return sb.toString();
} }
@GetMapping(path = "/szukaj", produces = "text/plain;charset=UTF-8") @GetMapping(path = "/szukaj", produces = "text/plain;charset=UTF-8")
...@@ -57,17 +45,11 @@ public class ProductController_v2 { ...@@ -57,17 +45,11 @@ public class ProductController_v2 {
TypedQuery<Product> query = em.createQuery("SELECT p FROM Product p WHERE productName = :nazwa", Product.class); TypedQuery<Product> query = em.createQuery("SELECT p FROM Product p WHERE productName = :nazwa", Product.class);
query.setParameter("nazwa", name); query.setParameter("nazwa", name);
Product product = query.getSingleResult(); Product product = query.getSingleResult();
StringBuilder sb = new StringBuilder();
if(product != null) { if(product != null) {
sb.append("Znaleziony produkt:\n") return product.getProductName() + " za cenę " + product.getPrice();
.append(product.getProductName())
.append(" za cenę ")
.append(product.getPrice())
.append('\n');
} else { } else {
sb.append("Nie ma produktu o nazwie ").append(name); return "Nie ma produktu o nazwie " + name;
} }
return sb.toString();
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment