java中实现电影售票类_java使用三层架构实现电影购票系统

该系统采用Java实现,包含用户和管理员功能。用户可进行电影展示、查询、购买、订座、退订等操作,管理员则能管理影院、场次、电影和影票。系统提供美观界面,支持模糊查询,且订票超5张享9折优惠。代码展示了BaseDao类的部分功能,用于数据库操作。
摘要由CSDN通过智能技术生成

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

管理员账号:admin  密码:admin

效果展示图:

登录界面:

16679bd9f6a0f3ca9e2a2d79bb80c6ff.png

用户主界面:

5b2ac682eed2aea1eb1bf8039d93befd.png

查看热门电影:

c19ebca73055370228b6c7a6b8d2f0bc.png

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

40e8f1dad8df0e6995db29bcb2c45f04.png

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

4b52bf7699cf43672f17ba0891209ea7.png

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

9eaa92cc8a787e2b9fbbfd3977100b37.png

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

119eff38b7e66dd443eabf2cfe2665f3.png

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

cad2c588ebb06f3e226545f53c1bad0d.png

咱们来展示下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;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值