👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频
1 、功能描述
电影订票管理系统9拥有两种角色
管理员:用户管理、电影类型管理、电影管理、订单管理、留言管理
用户:登录注册、购票、订单管理、查询等
1.1 背景描述
电影购票系统是一个基于网络的平台,旨在让用户能够方便快捷地选择和购买电影院的电影票。这一系统应运而生,主要是因为互联网技术的发展和人们对便利购票方式的需求。
随着互联网的普及和移动设备的普遍应用,人们渐渐习惯于使用手机或电脑完成日常活动,包括购物、订餐以及预订各种服务。因此,传统的电影票购买方式已经无法满足大众对便捷性和快捷性的需求。
电影购票系统通过提供在线选座、支付和取票等功能,使用户能够不再排队等候,而是通过几个简单的步骤就能轻松完成购票。此外,该系统还提供了电影信息、放映时间表、座位选择和价格比较等多种功能,让用户可以更好地了解并计划观影行程。
另外,对于电影院来说,电影购票系统也有助于提高客户满意度、提升销售效率,并且能够更好地管理座位资源和票务信息。
总的来说,电影购票系统的出现改变了传统的购票方式,为用户提供了更加便捷和高效的购票体验,同时也促进了电影院的数字化转型和业务发展。
2、项目技术
后端框架: Servlet
前端技术:jsp、css、JavaScript、JQuery
2.1 MVC
MVC(Model-View-Controller)框架是一种用于构建Web应用程序的软件架构模式。它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据逻辑,包括数据库交互、数据处理和业务规则。视图负责用户界面的呈现,将数据以易于理解的形式展示给用户。控制器充当中间人,接收用户输入并调用相应的模型和视图来完成用户请求。MVC框架使代码分离,提高了应用程序的可维护性和扩展性。开发人员可以独立地修改模型、视图或控制器,而不会影响其他部分。这种分离也有助于多人合作开发项目。MVC框架还促进了前后端的分离,使前端工程师和后端工程师能够更好地协同工作,从而提高了开发效率。
2.2 mysql
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
3、开发环境
- JAVA版本:JDK1.8(最佳)
- IDE类型:IDEA、Eclipse都可运行
- tomcat版本:Tomcat 7-10版本均可
- 数据库类型:MySql(5.7、8.x版本都可)
- maven项目:否
- 硬件环境:Windows
4、功能截图+视频演示+文档目录
4.1 登录
4.2 管理员模块
4.3 用户模块
4.4 文档目录
5 、核心代码实现
5.1 配置代码
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="com.mysql.cj.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/db_dingpiao?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true">
</property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="configLocation" value="classpath:hibernate.cfg.xml"/>
<property name="mappingResources">
<list>
<value>com/model/TAdmin.hbm.xml</value>
<value>com/model/TLiuyan.hbm.xml</value>
<value>com/model/TUser.hbm.xml</value>
<value>com/model/TCatelog.hbm.xml</value>
<value>com/model/TGoods.hbm.xml</value>
<value>com/model/TOrderItem.hbm.xml</value>
<value>com/model/TOrder.hbm.xml</value>
</list>
</property>
</bean>
<bean id="indexAction" class="com.action.indexAction" scope="prototype">
<property name="goodsDAO">
<ref bean="TGoodsDAO" />
</property>
<property name="orderItemDAO">
<ref bean="TOrderItemDAO" />
</property>
</bean>
<bean id="TUserDAO" class="com.dao.TUserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"></ref>
</property>
</bean>
<bean id="userAction" class="com.action.UserAction" scope="prototype">
<property name="userDAO">
<ref bean="TUserDAO" />
</property>
</bean>
<!-- 后台的登录 --><!-- 后台的登录 --><!-- 后台的登录 --><!-- 后台的登录 -->
<!-- 后台的登录 --><!-- 后台的登录 --><!-- 后台的登录 --><!-- 后台的登录 -->
<bean id="loginService" class="com.service.loginService">
<property name="adminDAO">
<ref bean="TAdminDAO" />
</property>
</bean>
<bean id="cartService" class="com.service.cartService">
<property name="goodsDAO">
<ref bean="TGoodsDAO" />
</property>
</bean>
<bean id="TAdminDAO" class="com.dao.TAdminDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="adminAction" class="com.action.adminAction" scope="prototype">
<property name="adminDAO">
<ref bean="TAdminDAO" />
</property>
</bean>
<bean id="TLiuyanDAO" class="com.dao.TLiuyanDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="liuyanAction" class="com.action.liuyanAction" scope="prototype">
<property name="liuyanDAO">
<ref bean="TLiuyanDAO" />
</property>
</bean>
<bean id="TCatelogDAO" class="com.dao.TCatelogDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="catelogService" class="com.service.catelogService">
<property name="catelogDAO">
<ref bean="TCatelogDAO" />
</property>
</bean>
<bean id="catelogAction" class="com.action.catelogAction" scope="prototype">
<property name="catelogDAO">
<ref bean="TCatelogDAO" />
</property>
<property name="goodsDAO">
<ref bean="TGoodsDAO" />
</property>
</bean>
<bean id="TGoodsDAO" class="com.dao.TGoodsDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="goodsAction" class="com.action.goodsAction" scope="prototype">
<property name="goodsDAO">
<ref bean="TGoodsDAO" />
</property>
<property name="catelogDAO">
<ref bean="TCatelogDAO" />
</property>
</bean>
<bean id="TOrderItemDAO" class="com.dao.TOrderItemDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="TOrderDAO" class="com.dao.TOrderDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="buyAction" class="com.action.buyAction" scope="prototype">
<property name="goodsDAO">
<ref bean="TGoodsDAO" />
</property>
<property name="orderDAO">
<ref bean="TOrderDAO" />
</property>
<property name="orderItemDAO">
<ref bean="TOrderItemDAO" />
</property>
</bean>
</beans>
5.2 其它核心代码
package com.action;
import java.util.List;
import java.util.Map;
import org.apache.struts2.ServletActionContext;
import com.dao.TUserDAO;
import com.model.TUser;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.util.Cart;
public class UserAction extends ActionSupport
{
private int userId;
private String userName;
private String userPw;
private String userRealname;
private String userAddress;
private String userSex;
private String userTel;
private String userEmail;
private String userQq;
private String newUserPw;
private String message;
private String path;
private TUserDAO userDAO;
public String userReg()
{
TUser user=new TUser();
user.setUserName(userName);
user.setUserPw(userPw);
user.setUserAddress(userAddress);
user.setUserTel(userTel);
user.setUserRealname(userRealname);
user.setUserEmail(userEmail);
user.setUserSex(userSex);
user.setUserQq(userQq);
user.setUserDel("no");
userDAO.save(user);
Map session= ServletActionContext.getContext().getSession();
session.put("user", user);
return "successAdd";
}
public String userEdit()
{
TUser user=userDAO.findById(userId);
user.setUserName(userName);
user.setUserPw(userPw);
user.setUserAddress(userAddress);
user.setUserTel(userTel);
user.setUserRealname(userRealname);
user.setUserEmail(userEmail);
user.setUserSex(userSex);
user.setUserQq(userQq);
user.setUserDel("no");
userDAO.attachDirty(user);
Map session= ServletActionContext.getContext().getSession();
session.put("user", user);
return "successAdd";
}
public String userLogin()
{
String sql="from TUser where userName=? and userPw=?";
Object[] con={userName,userPw};
List userList=userDAO.getHibernateTemplate().find(sql,con);
if(userList.size()==0)
{
this.setMessage("用户名或密码错误");
this.setPath("qiantai/default.jsp");
}
else
{
Map session= ServletActionContext.getContext().getSession();
TUser user=(TUser)userList.get(0);
session.put("user", user);
Cart cart=new Cart();
session.put("cart", cart);
this.setMessage("成功登录");
this.setPath("qiantai/default.jsp");
}
return "succeed";
}
public String userLogout()
{
Map session= ServletActionContext.getContext().getSession();
session.remove("user");
return ActionSupport.SUCCESS;
}
public String userDel()
{
TUser user=userDAO.findById(userId);
user.setUserDel("yes");
userDAO.attachDirty(user);
this.setMessage("删除成功");
this.setPath("userMana.action");
return "succeed";
}
public String userXinxi()
{
TUser user=userDAO.findById(userId);
Map request=(Map)ServletActionContext.getContext().get("request");
request.put("user", user);
return ActionSupport.SUCCESS;
}
public String userMana()
{
List userList=userDAO.findAll();
Map request=(Map)ServletActionContext.getContext().get("request");
request.put("userList", userList);
return ActionSupport.SUCCESS;
}
public String getUserAddress()
{
return userAddress;
}
public void setUserAddress(String userAddress)
{
this.userAddress = userAddress;
}
public String getUserEmail()
{
return userEmail;
}
public void setUserEmail(String userEmail)
{
this.userEmail = userEmail;
}
public String getUserQq()
{
return userQq;
}
public void setUserQq(String userQq)
{
this.userQq = userQq;
}
public String getUserRealname()
{
return userRealname;
}
public void setUserRealname(String userRealname)
{
this.userRealname = userRealname;
}
public String getUserSex()
{
return userSex;
}
public void setUserSex(String userSex)
{
this.userSex = userSex;
}
public String getUserTel()
{
return userTel;
}
public void setUserTel(String userTel)
{
this.userTel = userTel;
}
public int getUserId()
{
return userId;
}
public void setUserId(int userId)
{
this.userId = userId;
}
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public TUserDAO getUserDAO()
{
return userDAO;
}
public String getMessage()
{
return message;
}
public String getNewUserPw()
{
return newUserPw;
}
public void setNewUserPw(String newUserPw)
{
this.newUserPw = newUserPw;
}
public void setMessage(String message)
{
this.message = message;
}
public String getPath()
{
return path;
}
public void setPath(String path)
{
this.path = path;
}
public void setUserDAO(TUserDAO userDAO)
{
this.userDAO = userDAO;
}
public String getUserPw()
{
return userPw;
}
public void setUserPw(String userPw)
{
this.userPw = userPw;
}
}