作者主页:夜未央5788
简介: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_shenxian_shop/ 登录 注:tomcat中配置项目路径必须为jsp_shenxian_shop,否则会有异常;
用户账号/密码:user/123456
管理员账号/密码:admin/admin
运行截图
前台界面
后台界面
相关代码
GoodsDao
package dao;
import javafx.scene.control.ScrollPane;
import model.Goods;
import model.Recommend;
import org.apache.commons.dbutils.*;
import org.apache.commons.dbutils.handlers.*;
import utils.DBUtil;
import java.sql.SQLException;
import java.util.*;
public class GoodsDao {
//select g.id,g.name,g.cover,g.price,t.name typename from recommend r,goods g,type t where type=2 and r.goods_id=g.id and g.type_id=t.id
public List<Map<String,Object>> getGoodsList(int recommendType) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql="select g.id,g.name,g.cover,g.price,t.name typename from recommend r,goods g,type t where type=? and r.goods_id=g.id and g.type_id=t.id";
return r.query(sql, new MapListHandler(),recommendType);
}
public Map<String,Object> getScrollGood()throws SQLException{
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql="select g.id,g.name,g.cover,g.price from recommend r,goods g where type=1 and r.goods_id=g.id";
return r.query(sql, new MapHandler());
}
public List<Goods> selectGoodsByTypeID(int typeID,int pageNumber,int pageSize) throws SQLException {
if(typeID==0)
{
String sql="select * from goods limit ? , ?";
QueryRunner r=new QueryRunner(DBUtil.getDataSource());
return r.query(sql,new BeanListHandler<Goods>(Goods.class),(pageNumber-1)*pageSize,pageSize);
}
else
{
String sql="select * from goods where type_id=? limit ? , ?";
QueryRunner r=new QueryRunner(DBUtil.getDataSource());
return r.query(sql,new BeanListHandler<Goods>(Goods.class),typeID,(pageNumber-1)*pageSize,pageSize);
}
}
public int getCountOfGoodsByTypeID(int typeID) throws SQLException {
String sql="";
QueryRunner r=new QueryRunner(DBUtil.getDataSource());
if(typeID==0)
{
sql="select count(*) from goods";
return r.query(sql,new ScalarHandler<Long>()).intValue();
}
else
{
sql="select count(*) from goods where type_id=?";
return r.query(sql,new ScalarHandler<Long>(),typeID).intValue();
}
}
public List<Goods> selectGoodsbyRecommend(int type,int pageNumber,int pageSize) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
if(type==0) {
//当不添加推荐类型限制的时候
String sql = " select g.id,g.name,g.cover,g.image1,g.image2,g.intro,g.price,g.stock,t.name typename from goods g,type t where g.type_id=t.id order by g.id limit ?,?";
return r.query(sql, new BeanListHandler<Goods>(Goods.class),(pageNumber-1)*pageSize,pageSize);
}
String sql = " select g.id,g.name,g.cover,g.image1,g.image2,g.intro,g.price,g.stock,t.name typename from goods g,recommend r,type t where g.id=r.goods_id and g.type_id=t.id and r.type=? order by g.id limit ?,?";
return r.query(sql, new BeanListHandler<Goods>(Goods.class),type,(pageNumber-1)*pageSize,pageSize);
}
public int getRecommendCountOfGoodsByTypeID(int type) throws SQLException {
if(type==0)return getCountOfGoodsByTypeID(0);
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select count(*) from recommend where type=?";
return r.query(sql, new ScalarHandler<Long>(),type).intValue();
}
public Goods getGoodsById(int id) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select g.id,g.name,g.cover,g.image1,g.image2,g.price,g.intro,g.stock,t.id typeid,t.name typename from goods g,type t where g.id = ? and g.type_id=t.id";
return r.query(sql, new BeanHandler<Goods>(Goods.class),id);
}
public int getSearchCount(String keyword) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select count(*) from goods where name like ?";
return r.query(sql, new ScalarHandler<Long>(),"%"+keyword+"%").intValue();
}
public List<Goods> selectSearchGoods(String keyword, int pageNumber, int pageSize) throws SQLException{
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select * from goods where name like ? limit ?,?";
return r.query(sql, new BeanListHandler<Goods>(Goods.class),"%"+keyword+"%",(pageNumber-1)*pageSize,pageSize);
}
public boolean isScroll(Goods g) throws SQLException {
return isRecommend(g, 1);
}
public boolean isHot(Goods g) throws SQLException {
return isRecommend(g, 2);
}
public boolean isNew(Goods g) throws SQLException {
return isRecommend(g, 3);
}
private boolean isRecommend(Goods g,int type) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select * from recommend where type=? and goods_id=?";
Recommend recommend = r.query(sql, new BeanHandler<Recommend>(Recommend.class),type,g.getId());
if(recommend==null) {
return false;
}else {
return true;
}
}
public void addRecommend(int id,int type) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "insert into recommend(type,goods_id) values(?,?)";
r.update(sql,type,id);
}
public void removeRecommend(int id,int type) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "delete from recommend where type=? and goods_id=?";
r.update(sql,type,id);
}
public void insert(Goods g) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "insert into goods(name,cover,image1,image2,price,intro,stock,type_id) values(?,?,?,?,?,?,?,?)";
r.update(sql,g.getName(),g.getCover(),g.getImage1(),g.getImage2(),g.getPrice(),g.getIntro(),g.getStock(),g.getType().getId());
}
public void update(Goods g) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "update goods set name=?,cover=?,image1=?,image2=?,price=?,intro=?,stock=?,type_id=? where id=?";
r.update(sql,g.getName(),g.getCover(),g.getImage1(),g.getImage2(),g.getPrice(),g.getIntro(),g.getStock(),g.getType().getId(),g.getId());
}
public void delete(int id) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "delete from goods where id = ?";
r.update(sql,id);
}
}
OrderDao
package dao;
import model.*;
import org.apache.commons.dbutils.*;
import utils.*;
import java.math.*;
import java.sql.*;
import java.util.*;
import org.apache.commons.dbutils.handlers.*;
public class OrderDao {
public void insertOrder(Connection con, Order order) throws SQLException {
QueryRunner r = new QueryRunner();
String sql = "insert into `order`(total,amount,status,paytype,name,phone,address,datetime,user_id) values(?,?,?,?,?,?,?,?,?)";
r.update(con,sql,
order.getTotal(),order.getAmount(),order.getStatus(),
order.getPaytype(),order.getName(),order.getPhone(),
order.getAddress(),order.getDatetime(),order.getUser().getId() );
}
public int getLastInsertId(Connection con) throws SQLException {
QueryRunner r = new QueryRunner();
String sql = "select last_insert_id()";
BigInteger bi = r.query(con, sql,new ScalarHandler<BigInteger>());
return Integer.parseInt(bi.toString());
}
public void insertOrderItem(Connection con, OrderItem item) throws SQLException {
QueryRunner r = new QueryRunner();
String sql ="insert into orderitem(price,amount,goods_id,order_id) values(?,?,?,?)";
r.update(con,sql,item.getPrice(),item.getAmount(),item.getGoods().getId(),item.getOrder().getId());
}
public List<Order> selectAll(int userid) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select * from `order` where user_id=? order by datetime desc";
return r.query(sql, new BeanListHandler<Order>(Order.class),userid);
}
public List<OrderItem> selectAllItem(int orderid) throws SQLException{
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "select i.id,i.price,i.amount,g.name from orderitem i,goods g where order_id=? and i.goods_id=g.id";
return r.query(sql, new BeanListHandler<OrderItem>(OrderItem.class),orderid);
}
public int getOrderCount(int status) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql = "";
if(status==0) {
sql = "select count(*) from `order`";
return r.query(sql, new ScalarHandler<Long>()).intValue();
}else {
sql = "select count(*) from `order` where status=?";
return r.query(sql, new ScalarHandler<Long>(),status).intValue();
}
}
public List<Order> selectOrderList(int status, int pageNumber, int pageSize) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
if(status==0) {
String sql = "select o.id,o.total,o.amount,o.status,o.paytype,o.name,o.phone,o.address,o.datetime,u.username from `order` o,user u where o.user_id=u.id order by o.datetime desc limit ?,?";
return r.query(sql, new BeanListHandler<Order>(Order.class), (pageNumber-1)*pageSize,pageSize );
}else {
String sql = "select o.id,o.total,o.amount,o.status,o.paytype,o.name,o.phone,o.address,o.datetime,u.username from `order` o,user u where o.user_id=u.id and o.status=? order by o.datetime desc limit ?,?";
return r.query(sql, new BeanListHandler<Order>(Order.class),status, (pageNumber-1)*pageSize,pageSize );
}
}
public void updateStatus(int id,int status) throws SQLException {
QueryRunner r = new QueryRunner(DBUtil.getDataSource());
String sql ="update `order` set status=? where id = ?";
r.update(sql,status,id);
}
public void deleteOrder(Connection con ,int id) throws SQLException {
QueryRunner r = new QueryRunner();
String sql ="delete from `order` where id = ?";
r.update(con,sql,id);
}
public void deleteOrderItem(Connection con ,int id) throws SQLException {
QueryRunner r = new QueryRunner();
String sql ="delete from orderitem where order_id=?";
r.update(con,sql,id);
}
}
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);
}
}
如果也想学习本系统,下面领取。关注并回复:044jsp