作者主页:夜未央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项目:否;

技术栈

1. 后端:Spring+SpringMVC+Mybatis

2. 前端:JSP+CSS+JavaScript+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;

3. 将项目中springmvc-servlet.xml配置文件中的数据库配置改为自己的配置;

4. 运行项目,在浏览器中输入http://localhost:8080/ 登录
用户账号/密码: user/123456
管理员账号/密码:admin/admin

运行截图

前台界面 

后台界面

代码相关

管理端控制器

//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/admin", produces = "text/plain;charset=utf-8")
public class AdminAction extends BaseAction {// 注入Service 由于标签的存在 所以不需要getter setter@Autowired@Resourceprivate AdminService adminService;// 管理员登录 1 验证用户名是否存在 2 验证密码是否正确@RequestMapping("login.action")public String login() {String username = this.getRequest().getParameter("username");String password = this.getRequest().getParameter("password");Admin adminEntity = new Admin();adminEntity.setUsername(username);List<Admin> adminlist = this.adminService.getAdminByCond(adminEntity);if (adminlist.size() == 0) {this.getRequest().setAttribute("message", "用户名不存在");return "admin/index";} else {Admin admin = adminlist.get(0);if (password.equals(admin.getPassword())) {this.getSession().setAttribute("adminid", admin.getAdminid());this.getSession().setAttribute("adminname", admin.getUsername());this.getSession().setAttribute("realname", admin.getRealname());} else {this.getRequest().setAttribute("message", "密码错误");return "admin/index";}}return "admin/main";}// 修改密码@RequestMapping("editpwd.action")public String editpwd() {String adminid = (String) this.getSession().getAttribute("adminid");String password = this.getRequest().getParameter("password");String repassword = this.getRequest().getParameter("repassword");Admin admin = this.adminService.getAdminById(adminid);if (password.equals(admin.getPassword())) {admin.setPassword(repassword);this.adminService.updateAdmin(admin);} else {this.getRequest().setAttribute("message", "旧密码错误");}return "admin/editpwd";}// 管理员退出登录@RequestMapping("exit.action")public String exit() {this.getSession().removeAttribute("adminid");this.getSession().removeAttribute("adminname");this.getSession().removeAttribute("realname");return "admin/index";}// 准备添加数据@RequestMapping("createAdmin.action")public String createAdmin() {return "admin/addadmin";}// 添加数据@RequestMapping("addAdmin.action")public String addAdmin(Admin admin) {admin.setAddtime(VeDate.getStringDateShort());this.adminService.insertAdmin(admin);return "redirect:/admin/createAdmin.action";}// 通过主键删除数据@RequestMapping("deleteAdmin.action")public String deleteAdmin(String id) {this.adminService.deleteAdmin(id);return "redirect:/admin/getAllAdmin.action";}// 批量删除数据@RequestMapping("deleteAdminByIds.action")public String deleteAdminByIds() {String[] ids = this.getRequest().getParameterValues("adminid");for (String adminid : ids) {this.adminService.deleteAdmin(adminid);}return "redirect:/admin/getAllAdmin.action";}// 更新数据@RequestMapping("updateAdmin.action")public String updateAdmin(Admin admin) {this.adminService.updateAdmin(admin);return "redirect:/admin/getAllAdmin.action";}// 显示全部数据@RequestMapping("getAllAdmin.action")public String getAllAdmin(String number) {List<Admin> adminList = this.adminService.getAllAdmin();PageHelper.getPage(adminList, "admin", null, null, 10, number, this.getRequest(), null);return "admin/listadmin";}// 按条件查询数据 (模糊查询)@RequestMapping("queryAdminByCond.action")public String queryAdminByCond(String cond, String name, String number) {Admin admin = new Admin();if (cond != null) {if ("username".equals(cond)) {admin.setUsername(name);}if ("password".equals(cond)) {admin.setPassword(name);}if ("realname".equals(cond)) {admin.setRealname(name);}if ("contact".equals(cond)) {admin.setContact(name);}if ("addtime".equals(cond)) {admin.setAddtime(name);}}List<String> nameList = new ArrayList<String>();List<String> valueList = new ArrayList<String>();nameList.add(cond);valueList.add(name);PageHelper.getPage(this.adminService.getAdminByLike(admin), "admin", nameList, valueList, 10, number, this.getRequest(), "query");name = null;cond = null;return "admin/queryadmin";}// 按主键查询数据@RequestMapping("getAdminById.action")public String getAdminById(String id) {Admin admin = this.adminService.getAdminById(id);this.getRequest().setAttribute("admin", admin);return "admin/editadmin";}public AdminService getAdminService() {return adminService;}public void setAdminService(AdminService adminService) {this.adminService = adminService;}}

订单管理控制器

//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/orders" , produces = "text/plain;charset=utf-8")
public class OrdersAction extends BaseAction {
// 注入Service 由于标签的存在 所以不需要getter setter
@Autowired
@Resource
private OrdersService ordersService;
@Autowired
@Resource
private UsersService usersService;// 准备添加数据
@RequestMapping("createOrders.action")
public String createOrders() {
List<Users> usersList = this.usersService.getAllUsers();
this.getRequest().setAttribute("usersList", usersList);
return "admin/addorders";
}
// 添加数据
@RequestMapping("addOrders.action")
public String addOrders(Orders orders) {
this.ordersService.insertOrders(orders);
return "redirect:/orders/createOrders.action";
}// 通过主键删除数据
@RequestMapping("deleteOrders.action")
public String deleteOrders(String id) {
this.ordersService.deleteOrders(id);
return "redirect:/orders/getAllOrders.action";
}// 批量删除数据
@RequestMapping("deleteOrdersByIds.action")
public String deleteOrdersByIds() {
String[] ids = this.getRequest().getParameterValues("ordersid");
for (String ordersid : ids) {
this.ordersService.deleteOrders(ordersid);
}
return "redirect:/orders/getAllOrders.action";
}// 更新数据
@RequestMapping("updateOrders.action")
public String updateOrders(Orders orders) {
this.ordersService.updateOrders(orders);
return "redirect:/orders/getAllOrders.action";
}
// 显示全部数据
@RequestMapping("getAllOrders.action")
public String getAllOrders(String number) {
List<Orders> ordersList = this.ordersService.getAllOrders();
PageHelper.getPage(ordersList, "orders", null, null, 10, number, this.getRequest(), null);
return "admin/listorders";
}// 按条件查询数据 (模糊查询)
@RequestMapping("queryOrdersByCond.action")
public String queryOrdersByCond(String cond, String name, String number) {
Orders orders = new Orders();
if(cond != null){
if ("ordercode".equals(cond)) {
orders.setOrdercode(name);
}
if ("username".equals(cond)) {
orders.setUsername(name);
}
if ("total".equals(cond)) {
orders.setTotal(name);
}
if ("status".equals(cond)) {
orders.setStatus(name);
}
if ("addtime".equals(cond)) {
orders.setAddtime(name);
}
}List<String> nameList = new ArrayList<String>();
List<String> valueList = new ArrayList<String>();
nameList.add(cond);
valueList.add(name);
PageHelper.getPage(this.ordersService.getOrdersByLike(orders), "orders", nameList, valueList, 10, number, this.getRequest(), "query");
name = null;
cond = null;
return "admin/queryorders";
}// 按主键查询数据
@RequestMapping("getOrdersById.action")
public String getOrdersById(String id ) {
Orders orders = this.ordersService.getOrdersById(id);
this.getRequest().setAttribute("orders", orders);
List<Users> usersList = this.usersService.getAllUsers();
this.getRequest().setAttribute("usersList", usersList);
return "admin/editorders";
}public OrdersService getOrdersService() { return ordersService; }public void setOrdersService(OrdersService ordersService) { this.ordersService = ordersService; }}

主题管理控制器

//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/topic" , produces = "text/plain;charset=utf-8")
public class TopicAction extends BaseAction {// 注入Service 由于标签的存在 所以不需要getter setter@Autowired@Resourceprivate TopicService topicService;@Autowired@Resourceprivate UsersService usersService;@Autowired@Resourceprivate JiancaiService jiancaiService;// 准备添加数据@RequestMapping("createTopic.action")public String createTopic() {List<Users> usersList = this.usersService.getAllUsers();this.getRequest().setAttribute("usersList", usersList);List<Jiancai> jiancaiList = this.jiancaiService.getAllJiancai();this.getRequest().setAttribute("jiancaiList", jiancaiList);return "admin/addtopic";}// 添加数据@RequestMapping("addTopic.action")public String addTopic(Topic topic) {this.topicService.insertTopic(topic);return "redirect:/topic/createTopic.action";}// 通过主键删除数据@RequestMapping("deleteTopic.action")public String deleteTopic(String id) {this.topicService.deleteTopic(id);return "redirect:/topic/getAllTopic.action";}// 批量删除数据@RequestMapping("deleteTopicByIds.action")public String deleteTopicByIds() {String[] ids = this.getRequest().getParameterValues("topicid");for (String topicid : ids) {this.topicService.deleteTopic(topicid);}return "redirect:/topic/getAllTopic.action";}// 更新数据@RequestMapping("updateTopic.action")public String updateTopic(Topic topic) {this.topicService.updateTopic(topic);return "redirect:/topic/getAllTopic.action";}// 显示全部数据@RequestMapping("getAllTopic.action")public String getAllTopic(String number) {List<Topic> topicList = this.topicService.getAllTopic();PageHelper.getPage(topicList, "topic", null, null, 10, number, this.getRequest(), null);return "admin/listtopic";}// 按条件查询数据 (模糊查询)@RequestMapping("queryTopicByCond.action")public String queryTopicByCond(String cond, String name, String number) {Topic topic = new Topic();if(cond != null){if ("username".equals(cond)) {topic.setUsername(name);}if ("jiancainame".equals(cond)) {topic.setJiancainame(name);}if ("num".equals(cond)) {topic.setNum(name);}if ("contents".equals(cond)) {topic.setContents(name);}if ("addtime".equals(cond)) {topic.setAddtime(name);}}List<String> nameList = new ArrayList<String>();List<String> valueList = new ArrayList<String>();nameList.add(cond);valueList.add(name);PageHelper.getPage(this.topicService.getTopicByLike(topic), "topic", nameList, valueList, 10, number, this.getRequest(), "query");name = null;cond = null;return "admin/querytopic";}// 按主键查询数据@RequestMapping("getTopicById.action")public String getTopicById(String id ) {Topic topic = this.topicService.getTopicById(id);this.getRequest().setAttribute("topic", topic);List<Users> usersList = this.usersService.getAllUsers();this.getRequest().setAttribute("usersList", usersList);List<Jiancai> jiancaiList = this.jiancaiService.getAllJiancai();this.getRequest().setAttribute("jiancaiList", jiancaiList);return "admin/edittopic";}public TopicService getTopicService() { return topicService; }public void setTopicService(TopicService topicService) { this.topicService = topicService; }}

如果也想学习本系统,下面领取。关注并回复:158ssm

Java项目:SSM水果蔬菜商城批发网站相关推荐

  1. 基于SSM水果蔬菜商城批发网站|电商购物系统

    <SSM水果蔬菜商城批发网站>该项目采用的技术实现如下:HTML+CSS+JavaScript+jsp+Spring+SpringMVC+Mybatis+Mysql数据库+Tomcat服务 ...

  2. SSM水果蔬菜商城批发网站

    <SSM水果蔬菜商城批发网站>该项目采用的技术实现如下:HTML+CSS+JavaScript+jsp+Spring+SpringMVC+Mybatis+Mysql数据库+Tomcat服务 ...

  3. Java项目源码下载SSM水果蔬菜商城批发网站|电商购物系统

  4. 计算机毕业论文选题SSM水果蔬菜商城批发网站|电商购物系统[包运行成功]

  5. 基于java+jsp+ssm水果蔬菜销售系统-计算机毕业设计

    项目介绍 生活中,人们买水果或者蔬菜都是去菜市场买,因为那里是卖水果.蔬菜的聚集地.农商们把水果.蔬菜从远处运到那里,进行销售.但是这种销售方式的不足在于每次运输的数量是有限的,并且运输过程中也影响了 ...

  6. 基于java+jsp+ssm水果蔬菜销售系统

    生活中,人们买水果或者蔬菜都是去菜市场买,因为那里是卖水果.蔬菜的聚集地.农商们把水果.蔬菜从远处运到那里,进行销售.但是这种销售方式的不足在于每次运输的数量是有限的,并且运输过程中也影响了水果.蔬菜 ...

  7. 基于java+jsp+ssm水果蔬菜销售系统——计算机毕业设计

    生活中,人们买水果或者蔬菜都是去菜市场买,因为那里是卖水果.蔬菜的聚集地.农商们把水果.蔬菜从远处运到那里,进行销售.但是这种销售方式的不足在于每次运输的数量是有限的,并且运输过程中也影响了水果.蔬菜 ...

  8. Java项目:网上水果蔬菜项目系统设计和实现(java+springboot+mysql+ssm)

    源码获取:博客首页 "资源" 里下载! 主主要技术:java  springmvc  springboot mybatis mysql jquery layui 等技术要模块设计如 ...

  9. Java项目:网上水果超市商城设计和实现(java+SSM+springboot+redis)

    源码获取:本博客首页 "资源" 处下载! 主要技术实现:spring. springmvc. redis. springboot.  mybatis .session. jquer ...

最新文章

  1. 2021年中国工业互联网安全大赛核能行业赛道writeup之鱿鱼游戏
  2. 解决了一个小问题 好像把逻辑有点复杂
  3. codeforces CF438D The Child and Sequence 线段树
  4. 802. 找到最终的安全状态
  5. 粒子群优化算法(Particle Swarm Optimization)的 Matlab(R2018b)代码实现
  6. matlab样条插值如何用,三次样条插值matlab实现
  7. sql 存储过程 并发测试_SQL单元测试模拟存储过程
  8. BLE - LINK LAYER SPECIFICATION
  9. 有关于Java中JFrame方法的基本操作
  10. 97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作
  11. IDEA插件系列(45):UUID Generator插件——UUID生成器
  12. lammps数据后处理:Python ovito 计算输出位错线长度
  13. 在C#中将Base64编码的WOFF字符串转OTF字体并动态加载
  14. 夜神模拟器7.12 安装 xposed
  15. Win系统 - N卡如何组建三联屏?
  16. 如何用开源软件办一场技术大会?
  17. Pigeon发布流程
  18. html自动补位的功能,js中位数不足自动补位扩展padLeft、padRight实现代码
  19. 【数据结构课程设计】基于商和余数的快速排序
  20. download sources报错: Cannot connect to the Maven process. Try again later. If the problem persists

热门文章

  1. 机器人锤石下路组合_英雄联盟下路对线,锤石克制什么下路组合,怕什么下路组合,为什么?...
  2. 【软件】一个简单文件批量重命名工具,支持正则替换
  3. 解除隐藏文件cmd命令_如何用cmd命令隐藏电脑上的文件?
  4. 微信小程序 满意度调查问卷答题类小程序实现
  5. asift matlab,周晓
  6. VS2010 MFC TeeChart控件命名
  7. flask-day3:模板引擎jinja2|JsonResponse|页面url_for|
  8. 计算机的小结怎么写,计算机专业技术个人小结怎么写
  9. python之组合数据
  10. 喇叭-耳机-功放-音响