欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javaweb圖書商城設計之圖書模塊(4)

 更新時間:2016年11月11日 11:39:27   作者:Android-Dev  
這篇文章主要介紹了javaweb圖書商城設計之圖書模塊的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文接著上一篇圖書商城分類模塊進行學習,供大家參考,具體內(nèi)容如下

1、創(chuàng)建相關類

cn.itcast.bookstore.book
domain:Book
dao:BookDao
service :BookService
web.servle:BookServlet

Book

public class Book {
 private String bid;
 private String bname;
 private double price;
 private String author;
 private String image;
 private Category category;
 private boolean del;
}

BookDao

public class BookDao {
 private QueryRunner qr = new TxQueryRunner();

 /**
 * 查詢所有圖書
 * @return
 */
 public List<Book> findAll() {
 try {
 String sql = "select * from book where del=false";
 return qr.query(sql, new BeanListHandler<Book>(Book.class));
 } catch(SQLException e) {
 throw new RuntimeException(e);
 }
 }

 /**
 * 按分類查詢
 * @param cid
 * @return
 */
 public List<Book> findByCategory(String cid) {
 try {
 String sql = "select * from book where cid=? and del=false";
 return qr.query(sql, new BeanListHandler<Book>(Book.class), cid);
 } catch(SQLException e) {
 throw new RuntimeException(e);
 }
 }

 /**
 * 加載方法
 * @param bid
 * @return
 */
 public Book findByBid(String bid) {
 try {
 /*
 * 我們需要在Book對象中保存Category的信息
 */
 String sql = "select * from book where bid=?";
 Map<String,Object> map = qr.query(sql, new MapHandler(), bid);
 /*
 * 使用一個Map,映射出兩個對象,再給這兩個對象建立關系!
 */
 Category category = CommonUtils.toBean(map, Category.class);
 Book book = CommonUtils.toBean(map, Book.class);
 book.setCategory(category);
 return book;
 } catch(SQLException e) {
 throw new RuntimeException(e);
 }
 }

 /**
 * 查詢指定分類下的圖書本數(shù)
 * @param cid
 * @return
 */
 public int getCountByCid(String cid) {
 try {
 String sql = "select count(*) from book where cid=?";
 Number cnt = (Number)qr.query(sql, new ScalarHandler(), cid);
 return cnt.intValue();
 } catch(SQLException e) {
 throw new RuntimeException(e);
 }
 }

 /**
 * 添加圖書
 * @param book
 */
 public void add(Book book) {
 try {
 String sql = "insert into book values(?,?,?,?,?,?)";
 Object[] params = {book.getBid(), book.getBname(), book.getPrice(),
  book.getAuthor(), book.getImage(), book.getCategory().getCid()};
 qr.update(sql, params);
 } catch(SQLException e) {
 throw new RuntimeException(e);
 }
 }

 /**
 * 刪除圖書
 * @param bid
 */
 public void delete(String bid) {
 try {
 String sql = "update book set del=true where bid=?";
 qr.update(sql, bid);
 } catch(SQLException e) {
 throw new RuntimeException(e);
 }
 }

 public void edit(Book book) {
 try {
 String sql = "update book set bname=?, price=?,author=?, image=?, cid=? where bid=?";
 Object[] params = {book.getBname(), book.getPrice(),
  book.getAuthor(), book.getImage(), 
  book.getCategory().getCid(), book.getBid()};
 qr.update(sql, params);
 } catch(SQLException e) {
 throw new RuntimeException(e);
 }
 }
}

BookService

public class BookService {
 private BookDao bookDao = new BookDao();

 /**
 * 查詢所有圖書
 * @return
 */
 public List<Book> findAll() {
 return bookDao.findAll();
 }

 /**
 * 按分類查詢圖書
 * @param cid
 * @return
 */
 public List<Book> findByCategory(String cid) {
 return bookDao.findByCategory(cid);
 }

 public Book load(String bid) {
 return bookDao.findByBid(bid);
 }

 /**
 *  添加圖書
 * @param book
 */
 public void add(Book book) {
 bookDao.add(book);
 }

 public void delete(String bid) {
 bookDao.delete(bid);
 }

 public void edit(Book book) {
 bookDao.edit(book);
 }
}

BookServlet

public class BookServlet extends BaseServlet {
 private BookService bookService = new BookService();

 public String load(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 /*
 * 1. 得到參數(shù)bid
 * 2. 查詢得到Book
 * 3. 保存,轉發(fā)到desc.jsp
 */
 request.setAttribute("book", bookService.load(request.getParameter("bid")));
 return "f:/jsps/book/desc.jsp";
 }

 /**
 * 查詢所有圖書
 * @param request
 * @param response
 * @return
 * @throws ServletException
 * @throws IOException
 */
 public String findAll(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 request.setAttribute("bookList", bookService.findAll());
 return "f:/jsps/book/list.jsp";
 }

 /**
 * 按分類查詢
 * @param request
 * @param response
 * @return
 * @throws ServletException
 * @throws IOException
 */
 public String findByCategory(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
 String cid = request.getParameter("cid");
 request.setAttribute("bookList", bookService.findByCategory(cid));
 return "f:/jsps/book/list.jsp";
 }
}

2、查詢所有圖書

流程:left.jsp(全部分類) -> BookServlet#findAll() -> /jsps/book/list.jsp

3、按分類查詢圖書

流程:left.jsp -> BookServlet#findByCategory() -> list.jsp

4、查詢詳細信息(加載)

流程:list.jsp(點擊某一本書) -> BookServlet#load() -> desc.jsp

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 解析SpringBoot @EnableAutoConfiguration的使用

    解析SpringBoot @EnableAutoConfiguration的使用

    這篇文章主要介紹了解析SpringBoot @EnableAutoConfiguration的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • springboot jackson自定義序列化和反序列化實例

    springboot jackson自定義序列化和反序列化實例

    這篇文章主要介紹了spring boot jackson自定義序列化和反序列化實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java中的深拷貝和淺拷貝介紹

    Java中的深拷貝和淺拷貝介紹

    對象拷貝(Object Copy)就是將一個對象的屬性拷貝到另一個有著相同類類型的對象中去。在程序中拷貝對象是很常見的,主要是為了在新的上下文環(huán)境中復用對象的部分或全部 數(shù)據(jù)。Java中有三種類型的對象拷貝:淺拷貝(Shallow Copy)、深拷貝(Deep Copy)、延遲拷貝(Lazy Copy)
    2014-03-03
  • Mybatis-plus使用注解 @TableField(exist = false)

    Mybatis-plus使用注解 @TableField(exist = false)

    這篇文章主要介紹了Mybatis-plus使用注解 @TableField(exist = false),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • java自定義注解接口實現(xiàn)方案

    java自定義注解接口實現(xiàn)方案

    java注解是附加在代碼中的一些元信息,用于一些工具在編譯、運行時進行解析和使用,起到說明、配置的功能,本文將詳細介紹,此功能的實現(xiàn)方法
    2012-11-11
  • Java泛型的繼承和實現(xiàn)操作示例

    Java泛型的繼承和實現(xiàn)操作示例

    這篇文章主要介紹了Java泛型的繼承和實現(xiàn)操作,結合實例形式分析了java泛型類的繼承以及泛型接口的實現(xiàn)相關操作技巧,需要的朋友可以參考下
    2019-08-08
  • 實例講解MyBatis如何防止SQL注入

    實例講解MyBatis如何防止SQL注入

    這篇文章通過實例代碼介紹MyBatis如何防止SQL注入,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • java實現(xiàn)統(tǒng)一異常處理的示例

    java實現(xiàn)統(tǒng)一異常處理的示例

    一個全局異常處理類需要處理三類異常1.業(yè)務類異常,2.運行時異常 ,3.Error,本文給大家介紹java實現(xiàn)統(tǒng)一異常處理的示例,感興趣的朋友一起看看吧
    2021-06-06
  • 淺談Java設計模式之原型模式知識總結

    淺談Java設計模式之原型模式知識總結

    Java原型模式主要用于創(chuàng)建重復的對象,同時又能保證性能,這篇文章就帶大家仔細了解一下原型模式的知識,對正在學習java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • JAVA 多線程爬蟲實例詳解

    JAVA 多線程爬蟲實例詳解

    這篇文章主要介紹了JAVA 多線程爬蟲實例詳解的相關資料,需要的朋友可以參考下
    2017-04-04

最新評論