Advertisement
anhkiet2507

BookControllernotDAO

Mar 30th, 2023
930
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.43 KB | None | 0 0
  1. package com.kietna.kietspring.book;
  2.  
  3. import java.io.IOException;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.Statement;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11.  
  12. import org.springframework.stereotype.Controller;
  13. import org.springframework.ui.Model;
  14. import org.springframework.web.bind.annotation.GetMapping;
  15. import org.springframework.web.bind.annotation.PathVariable;
  16. import org.springframework.web.bind.annotation.PostMapping;
  17. import org.springframework.web.bind.annotation.PutMapping;
  18. import org.springframework.web.bind.annotation.RestController;
  19.  
  20. import jakarta.annotation.PostConstruct;
  21.  
  22.  
  23. @Controller
  24.  
  25. public class BookController {
  26.     @GetMapping("/books")
  27.     public String getBooks(Model model) throws IOException{
  28.         Connection connection = null;
  29.         Statement statement = null;
  30.         ResultSet resultSet = null;
  31.         List<Book> books = new ArrayList<Book>();
  32.         try {
  33.             getClass().forName("com.mysql.cj.jdbc.Driver");
  34.             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc_demo","root","NguyenAnhKiet@@123");
  35.             statement = connection.createStatement();
  36.             resultSet = statement.executeQuery("select * from book;");
  37.             while(resultSet.next()) {
  38.                 int bookcode = resultSet.getInt("bookcode");
  39.                 String title = resultSet.getString("title");
  40.                 String author = resultSet.getString("author");
  41.                 String category = resultSet.getString("category");
  42.                 int approved = resultSet.getInt("approved");
  43.                 books.add(new Book(bookcode, title, author, category, approved == 0 ? false:true));
  44.             }
  45.            
  46.         }catch (Exception e) {
  47.             e.printStackTrace();
  48.         }
  49.         model.addAttribute("books", books);
  50.         return "books";
  51.     }
  52.     @GetMapping("/book/{bookcode}")
  53.     public String getBook(Model model, @PathVariable String bookcode) {
  54.         model.addAttribute("bookcode", bookcode);
  55.         Connection connection = null;
  56.         PreparedStatement ps = null;
  57.         ResultSet result = null;
  58.         Book book = new Book();
  59.         try {
  60.             getClass().forName("com.mysql.cj.jdbc.Driver");
  61.             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc_demo","root","NguyenAnhKiet@@123");
  62.             ps = connection.prepareStatement("select * from book where bookcode = ?");
  63.             ps.setInt(1, Integer.valueOf(bookcode));
  64.             result = ps.executeQuery();
  65.             while(result.next()) {
  66.                 book.setBookcode(result.getInt("bookcode"));
  67.                 book.setTitle(result.getString("title"));
  68.                 book.setAuthor(result.getString("author"));
  69.                 book.setCategory(result.getString("category"));
  70.                 book.setApproved(result.getInt("approved")!=0 ? true : false);
  71.             }
  72.         }catch (Exception e) {
  73.             e.printStackTrace();
  74.         }
  75.         model.addAttribute("book", book);
  76.         return "book-detail";      
  77.     }
  78.     @PostMapping("/book/save/{bookcode}")
  79.     public String addBook(Book book, @PathVariable String bookcode) {
  80.         Connection connection = null;
  81.         PreparedStatement ps = null;
  82.         int result = 0;
  83.         try {
  84.             getClass().forName("com.mysql.cj.jdbc.Driver");
  85.             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc_demo","root","NguyenAnhKiet@@123");
  86.             ps = connection.prepareStatement("INSERT INTO book VALUES(?,?,?,?,?)");
  87.             ps.setInt(1, Integer.valueOf(book.getBookcode()));
  88.             ps.setString(2, book.getTitle());
  89.             ps.setString(3, book.getAuthor());
  90.             ps.setString(4, book.getCategory());
  91.             ps.setInt(5, book.getApproved() ? 1 : 0);
  92.             result = ps.executeUpdate();
  93.             ps.close();
  94.             connection.close();
  95.             return "redirect:/books";
  96.         }catch (Exception e) {
  97.             e.printStackTrace();
  98.         }
  99.         return "error";
  100.     }
  101.     @PutMapping("/book/save/{bookcode}")
  102.     public String update(Book book, @PathVariable String bookcode) {
  103.         Connection connection = null;
  104.         PreparedStatement ps = null;
  105.         int result = 0;
  106.         try {
  107.             getClass().forName("com.mysql.cj.jdbc.Driver");
  108.             connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc_demo","root","NguyenAnhKiet@@123");
  109.             ps = connection.prepareStatement("UPDATE book SET title = ?,author=?,category=?,approved=? WHERE bookcode=?");
  110.             ps.setString(1, book.getTitle());
  111.             ps.setString(2, book.getAuthor());
  112.             ps.setString(3, book.getCategory());
  113.             ps.setInt(4, book.getApproved() ? 1 : 0);
  114.             ps.setInt(5, Integer.valueOf(book.getBookcode()));
  115.             result = ps.executeUpdate();
  116.             ps.close();
  117.             connection.close();
  118.             return "redirect:/books";
  119.         }catch (Exception e) {
  120.             e.printStackTrace();
  121.         }
  122.         return "error";
  123.     }
  124.    
  125. }
  126.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement