java模块设计书,javaweb图书商城设计之图书模块(4)

搜索热词

本文接着上一篇图书商城分类模块进行学习,供大家参考,具体内容如下

1、创建相关类

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 findAll() {

try {

String sql = "select * from book where del=false";

return qr.query(sql,new BeanListHandler(Book.class));

} catch(sqlException e) {

throw new RuntimeException(e);

}

}

/**

* 按分类查询

* @param cid

* @return

*/

public List findByCategory(String cid) {

try {

String sql = "select * from book where cid=? and del=false";

return qr.query(sql,new BeanListHandler(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 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);

}

}

/**

* 查询指定分类下的图书本数

* @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.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 findAll() {

return bookDao.findAll();

}

/**

* 按分类查询图书

* @param cid

* @return

*/

public List 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. 得到参数bid

* 2. 查询得到Book

* 3. 保存,转发到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,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,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

14848188401.jpg?20161011113740

3、按分类查询图书

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

14848188462.jpg?20161011113753

4、查询详细信息(加载)

流程:list.jsp(点击某一本书) -> BookServlet#load() -> desc.jsp

14848188463.jpg?2016101111388

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值