java使用三层架构实现电影购票系统

 更新时间:2019年01月27日 09:57:47   作者:流云往事书  
这篇文章主要为大家详细介绍了java使用三层架构实现电影购票系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

使用三层架构实现电影购票系统,分用户和管理员,用户功能:展示电影,查找电影(模糊查询),查看电影详情,查找场次,购买影票,订制座位,退订影票等功能,界面美观漂亮,逻辑严谨,附加电影评论功能,订票超过五张打0.9折的打折功能。管理员功能:影院的增删改查,场次的增删改查,电影的增删改查,影票管理等。

管理员账号:admin  密码:admin

下载地址:java实现电影购票系统

效果展示图:

登录界面:

用户主界面:

查看热门电影:

点击电影进入查看详情,可以看到该电影的所有评论,可以进行评论。

点击想看电影进入场次界面,可通过影院名查询场次,支持模糊查询。

选好场次进入订座购票界面,购买票并扣取相应钱数,显示余额

返回主页,查看我的影票,选择影票并查看我的评论 ,如未评论可进行评论,评论过可进行修改评论,可退订影票,退订成功钱会返还给用户。

再看查找电影功能,支持模糊查询,也可点击海报进入电影详情

 咱们来展示下BaseDao的代码:

import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
public class BaseDao {
 
 public static final String DRIVER = "com.mysql.jdbc.Driver";
 public static final String URL = "jdbc:mysql://localhost:3306/tickets";
 
 // 加载驱动,只需加载一次
 static {
 try {
 Class.forName(DRIVER);
 } catch (ClassNotFoundException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 }
 
 // 获得连接
 public Connection getConn() {
 Connection conn = null;
 
 try {
 conn = DriverManager.getConnection(URL, "root", "123456");
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 return conn;
 }
 
 // 关闭所有
 public void releaseAll(ResultSet rs, PreparedStatement pstmt, Connection conn) {
 
 try {
 if (rs != null) {
 rs.close();
 }
 if (pstmt != null) {
 pstmt.close();
 }
 if (conn != null) {
 conn.close();
 }
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 
 }
 
 // 增删改 封装
 public boolean operUpdate(String sql, List<Object> params) {
 Connection conn = null;
 PreparedStatement pstmt = null;
 int res = 0;
 
 // 获得与数据库的连接对象
 conn = getConn();
 
 try {
 
 pstmt = conn.prepareStatement(sql);
 
 if (params != null) {
 for (int i = 0; i < params.size(); i++) {
 
 pstmt.setObject(i + 1, params.get(i));
 
 }
 
 }
 // 增刪改的統一方法
 
 res = pstmt.executeUpdate();
 //返回的是sql在数据库中影响的行数
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 } finally {
 releaseAll(null, pstmt, conn);
 }
 
 return res > 0 ? true : false;
 
 }
 
 public <T> List<T> operQuery(String sql, List<Object> params, Class<T> cls) throws Exception {
 Connection conn = null;
 PreparedStatement pstmt = null;
 ResultSet rs = null;
 List<T> list = new ArrayList<T>();
 conn = getConn();
 
 try {
 pstmt = conn.prepareStatement(sql);
 
 if (params != null) {
 for (int i = 0; i < params.size(); i++) {
 
 pstmt.setObject(i + 1, params.get(i));
 
 }
 
 }
 // 增刪改的統一方法
 
 rs = pstmt.executeQuery();
 ResultSetMetaData rsmd = rs.getMetaData();
 while (rs.next()) {
 T m = cls.newInstance();
 
 for (int i = 0; i < rsmd.getColumnCount(); i++) {
 String col_name = rsmd.getColumnName(i + 1);
 
 Object value = rs.getObject(col_name);
 
 Field field;
 
 field = cls.getDeclaredField(col_name);
 
 field.setAccessible(true);
 field.set(m, value);
 }
 list.add(m);
 }
 }
 
 catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 } finally {
 releaseAll(rs, pstmt, conn);
 }
 return list;
 
 }
 
}

该项目界面美观,代码封装性良好,逻辑严密,仅供参考。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • springboot拦截器Interceptor的使用,你都了解吗

    springboot拦截器Interceptor的使用,你都了解吗

    springmvc 中的拦截器可以对请求进行判别,在请求到达控制器之前,把非法的请求给拦截掉下面来说一说, 它在springboot中的使用,感兴趣的朋友一起看看吧
    2021-07-07
  • Spring Security 中如何让上级拥有下级的所有权限(案例分析)

    Spring Security 中如何让上级拥有下级的所有权限(案例分析)

    这篇文章主要介绍了Spring Security 中如何让上级拥有下级的所有权限,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 浅析java程序入口main()方法

    浅析java程序入口main()方法

    这篇文章主要介绍了浅析java程序入口main()方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 详解Java实现多线程的三种方式

    详解Java实现多线程的三种方式

    这篇文章主要为大家详细介绍了Java实现多线程的三种方式,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • springboot 接收LocalDateTime方式

    springboot 接收LocalDateTime方式

    这篇文章主要介绍了springboot 接收LocalDateTime方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 简单了解java类型转换常见的错误

    简单了解java类型转换常见的错误

    这篇文章主要介绍了简单了解java类型转换常见的错误,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • IDEA设置允许一个类并行的方法

    IDEA设置允许一个类并行的方法

    这篇文章主要介绍了IDEA设置允许一个类并行的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Java 并发编程之ForkJoin框架

    Java 并发编程之ForkJoin框架

    这篇文章主要为大家介绍了Java ForkJoin框架,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助,希望能够给你带来帮助
    2021-11-11
  • SpringSecurity+Redis+Jwt实现用户认证授权

    SpringSecurity+Redis+Jwt实现用户认证授权

    SpringSecurity是一个强大且灵活的身份验证和访问控制框架,本文主要介绍了SpringSecurity+Redis+Jwt实现用户认证授权,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • java编程 中流对象选取规律详解

    java编程 中流对象选取规律详解

    下面小编就为大家带来一篇java编程 中流对象选取规律详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论