Commit d154b4b7 by Patryk Czarnik

zapytania wg ID i wg nazwy - zwykły SQL

parent 4ad07e93
...@@ -2,6 +2,7 @@ package sklep.controller; ...@@ -2,6 +2,7 @@ package sklep.controller;
import java.sql.Connection; import java.sql.Connection;
import java.sql.DriverManager; import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Statement; import java.sql.Statement;
...@@ -10,7 +11,9 @@ import javax.sql.DataSource; ...@@ -10,7 +11,9 @@ import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
@Controller @Controller
...@@ -23,9 +26,10 @@ public class ProductController { ...@@ -23,9 +26,10 @@ public class ProductController {
public String wszystkieProdukty() { public String wszystkieProdukty() {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
final String sql = "SELECT * FROM products ORDER BY product_id";
try(Connection c = dataSource.getConnection(); try(Connection c = dataSource.getConnection();
Statement stmt = c.createStatement(); PreparedStatement stmt = c.prepareStatement(sql);
ResultSet rs = stmt.executeQuery("SELECT * FROM products ORDER BY product_id")) { ResultSet rs = stmt.executeQuery()) {
while(rs.next()) { while(rs.next()) {
sb.append("* produkt ") sb.append("* produkt ")
...@@ -41,4 +45,57 @@ public class ProductController { ...@@ -41,4 +45,57 @@ public class ProductController {
return sb.toString(); return sb.toString();
} }
@RequestMapping(path="/products/{id}", produces="text/plain")
@ResponseBody
public String jedenProdukt(@PathVariable int id) {
StringBuilder sb = new StringBuilder();
final String sql = "SELECT * FROM products WHERE product_id = ?";
try(Connection c = dataSource.getConnection();
PreparedStatement stmt = c.prepareStatement(sql)) {
stmt.setInt(1, id);
try(ResultSet rs = stmt.executeQuery()) {
if(rs.next()) {
sb.append("Znaleziony produkt:\n")
.append(rs.getString("product_name"))
.append(" za cenę ")
.append(rs.getBigDecimal("price"))
.append('\n');
} else {
sb.append("Nie ma produktu o numerze ").append(id);
}
}
} catch (SQLException e) {
e.printStackTrace();
sb.append("Błąd: " + e);
}
return sb.toString();
}
@RequestMapping(path="/products/szukaj", produces="text/plain")
@ResponseBody
public String wyszukajProdukty(@RequestParam String name) {
StringBuilder sb = new StringBuilder();
final String sql = "SELECT * FROM products WHERE product_name = ? ORDER BY product_id";
try(Connection c = dataSource.getConnection();
PreparedStatement stmt = c.prepareStatement(sql)) {
stmt.setString(1, name);
try(ResultSet rs = stmt.executeQuery()) {
while(rs.next()) {
sb.append("* produkt ")
.append(rs.getString("product_name"))
.append(" za cenę ")
.append(rs.getBigDecimal("price"))
.append('\n');
}
}
} catch (SQLException e) {
e.printStackTrace();
sb.append("Błąd: " + e);
}
return sb.toString();
}
} }
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<li><a href="/products">products</a> - wszystkie produkty</li> <li><a href="/products">products</a> - wszystkie produkty</li>
<li><a href="/products/1">products/1</a> - jeden produkt</li> <li><a href="/products/1">products/1</a> - jeden produkt</li>
<li><a href="/products/9">products/9</a> - nieistniejący produkt</li> <li><a href="/products/9">products/9</a> - nieistniejący produkt</li>
<li><a href="/wyszukiwarka">wyszukiwarka</a></li> <li><a href="/products/szukaj">wyszukiwarka</a></li>
<li><a href="/products/new">nowy produkt</a></li> <li><a href="/products/new">nowy produkt</a></li>
<li><a href="/products/1/edit">edycja produktu</a></li> <li><a href="/products/1/edit">edycja produktu</a></li>
</ul> </ul>
......
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