> 文档中心 > 基于SSM的电影购票系统

基于SSM的电影购票系统


项目背景

随着消费水平的不断提高,人们的消费重心逐渐偏向于精神享受方面,去影院观看最新上映的电影也成为了一种潮流时尚,像蜘蛛网、百度糯米,万达电影等影院购票网站成为了另一个开发热点。本文对电影、影院管理、电影排片,用户选座购票业务进行了研究,使用SSM框架搭建开发环境和 MYSQL数据库,通过Navicat Premium软件连接并管理数据库;运用JSEE、SQL、Js,CSS语言和开源前端框架Amaze UI进行开发。系统实现了管理电影、影院、放映厅、放映记录、地区,影片类别信息的基本功能,以及前台用户注册登录、浏览影院、影片信息,选座购票功能。用户就不用去影院购买电影票,可以直接在网上进行选座购买,减少了传统影院的售票程序,避免了人工售票的繁琐工序,优化了用户体验。
关键字: 电影购票系统、SSM、MySQL、Js、CSS

功能设计

角色模块权限介绍

管理员

电影类别管理:可以进行修改相关电影类别
电影信息管理:可以进行修改相关电影信息内容
放映大厅管理:可以进行大厅增删查改信息
订单管理:可查看用户下单订单详情、、、、、、、

用户

登录后可以首页查看电影详情、热播推荐等页面下单购票、、、、、、

环境与技术

环境

Jdk1.8、Tomcat、MySQL、Eclipse(Idea)

技术

JSP、Spring、SpringMVC 、MyBatis 、html、css 、JavaScript 、JQuery 、Ajax 、maven等

功能截图

请添加图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关代码

数据库配置

<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans    http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd">    <!--指定扫描包-->    <context:component-scan base-package="com.mecol.film"/>    <!--配置数据源-->    <!--配置c3p0数据源-->    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!--注入四个数据库原属性--> <property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property> <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/film?characterEncoding=utf8&useSSL=false&serverTimezone=CTT"></property> <property name="user" value="root"></property> <property name="password" value="123456"></property>    </bean>    <!--添加事务支持-->    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/>    </bean>    <!--开启事务注解-->    <tx:annotation-driven transaction-manager="txManager"/>    <!--配置Mybatis工厂,同时指定数据源,并与Mybatis完美整合-->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="configLocation" value="classpath:mybatis-config.xml"/>    </bean>    <!--mapper代理开发使用Spring自动扫描Mybatis接口并装配(@Mapper-->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--mybatis-spring组件扫描器--> <property name="basePackage" value="com.mecol.film.mapper"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>    </bean></beans>

控制层(Controller)

package com.mecol.film.controller;import com.mecol.film.entity.Admin;import com.mecol.film.entity.FilmCategory;import com.mecol.film.entity.Play;import com.mecol.film.entity.Ticket;import com.mecol.film.pojo.DeleteAndUp;import com.mecol.film.pojo.FilmPojo;import com.mecol.film.pojo.PlayPojo;import com.mecol.film.service.*;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import java.util.Map;@Controller@RequestMapping("/root")public class AdminController {    @Autowired    private FilmCategoryService filmCategoryService;    @Autowired    private FilmService filmService;    @Autowired    private AdminService adminService;    @Autowired    private PlayService playService;    @Autowired    private RoomService roomService;    @Autowired    private TicketService ticketService;    //输入/root/admin 打开后台登陆首页    @RequestMapping("/admin")    public String admin(Model model, HttpServletRequest request){ HttpSession session=request.getSession(); Admin admin= (Admin) session.getAttribute("admin"); model.addAttribute("admin",admin); return "admin/admin/admin";    }    @RequestMapping("/tuichu")    @ResponseBody    public String tui(HttpServletRequest request){ HttpSession session=request.getSession(); session.removeAttribute("admin"); return "admin/login";    }    @RequestMapping("/home")    public String home(){ return "admin/admin/home";    }    @RequestMapping("/type")    public String type(Integer page, Model model){ model.addAttribute("type",filmCategoryService.list(page,null)); return "admin/admin/type";    }    @RequestMapping(value = "/typedelete",method = RequestMethod.POST)    @ResponseBody    public Integer typedelete(FilmCategory filmCategory){ filmCategory.setIsDelete(0); return filmCategoryService.update(filmCategory);    }    @RequestMapping("/isfilm")    public String isfilm(Integer page,Model model){ model.addAttribute("map",filmService.list(page,5)); model.addAttribute("type",filmCategoryService.all()); model.addAttribute("is",1); return "admin/admin/isfilm";    }    /     * 添加类型     * @param filmCategory     * @return     */    @RequestMapping("/add")    @ResponseBody    public Integer add(FilmCategory filmCategory){ return filmCategoryService.add(filmCategory);    }    @RequestMapping("/typeupdate")    @ResponseBody    public Integer typeupdate(FilmCategory filmCategory){ return filmCategoryService.update(filmCategory);    }    @RequestMapping("/addfilm")    @ResponseBody    public Integer addfilm(FilmPojo filmPojo, HttpServletRequest request){ System.out.println(filmPojo); return filmService.add(filmPojo,request);    }    @RequestMapping("/xiajia")    @ResponseBody    public Integer xiajia(DeleteAndUp deleteAndUp){ if (deleteAndUp.getMode().equals("下架")){     return filmService.delete(deleteAndUp.getId()); }else if (deleteAndUp.getMode().equals("上架")){     return filmService.up(deleteAndUp.getId()); } return 0;    }    @RequestMapping("/isdelete")    public String isdelete(Integer page,Model model){ model.addAttribute("map",filmService.isDelete(page,5)); model.addAttribute("type",filmCategoryService.all()); model.addAttribute("is",0); return "admin/admin/isfilm";    }    @RequestMapping("/room")    public String room(Integer page,Model model){ if (page==null){     page=1; } model.addAttribute("is",1); model.addAttribute("film",filmService.listF()); model.addAttribute("room",roomService.list()); Map map=playService.list(page); model.addAttribute("map",map); return "admin/admin/room";    }    @RequestMapping("/deroom")    public String deroom(Integer page,Model model){ if (page==null){     page=1; } model.addAttribute("is",0); model.addAttribute("film",filmService.listF()); model.addAttribute("room",roomService.list()); Map map=playService.delist(page); model.addAttribute("map",map); return "admin/admin/room";    }    @RequestMapping("/ticket")    public String ticket(Integer page,Model model){ if (page==null){ page=1; } Map<String,Object> map=ticketService.getAllUserList(page); model.addAttribute("map",map); return "admin/admin/allTickets";    }    @RequestMapping("/ticketDel")    @ResponseBody    public Integer ticketDel(Ticket ticket){      //  System.out.println(ticket.getTicketId()); return ticketService.deleteById(ticket.getTicketId());    }    @RequestMapping("/play")    @ResponseBody    public Integer play(DeleteAndUp deleteAndUp){ Play play=new Play(); if (deleteAndUp.getMode().equals("下档")){     play.setPlayId(deleteAndUp.getId());     play.setIsDelete(0); }else if (deleteAndUp.getMode().equals("上映")){     play.setPlayId(deleteAndUp.getId());     play.setIsDelete(1); } return  playService.update(play);    }    @RequestMapping("/playAdd")    @ResponseBody    public Integer playAdd(PlayPojo play){ System.out.println(play); return playService.add(play);    }}

业务层(Service)

package com.mecol.film.service;import com.mecol.film.entity.Admin;import java.io.UnsupportedEncodingException;public interface AdminService {    /     * 管理员登录     * @param admin     * @return     */    Admin login(Admin admin) throws UnsupportedEncodingException;}

持久层(Mapper)

package com.mecol.film.mapper;import com.mecol.film.entity.Admin;import org.springframework.stereotype.Repository;import java.util.List;@Repositorypublic interface AdminMapper {    /     * 管理员登录     * @param admin     * @return     */    Admin login(Admin admin);    List<Admin> list();    /     * 修改     * @param admin     * @return     */    int update(Admin admin);}