作者主页:源码空间站2022
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
本项目分为前后台,分为管理员与普通用户两种角色,管理员登录后台,普通用户登录前台;
管理员角色包含以下功能:
管理员角色,管理员登录,订单管理,增删改查用户,图书管理,图书类别管理等功能。
用户角色包含以下功能:
用户首页,查看分类,用户详情,用户注册,查看购物车,提交订单,查看订单,修改个人信息等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目:否;
技术栈
JSP+CSS+jQuery+bootstrap+mysql+servlet
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中src/utils/DBUtil.java配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入localhost:8080/jsp_book_shop/ 登录 注:tomcat中配置项目路径必须为jsp_book_shop,否则会有异常;
用户账号/密码:user/123456
管理员账号/密码:admin/admin
运行截图
前台界面
后台界面
相关代码
UserService
package service;
import dao.UserDao;
import model.Page;
import model.User;
import java.sql.SQLException;
import java.util.List;
public class UserService {
private UserDao uDao = new UserDao();
public boolean register(User user) {
try {
if(uDao.isUsernameExist(user.getUsername())) {
return false;
}
if(uDao.isEmailExist(user.getEmail())) {
return false;
}
uDao.addUser(user);
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public User login(String ue,String password) {
User user=null;
try {
user = uDao.selectByUsernamePassword(ue, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(user!=null) {
return user;
}
try {
user=uDao.selectByEmailPassword(ue, password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(user!=null) {
return user;
}
return null;
}
public User selectById(int id) {
User u=null;
try {
u = uDao.selectById(id);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return u;
}
public void updateUserAddress(User user) {
try {
uDao.updateUserAddress(user);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void updatePwd(User user) {
try {
uDao.updatePwd(user);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Page getUserPage(int pageNumber) {
Page p = new Page();
p.setPageNumber(pageNumber);
int pageSize = 7;
int totalCount = 0;
try {
totalCount = uDao.selectUserCount();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
p.SetPageSizeAndTotalCount(pageSize, totalCount);
List list=null;
try {
list = uDao.selectUserList( pageNumber, pageSize);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
p.setList(list);
return p;
}
public boolean delete(int id ) {
try {
uDao.delete(id);
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
}
TypeService
package service;
import dao.TypeDao;
import model.Type;
import java.sql.SQLException;
import java.util.List;
public class TypeService {
TypeDao tDao=new TypeDao();
public List<Type> GetAllType()
{
List<Type> list=null;
try {
list=tDao.GetAllType();
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public Type selectTypeNameByID(int typeid)
{
Type type=null;
try {
type=tDao.selectTypeNameByID(typeid);
} catch (SQLException e) {
e.printStackTrace();
}
return type;
}
public Type select(int id) {
Type t=null;
try {
t = tDao.select(id);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return t;
}
public void insert(Type t) {
try {
tDao.insert(t);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void update(Type t) {
try {
tDao.update(t);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public boolean delete(int id) {
try {
tDao.delete(id);
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
}
OrderService
package service;
import dao.*;
import model.*;
import utils.*;
import java.sql.*;
import java.util.List;
public class OrderService {
private OrderDao oDao = new OrderDao();
public void addOrder(Order order) {
Connection con = null;
try {
con = DBUtil.getConnection();
con.setAutoCommit(false);
oDao.insertOrder(con, order);
int id = oDao.getLastInsertId(con);
order.setId(id);
for(OrderItem item : order.getItemMap().values()) {
oDao.insertOrderItem(con, item);
}
con.commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
if(con!=null)
try {
con.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
public List<Order> selectAll(int userid){
List<Order> list=null;
try {
list = oDao.selectAll(userid);
for(Order o :list) {
List<OrderItem> l = oDao.selectAllItem(o.getId());
o.setItemList(l);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
public Page getOrderPage(int status,int pageNumber) {
Page p = new Page();
p.setPageNumber(pageNumber);
int pageSize = 10;
int totalCount = 0;
try {
totalCount = oDao.getOrderCount(status);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
p.SetPageSizeAndTotalCount(pageSize, totalCount);
List list=null;
try {
list = oDao.selectOrderList(status, pageNumber, pageSize);
for(Order o :(List<Order>)list) {
List<OrderItem> l = oDao.selectAllItem(o.getId());
o.setItemList(l);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
p.setList(list);
return p;
}
public void updateStatus(int id,int status) {
try {
oDao.updateStatus(id, status);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete(int id) {
Connection con = null;
try {
con = DBUtil.getDataSource().getConnection();
con.setAutoCommit(false);
oDao.deleteOrderItem(con, id);
oDao.deleteOrder(con, id);
con.commit();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
if(con!=null)
try {
con.rollback();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
GoodsService
package service;
import dao.GoodsDao;
import model.Goods;
import model.Page;
import sun.nio.cs.ext.IBM037;
import javax.management.monitor.StringMonitorMBean;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
public class GoodsService {
private GoodsDao gDao=new GoodsDao();
public List<Map<String,Object>> getGoodsList(int recommendType) {
List<Map<String,Object>> list=null;
try {
list=gDao.getGoodsList(recommendType);
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public Map<String,Object> getScrollGood()
{
Map<String,Object> scroolGood=null;
try {
scroolGood=gDao.getScrollGood();
} catch (SQLException e) {
e.printStackTrace();
}
return scroolGood;
}
public List<Goods> selectGoodsByTypeID(int typeID, int pageNumber, int pageSize)
{
List<Goods> list=null;
try {
list=gDao.selectGoodsByTypeID(typeID,pageNumber,pageSize);
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public Page selectPageByTypeID(int typeID,int pageNumber)
{
Page p=new Page();
p.setPageNumber(pageNumber);
int totalCount=0;
try {
totalCount=gDao.getCountOfGoodsByTypeID(typeID);
} catch (SQLException e) {
e.printStackTrace();
}
p.SetPageSizeAndTotalCount(8,totalCount);
List list=null;
try {
list=gDao.selectGoodsByTypeID(typeID,pageNumber,8);
} catch (SQLException e) {
e.printStackTrace();
}
p.setList(list);
return p;
}
public Page getGoodsRecommendPage(int type,int pageNumber) {
Page p = new Page();
p.setPageNumber(pageNumber);
int totalCount = 0;
try {
totalCount = gDao.getRecommendCountOfGoodsByTypeID(type);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
p.SetPageSizeAndTotalCount(8, totalCount);
List list=null;
try {
list = gDao.selectGoodsbyRecommend(type, pageNumber, 8);
for(Goods g : (List<Goods>)list) {
g.setScroll(gDao.isScroll(g));
g.setHot(gDao.isHot(g));
g.setNew(gDao.isNew(g));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
p.setList(list);
return p;
}
public Goods getGoodsById(int id) {
Goods g=null;
try {
g = gDao.getGoodsById(id);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return g;
}
public Page getSearchGoodsPage(String keyword, int pageNumber) {
Page p = new Page();
p.setPageNumber(pageNumber);
int totalCount = 0;
try {
// totalCount = gDao.getGoodsCount(typeId);
totalCount = gDao.getSearchCount(keyword);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
p.SetPageSizeAndTotalCount(8, totalCount);
List list=null;
try {
// list = gDao.selectGoods(keyword, pageNo, 8);
list = gDao.selectSearchGoods(keyword,pageNumber,8);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
p.setList(list);
return p;
}
public void addRecommend(int id,int type) {
try {
gDao.addRecommend(id, type);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void removeRecommend(int id,int type) {
try {
gDao.removeRecommend(id, type);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void insert(Goods goods) {
try {
gDao.insert(goods);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void update(Goods goods) {
try {
gDao.update(goods);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete(int id) {
try {
gDao.delete(id);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
UserDao
package dao;
import model.User;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import utils.DBUtil;
import java.sql.SQLException;
import java.util.List;
public class UserDao {
public void addUser(User user) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "insert into user(username,email,password,name,phone,address,isadmin,isvalidate) values(?,?,?,?,?,?,?,?)";
r.update(sql,user.getUsername(),user.getEmail(),user.getPassword(),user.getName(),user.getPhone(),user.getAddress(),user.isIsadmin(),user.isIsvalidate());
}
public boolean isUsernameExist(String username) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select * from user where username = ?";
User u = r.query(sql, new BeanHandler<User>(User.class),username);
if(u==null) {
return false;
}else {
return true;
}
}
public boolean isEmailExist(String email) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select * from user where email = ?";
User u = r.query(sql, new BeanHandler<User>(User.class),email);
if(u==null) {
return false;
}else {
return true;
}
}
public User selectByUsernamePassword(String username,String password) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select * from user where username=? and password=?";
return r.query(sql, new BeanHandler<User>(User.class),username,password);
}
public User selectByEmailPassword(String email,String password) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select * from user where email=? and password=?";
return r.query(sql, new BeanHandler<User>(User.class),email,password);
}
public User selectById(int id) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select * from user where id=?";
return r.query(sql, new BeanHandler<User>(User.class),id);
}
public void updateUserAddress(User user) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql ="update user set name = ?,phone=?,address=? where id = ?";
r.update(sql,user.getName(),user.getPhone(),user.getAddress(),user.getId());
}
public void updatePwd(User user) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql ="update user set password = ? where id = ?";
r.update(sql,user.getPassword(),user.getId());
}
public int selectUserCount() throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select count(*) from user";
return r.query(sql, new ScalarHandler<Long>()).intValue();
}
public List selectUserList(int pageNo, int pageSize) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select * from user limit ?,?";
return r.query(sql, new BeanListHandler<User>(User.class), (pageNo-1)*pageSize,pageSize );
}
public void delete(int id) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "delete from user where id = ?";
r.update(sql,id);
}
}
如果也想学习本系统,下面领取。关注并回复:047jsp