文章目录
- 图书商城系统
- 一、项目演示
- 二、项目介绍
- 三、万字项目文档
- 四、部分功能截图
- 五、部分代码展示
- 六、底部获取项目源码带万字文档(9.9¥带走)
图书商城系统
一、项目演示
网上书城
二、项目介绍
语言:java 数据库:MySQL
技术栈:javaweb、Servlet、JSP、JDBC、、Tomcat
系统角色:管理员、用户
管理员:书籍管理、分类管理、订单管理、用户管理、上架书籍等功能
用户:登录、注册、图书列表、商品详情、加入购物车、订单列表、订单详情等功能
三、万字项目文档
四、部分功能截图
五、部分代码展示
package com.shine.bookshop.dao.impl;import java.util.ArrayList;
import java.util.List;
import java.util.Map;import com.shine.bookshop.bean.Admin;
import com.shine.bookshop.bean.PageBean;
import com.shine.bookshop.dao.AdminDao;
import com.shine.bookshop.util.DateUtil;
import com.shine.bookshop.util.DbUtil;public class AdminDaoImpl implements AdminDao {/*** @param user 传递要登录的用户信息* @return 返回一个boolean值,true登录成功,false失败*/@Overridepublic boolean userLogin(Admin admin) {boolean flag=false;String sql="select * from s_admin where userName=? and passWord=?";String sql2="update s_admin set lastLoginTime=? where id=?";List<Map<String,Object>> list=DbUtil.executeQuery(sql, admin.getUserName(),admin.getPassWord());if(list.size()>0){flag=true;//这里需要name值传入对象中admin.setName((String)list.get(0).get("name"));//通过登录成功用户的id更新最后登录时间DbUtil.excuteUpdate(sql2, DateUtil.getTimestamp(),list.get(0).get("id"));}return flag;}/*** @param pageBean 传递分页对象* @return 返回一个list集合,这里是通过limit分页查询的结果*/@Overridepublic List<Admin> userList(PageBean pageBean) {List<Admin> lu=new ArrayList<>();List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();String sql="select * from s_admin limit ?,?";list=DbUtil.executeQuery(sql,(pageBean.getCurPage()-1)*pageBean.getMaxSize(),pageBean.getMaxSize());if(list.size()>0) {for(Map<String,Object> map:list) {Admin u=new Admin(map);lu.add(u);}}return lu;}/*** @param user 要增加的用户对象* @return 返回一个boolean true用户增加成功 false用户增加失败*/@Overridepublic boolean userAdd(Admin user) {String sql="insert into s_admin(userName,password,name) values(?,?,?)";int i= DbUtil.excuteUpdate(sql, user.getUserName(),user.getPassWord(),user.getName());return i>0?true:false; }/*** @param id 根据id查找一个用户信息* @return 返回一个list用户信息集合*///查找指定id用户信息@Overridepublic Admin findUser(Integer id) {String sql="select * from s_admin where id=?";Admin admin=null;List<Map<String,Object>> list=DbUtil.executeQuery(sql, id);if(list.size()>0) {admin=new Admin(list.get(0));}return admin;}//查找用户名是否存在true存在@Overridepublic boolean findUser(String userName) {String sql="select * from s_admin where userName=?";List<Map<String,Object>> list=DbUtil.executeQuery(sql, userName);return list.size()>0?true:false;}/*** * @param admin 更新用户,根据传过来的id* @return boolean*/@Overridepublic boolean userUpdate(Admin admin) {String sql="update s_admin set password=? , name=? where id =?";int i=DbUtil.excuteUpdate(sql, admin.getPassWord(),admin.getName(),admin.getId());return i>0?true:false;}/*** @param id 要删除的用户id* @return 返回boolean true删除用户成功,false删除用户失败*/@Overridepublic boolean delUser(int id) {String sql="delete from s_admin where id=?";int i=DbUtil.excuteUpdate(sql, id);return i>0?true:false;}/*** @param ids 要批量删除id组的字符串*/@Overridepublic boolean batDelUser(String ids) {String sql="delete from s_admin where id in ("+ids+")";int i=DbUtil.excuteUpdate(sql);return i>0?true:false;}@Overridepublic long bookReadCount() {long count=0;String sql="select count(*) as count from s_admin";List<Map<String, Object>> lm=DbUtil.executeQuery(sql);if(lm.size()>0){count=(long) lm.get(0).get("count");}return count;}}
package com.shine.bookshop.dao.impl;import java.util.ArrayList;
import java.util.List;
import java.util.Map;import com.shine.bookshop.bean.Book;
import com.shine.bookshop.bean.Catalog;
import com.shine.bookshop.bean.PageBean;
import com.shine.bookshop.bean.UpLoadImg;
import com.shine.bookshop.dao.BookDao;
import com.shine.bookshop.util.DateUtil;
import com.shine.bookshop.util.DbUtil;public class BookDaoImpl implements BookDao {@Overridepublic List<Book> bookList(PageBean pageBean) {List<Book> list = new ArrayList<>();String sql = "select * from view_book limit ?,?";// 查询的分页结果集List<Map<String, Object>> lm = DbUtil.executeQuery(sql, (pageBean.getCurPage() - 1) * pageBean.getMaxSize(),pageBean.getMaxSize());// 把查询的book结果由List<Map<String, Object>>转换为List<Book>if (lm.size() > 0) {for (Map<String, Object> map : lm) {Book book = new Book(map);list.add(book);}}return list;}@Overridepublic long bookReadCount() {String sql = "select count(*) as count from s_book";List<Map<String, Object>> lm = DbUtil.executeQuery(sql);return lm.size() > 0 ? (long) lm.get(0).get("count") : 0;}@Overridepublic boolean bookAdd(Book book) {String sql = "insert into s_book(bookName,catalogId,author,press,price,description,imgId,addTime) values(?,?,?,?,?,?,?,?)";int i = DbUtil.excuteUpdate(sql, book.getBookName(), book.getCatalog().getCatalogId(), book.getAuthor(),book.getPress(), book.getPrice(), book.getDescription(), book.getUpLoadImg().getImgId(),DateUtil.getTimestamp());return i > 0 ? true : false;}@Overridepublic Book findBookById(int bookId) {String sql = "select * from view_book where bookId=?";Book book = null;List<Map<String, Object>> list = DbUtil.executeQuery(sql, bookId);if (list.size() > 0) {book = new Book(list.get(0));}return book;}/*** */@Overridepublic boolean findBookByBookName(String bookName) {String sql = "select * from s_book where bookName=?";List<Map<String, Object>> list = DbUtil.executeQuery(sql, bookName);return list.size() > 0 ? true : false;}/*** 更新图书信息*/@Overridepublic boolean bookUpdate(Book book) {String sql = "update s_book set catalogId=?,author=?,press=?,price=?,description=? where bookId=?";int i = DbUtil.excuteUpdate(sql, book.getCatalogId(), book.getAuthor(), book.getPress(), book.getPrice(),book.getDescription(), book.getBookId());return i > 0 ? true : false;}/*** 图书删除*/@Overridepublic boolean bookDelById(int bookId) {String sql = "SET FOREIGN_KEY_CHECKS = 0;delete from s_book where bookId=?";int i = DbUtil.excuteUpdate(sql, bookId);return i > 0 ? true : false;}/*** 批量查询*/@Overridepublic String findimgIdByIds(String ids) {String imgIds = "";String sql = "select imgId from s_book where bookId in(" + ids + ")";List<Map<String, Object>> list = DbUtil.executeQuery(sql);if (list.size() > 0) {for (int i = 0; i < list.size(); i++) {if (i != list.size() - 1) {imgIds += list.get(i).get("imgId") + ",";} else {imgIds += list.get(i).get("imgId");}}}return imgIds;}// 批量删除@Overridepublic boolean bookBatDelById(String ids) {String sql = "delete from s_book where bookId in(" + ids + ")";int i = DbUtil.excuteUpdate(sql);return i > 0 ? true : false;}// 随机查询一定数量的书@Overridepublic List<Book> bookList(int num) {List<Book> list = new ArrayList<>();String sql = "select * from view_book order by rand() LIMIT ?";List<Map<String, Object>> lm = DbUtil.executeQuery(sql, num);// 把查询的book结果由List<Map<String, Object>>转换为List<Book>if (lm.size() > 0) {for (Map<String, Object> map : lm) {Book book = new Book(map);list.add(book);}}return list;}/*** 查询指定数量新书*/@Overridepublic List<Book> newBooks(int num) {List<Book> list = new ArrayList<>();String sql = "SELECT * FROM view_book ORDER BY addTime desc limit 0,?";List<Map<String, Object>> lm = DbUtil.executeQuery(sql, num);// 把查询的book结果由List<Map<String, Object>>转换为List<Book>if (lm.size() > 0) {for (Map<String, Object> map : lm) {Book book = new Book(map);list.add(book);}}return list;}/*** 按分类id统计图书数量*/@Overridepublic long bookReadCount(int catalogId) {String sql = "select count(*) as count from s_book where catalogId=?";List<Map<String, Object>> lm = DbUtil.executeQuery(sql, catalogId);return lm.size() > 0 ? (long) lm.get(0).get("count") : 0;}/*** 按分类id获取图书列表*/@Overridepublic List<Book> bookList(PageBean pageBean, int catalogId) {List<Book> list = new ArrayList<>();String sql = "select * from view_book where catalogId=? limit ?,?";// 查询的分页结果集List<Map<String, Object>> lm = DbUtil.executeQuery(sql, catalogId,(pageBean.getCurPage() - 1) * pageBean.getMaxSize(), pageBean.getMaxSize());// 把查询的book结果由List<Map<String, Object>>转换为List<Book>if (lm.size() > 0) {for (Map<String, Object> map : lm) {Book book = new Book(map);list.add(book);}}return list;}/*** 按分类id获取图书列表*/@Overridepublic List<Book> bookList(PageBean pageBean, String bookname) {List<Book> list = new ArrayList<>();String sql = "select * from view_book where bookName like '%"+bookname+"%' limit ?,?";// 查询的分页结果集List<Map<String, Object>> lm = DbUtil.executeQuery(sql,(pageBean.getCurPage() - 1) * pageBean.getMaxSize(), pageBean.getMaxSize());// 把查询的book结果由List<Map<String, Object>>转换为List<Book>if (lm.size() > 0) {for (Map<String, Object> map : lm) {Book book = new Book(map);list.add(book);}}return list;}@Overridepublic long bookReadCount(String bookname) {String sql = "select count(*) as count from s_book where bookName like '%"+bookname+"%'";List<Map<String, Object>> lm = DbUtil.executeQuery(sql);return lm.size() > 0 ? (long) lm.get(0).get("count") : 0;}}
package com.shine.bookshop.dao.impl;import java.util.ArrayList;
import java.util.List;
import java.util.Map;import com.shine.bookshop.bean.Catalog;
import com.shine.bookshop.bean.PageBean;
import com.shine.bookshop.dao.CatalogDao;
import com.shine.bookshop.util.DbUtil;public class CatalogDaoImpl implements CatalogDao {/*** 获取图书分类信息*/@Overridepublic List<Catalog> catalogList(PageBean pb) {List<Catalog> list=new ArrayList<Catalog>();String sql = "select * from s_catalog limit ?,?";// 查询的分页结果集List<Map<String, Object>> lm = DbUtil.executeQuery(sql, (pb.getCurPage() - 1) * pb.getMaxSize(),pb.getMaxSize());if(lm.size()>0){for(Map<String,Object> map:lm){Catalog catalog=new Catalog(map);list.add(catalog);}} return list; }@Overridepublic long catalogReadCount() {long count=0;String sql="select count(*) as count from s_catalog";List<Map<String, Object>> lm=DbUtil.executeQuery(sql);if(lm.size()>0){count=(long) lm.get(0).get("count");}return count;}@Overridepublic List<Catalog> getCatalog() {List<Catalog> list=new ArrayList<Catalog>();String sql="select * from s_catalog";List<Map<String,Object>> lmso=DbUtil.executeQuery(sql);if(lmso.size()>0){for(Map<String,Object> map:lmso){Catalog catalog=new Catalog(map);list.add(catalog);}} return list; }@Overridepublic boolean catalogDel(int catalogId) {String sql = "delete from s_catalog where catalogId=?";int i = DbUtil.excuteUpdate(sql, catalogId);return i > 0 ? true : false;}@Overridepublic boolean catalogBatDelById(String ids) {String sql="delete from s_catalog where catalogId in("+ids+")";int i=DbUtil.excuteUpdate(sql);return i>0?true:false;}@Overridepublic boolean findCatalogByCatalogName(String catalogName) {String sql = "select * from s_catalog where catalogName=?";List<Map<String, Object>> list = DbUtil.executeQuery(sql, catalogName);return list.size() > 0 ? true : false;}@Overridepublic boolean catalogAdd(String catalogName) {String sql="insert into s_catalog(catalogName) values(?)";int i = DbUtil.excuteUpdate(sql, catalogName);return i > 0 ? true : false;}}
六、底部获取项目源码带万字文档(9.9¥带走)
有问题,或者需要协助调试运行项目的也可以