手写框架的外卖订餐管理系统

 《个人级软件开发课程设计》作业

题目 手写框架的外卖订餐管理系统                   

 

目录

1设计流程... 2

1.1创作前思路:... 2

1.2设计思路流程图... 3

2创作的流程... 3

3.数据库设计... 8

4.功能模块... 10

5.运行结果... 10

6.总结和展望... 19

6.1系统总结... 19

6.2展望... 20

1设计流程

1.1创作前思路:

  1. 创建一个 Spring 配置文件(例如,spring-config.xml)用于配置扫描包属性和数据库信息。在该文件中,可以使用自定义的命名空间来定义 xsd 文件和进行属性配置。
  2. 手写一个 Spring 的 xsd 文件,定义自定义的命名空间和相应的元素和属性。在 xsd 文件中,定义包属性和数据库信息的配置结构。
  3. 在 Spring 配置文件中引入手写的 xsd 文件,并使用相应的元素和属性进行配置。例如,使用 <myapp:package-scan> 元素来定义扫描包的属性配置,使用 <myapp:database> 元素来配置数据库信息。
  4. 创建一个 Spring MVC 配置文件(例如,springmvc-config.xml)用于配置扫描包属性。在该文件中,可以使用自定义的命名空间来定义 xsd 文件和进行属性配置。
  5. 手写一个 Spring MVC 的 xsd 文件,定义自定义的命名空间和相应的元素和属性。在 xsd 文件中,定义包属性的配置结构。
  6. 在 Spring MVC 配置文件中引入手写的 xsd 文件,并使用相应的元素和属性进行配置。例如,使用 <myapp:package-scan> 元素来定义扫描包的属性配置。
  7. 创建一个 MyBatis 的 DTO(Data Transfer Object)类,并定义属性以映射数据库表的字段。手写一个 MyBatis 的映射文件(例如,example.xml),用于编写 SQL 查询和其他数据库操作。
  8. 将所有配置文件放入资源包(例如,resources 文件夹),确保文件路径正确。
  9. 创建一个监听器类(例如,ListenerServlet),实现相关接口并定义属性,用于解析和加载配置文件,获取属性和完成数据库的加载。
  10. 在 web.xml 文件中指定配置文件路径,以及监听器和分发器的类路径。在 <context-param> 元素中使用 <param-value> 指定 Spring 和 Spring MVC 的配置文件路径。
  11. 根据监听器类的属性和分发器属性,进行配置文件的解析和书写,以获取属性的相关方法以及数据库的增删改查方法设置。可以使用动态代理来实现相关功能。
  12. 完善监听器类的属性获取过程,确保正确加载属性,以及完成数据库的加载,例如建立数据库连接。
  13. 完善分发器,包括属性的获取和数据注入,使用相关路径查找和返回到控制器参数的处理逻辑。

1.2设计思路流程图

2创作的流程

①我用的是tomcat服务器,想法是首先启动tomcat服务器

其中web.xml 是 Java Web 应用程序中的一个部署描述文件,用于配置和定制 Web 应用的行为。

以下是几个关键配置信息:

  1. <display-name>:指定应用程序的显示名称为 “takeout_restaurant”。
  2. <welcome-file-list>:定义了在访问应用程序根目录时要加载的默认文件。在这里,“login.jsp” 被指定为默认的欢迎文件。
  3. <context-param>:指定一个上下文参数,它可以在整个应用程序中使用。在这里,“springConfig” 被设置为 “spring/spring-config.xml”,它指定了 Spring 配置文件的位置。
  4. <listener>:定义了一个监听器,用于监听应用程序生命周期事件。在这里,“com.hs.homework2.config.ListenerServlet” 被指定为监听器类,它会在应用程序启动和关闭时执行相应的逻辑。
  5. <servlet>:配置了一个 Servlet 组件。Servlet 实质上是处理 HTTP 请求和生成响应的 Java 类。在这里,“com.hs.homework2.config.DispatcherServlet” 被作为 Servlet 类指定,并且它带有一个名为 “dis” 的名称。这个 Servlet 还有一个初始化参数 “springMvcConfig”,它指定了 Spring MVC 配置文件的位置。
  6. <servlet-mapping>:指定了 Servlet 的映射规则。在这里,“dis” Servlet 被映射到根路径 “/”,这意味着当用户访问应用程序的任何 URL 时,都会使用 “dis” Servlet 来处理该请求。

通过这样的配置,应用程序能够根据用户的请求将其路由到相应的 Servlet,并使用 Spring 框架进行处理和管理。

②在监听类中,进行了spring文件的解析,包括要要扫描的包,数据库相关的信息;也进行了数据库的加载可启动。

对于分发器的类的相关属性

初始化时,需要获取的属性的数据,主要是通过springmvc的数据进行扫包

③然后在其service方法,显示找到对应的controller上的路径,我进行通过反射机制进行另外实例化service类并注入到的注入controller类的属性字段中。

其中传的参数是HttpServletRequest request 到controller中。

因为我更改了动态代理类

和修改了jdbc类

所以我将@Select注解作为“执行sql”语句的注解,而不是查询sql语句。

④进行页面交互

3.数据库设计

admin表:

      id: 主键,管理员ID,整数类型,长度为11

      name: 管理员姓名,字符串类型,长度为60

      pwd: 管理员密码,字符串类型,长度为60

      authority: 管理员权限,字符串类型,长度为60

menu_b表:

      id: 菜品ID,字符串类型,长度为30

      im: 菜品图片路径,字符串类型,长度为300

      name: 菜品名称,字符串类型,长度为150

      price: 菜品价格,双精度浮点数类型。

      stock: 菜品库存,整数类型,长度为11

user表:

      id: 用户ID,主键,整数类型,长度为11

      name: 用户名,字符串类型,长度为180

      pwd: 用户密码,字符串类型,长度为180

      realname: 用户真实姓名,字符串类型,长度为180

      sex: 用户性别,字符串类型,长度为36

      age: 用户年龄,整数类型,长度为4

      card: 用户身份证号,字符串类型,长度为162

      address: 用户地址,字符串类型,长度为900

      phone: 用户电话号码,字符串类型,长度为117

      email: 用户电子邮箱,字符串类型,长度为180

      code: 用户邮政编码,字符串类型,长度为135

      type: 用户类型,字符串类型,长度为216

information表:

      id: 信息ID,字符串类型,长度为90

      detail: 信息详情,字符串类型,长度为900

      sale: 销售数量,整数类型,长度为11

4.功能模块

5.运行结果

5.1登录

5.2进入应用界面

5.3增加

当输入的是存在的编号时,添加不成功

当输入的是不存在的编号时,添加成功

点击下图的删除按钮:

删除成功

点击下图的修改按钮:

修改成功

查询普通管理员成功

点击管理菜单信息,进入下面的页面

点击删除按钮:

删除成功

进行添加菜单条目

添加成功

点击查询过按钮,查询成功

点击修改按钮

进入修改界面

点击修改按钮

修改成功

点击查看用户信息

点击菜品详情

点击退出登录

进入登录界面

6.总结和展望

6.1系统总结

在过去的三天里,我专注于编写代码,其中包括订单系统的一部分。这段时间是系统开发过程中的关键阶段,我努力实现功能和提升系统性能。我将详细总结这段时间的工作,并展望未来的发展方向。

首先,总结这三天的工作。在系统开发过程中,我注重以下几个方面的工作:

功能实现:我致力于开发订单系统的核心功能,如普通管理员用户应用(包括增删改查)、超级管理员应用(包括增删改查)、菜单管理(包括增删改查)。通过编写代码和逻辑实现,我成功地搭建了一个基本的订单系统框架,并且这些功能能够顺利运行。

数据管理:订单系统中的数据管理是非常重要的一部分。我设计和实现了数据库结构,确保数据的存储和访问能够高效和可靠。我采用了适当的数据模型和关系,使用合适的数据库引擎,并编写了相关的查询和操作代码,确保数据的一致性和完整性。

用户界面:为了提供良好的用户体验,我花费时间设计和开发了用户界面。我关注界面的易用性和美观性,并进行了用户界面的迭代和优化。通过合理的布局、交互设计和视觉效果,我努力提高用户对订单系统的满意度。

6.2展望

接下来是未来的展望。虽然我已经取得了一些进展,但还有很多工作要做,为订单系统的发展带来更多价值:

功能扩展:在未来的开发中,我计划继续扩展订单系统的功能。例如,我打算增加配送追踪功能,让用户可以实时了解订单的送达情况。我还计划开发优惠券和活动管理等功能,以提供更多的促销和优惠方式,吸引更多用户使用系统。

性能优化:随着订单量的增加,系统性能将成为一个关键问题。为了应对高负载和快速响应的需求,我将进一步优化系统的性能。优化数据库查询、使用缓存技术、改进代码逻辑等方法将成为我提高系统性能的重要方向。

移动端适配:随着智能手机的普及,移动端订餐已经成为主流趋势。因此,我计划在未来的工作中优化订单系统的移动端适配,确保用户可以方便地在手机上使用系统。

数据分析和智能化:订单系统积累了大量的订单和用户数据。我计划开发数据分析和挖掘功能,以提取有价值的信息和洞察力。通过分析用户行为、订单偏好和趋势,我可以根据数据提供个性化推荐和定制的服务,提升用户体验和促进用户满意度。

安全加固:随着网络安全威胁的不断增加,我将继续加强订单系统的安全性。我将实施安全策略,包括加密用户数据、防范常见攻击、定期进行安全审计等措施,以保护用户信息和系统安全。

综上所述,这三天的工作为订单系统的开发奠定了基础,但仍然有很多机会和挑战等待我来抓住和应对。我将继续努力,不断优化和改进订单系统,以提供更好的用户体验和功能,满足用户的需求和期望。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值