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

网友投稿 362 2023-01-14


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 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 {

releaseAdmDXYll(null, pstmt, conn);

}

return res > 0 ? true : false;

}

public List operQuery(String sql, List params, Class cls) throws Exception {

ConnecdmDXYtion 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;

}

}

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小米推送Java代码
下一篇:idea创建Spring项目的方法步骤(图文)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~