Java实现项目电影购票系统(swing界面)

发布时间:2023-02-23 15:00

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

 

管理员账号:admin  密码:admin

下载地址:http://www.zuidaima.com/share/4324685148654592.htm  或者 

https://download.csdn.net/download/zouzong123/10593010

效果展示图:

登录界面:

Java实现项目电影购票系统(swing界面)_第1张图片

用户主界面:

 

查看热门电影:

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

Java实现项目电影购票系统(swing界面)_第2张图片

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

Java实现项目电影购票系统(swing界面)_第3张图片

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

Java实现项目电影购票系统(swing界面)_第4张图片

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

Java实现项目电影购票系统(swing界面)_第5张图片

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

 

Java实现项目电影购票系统(swing界面)_第6张图片

 

咱们来展示下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 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  List operQuery(String sql, List params, Class cls) throws Exception {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		List list = new ArrayList();
		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;

	}

}
 
  

该项目界面美观,代码封装性良好,逻辑严密,仅供参考。如有疑问可加我qq:943420328

若发现bug,请大佬指正。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号