「影院售票系统」 · Java Swing + MySQL JDBC开发(1)

本文详细描述了一个使用JavaSwing构建的影院售票系统的开发过程,包括数据库设计、实体类创建、数据访问层实现、界面组件的添加和数据库操作,如新增影片功能的步骤和数据库测试数据的插入。
摘要由CSDN通过智能技术生成

2. 点击“新增”按钮,弹出新增影片窗口,可以录入新增影片相关信息,如图 2 所示

图 2 录入新增影片

3. 在新增影片窗口,点击“新增”按钮,将影片信息保存到数据库中,保存成功给予

用户提示,并清空所有文本框内容,点击“返回”按钮则关闭窗口。在影片列表窗

口显示最新添加的影片信息。如图 3 所示。

图 3 新增影片成功提示

三、数据库设计


1. 创建数据库(MovieDB)

2. 创建影片信息表(movies),结构如下:

字段名

说明

字段类型

长度

备注

movieID

影片编号

int

 

主键,自动增长

name

影片名称

varchar

64

非空

duration

影片时长

int

 

非空

area

影片产地

varchar

32

 

date

上映日期

date

 

 

price

票价

decimal(6,2)

 

 

四、具体要求及推荐实现步骤


1. 按以上数据库要求建库建表,并参考图 1 添加至少 3 条测试数据

2. 搭建系统框架

(1)编写实体类。

(2)创建数据访问层,并编写 BaseDAO 和数据访问层代码。

(3)创建窗体。

3. 创建主窗体

(1)按照图 1,创建窗体 MainFrame,并添加相应的组件

(2)表格中的数据均来源于数据库,点击“查询”按钮显示所有数据。

(3)实现点击“新增”按钮,显示新增影片窗体。

4. 创建新增影片信息窗体第 3 页 共 3 页

(1)按照图 2,创建窗体 AddFrame,并添加相应的组件。

(2)实现点击“新增”按钮,将影片信息保存至数据库中。

(3)新增完毕,提示用户,并清空文本框输入内容。

(4)实现点击“返回”按钮,关闭新增影片信息窗口。

五、注意事项


1. 将数据库导出成 sql 脚本文件

2. 将整个项目打包提交

六、评分标准


题目:影院售票系统

该项目的评分标准如下:

20

数据库

 

5

创建数据库

 

5

添加至少 3 条测试数据

 

 

10

正确创建 BaseDAO 类,封装 2 个方法

  1. 获取连接
  2. 关闭连接

30

项目框架搭建

 

5

正确添加并引用 JDBC 依赖 jar 包

 

5

正确编写实体类

 

10

结合 BaseDAO 正确编写查询数据的方法

 

10

结合 BaseDao 正确编写新增数据的方法

20

显示所有影片信息

 

15

点击查询按钮,展示所有影片信息

 

5

上映日期列需以指定格式显示“YYYY-MM-DD”

20

新增影片信息

 

5

新增前判断所有项目是否填写完毕。

 

10

正确将数据添加到数据库并在列表窗口显示新增加的记录

 

5

新增完毕提示用户(2 分),清空文本框内容(3 分)

10

总体编程技术

 

5

程序逻辑分明,有一定注释

 

5

变量命名符合规范,可读性好,编码书写有缩进,有异常处理

总分

100 分

实现代码:

=====

一、数据库:


SET FOREIGN_KEY_CHECKS=0;


– Table structure for movies


DROP TABLE IF EXISTS movies;

CREATE TABLE movies (

movieID int(11) NOT NULL AUTO_INCREMENT,

name varchar(64) NOT NULL,

duration int(11) NOT NULL,

area varchar(32) DEFAULT NULL,

date date DEFAULT NULL,

price decimal(6,2) DEFAULT NULL,

PRIMARY KEY (movieID)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;


– Records of movies


INSERT INTO movies VALUES (‘1’, ‘复仇者联盟4’, ‘181’, ‘美国’, ‘2019-05-24’, ‘59.00’);

INSERT INTO movies VALUES (‘2’, ‘大侦探皮卡丘’, ‘104’, ‘美国’, ‘2019-06-10’, ‘39.00’);

INSERT INTO movies VALUES (‘3’, ‘反贪风暴4’, ‘98’, ‘中国香港’, ‘2019-05-04’, ‘28.00’);

INSERT INTO movies VALUES (‘4’, ‘撞死了一只羊’, ‘87’, ‘中国大陆’, ‘2019-05-26’, ‘25.00’);

INSERT INTO movies VALUES (‘5’, ‘惊奇队长’, ‘124’, ‘美国’, ‘2019-04-08’, ‘48.00’);

二、Java Swing:


com.ynavc.Bean

Movies.java

package com.ynavc.Base;

public class Movies {

int movieId;

String name;

int duration;

String area;

String date;

double price;

public Movies(int movieId, String name, int duration, String area, String date, double price) {

super();

this.movieId = movieId;

this.name = name;

this.duration = duration;

this.area = area;

this.date = date;

this.price = price;

}

public Movies() {

super();

}

public int getMovieId() {

return movieId;

}

public void setMovieId(int movieId) {

this.movieId = movieId;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getDuration() {

return duration;

}

public void setDuration(int duration) {

this.duration = duration;

}

public String getArea() {

return area;

}

public void setArea(String area) {

this.area = area;

}

public String getDate() {

return date;

}

public void setDate(String date) {

this.date = date;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

}

com.ynavc.Dao

DbConnection.java

package com.ynavc.Dao;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import javax.swing.JOptionPane;

import com.mysql.jdbc.Statement;

public class DbConnection {

//驱动类的类名

private static final String DRIVERNAME=“com.mysql.jdbc.Driver”;

//连接数据的URL路径

private static final String URL=“jdbc:mysql://127.0.0.1:3306/moviedb”;

//数据库登录账号

private static final String USER=“root”;

//数据库登录密码

private static final String PASSWORD=“root123”;

//加载驱动

static{

try {

Class.forName(DRIVERNAME);

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

//获取数据库连接

public static Connection getConnection() {

try {

return DriverManager.getConnection(URL,USER,PASSWORD);

} catch (SQLException e) {

e.printStackTrace();

}

return null;

}

//查询

public static ResultSet query(String sql) {

System.out.println(sql);

//获取连接

Connection connection=getConnection();

PreparedStatement psd;

try {

psd = connection.prepareStatement(sql);

return psd.executeQuery();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null,“执行语句出错\n”+e.toString());

e.printStackTrace();

}

return null;

}

//增、删、改、查

public static int updataInfo(String sql) {

System.out.println(sql);

//获取连接

Connection connection=getConnection();

try {

PreparedStatement psd=connection.prepareStatement(sql);

return psd.executeUpdate();

} catch (SQLException e) {

JOptionPane.showMessageDialog(null,“执行语句出错\n”+e.toString());

e.printStackTrace();

}

return 0;

}

//关闭连接

public static void colse(ResultSet rs,Statement stmt,Connection conn) throws Exception{

try {

if (rs != null){

rs.close();

}

if (stmt != null){

stmt.cancel();

}

if (conn != null) { conn.close(); }

} catch (Exception e) {

e.printStackTrace(); throw new Exception();

}

}

}

com.ynavc.Controller

Update.java

package com.ynavc.Controller;

import com.ynavc.Dao.DbConnection;

public class Update {

//添加数据

public int addData(String sql) {

return DbConnection.updataInfo(sql);

}

}

Select.java

package com.ynavc.Controller;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import com.ynavc.Base.Movies;

import com.ynavc.Dao.DbConnection;

public class Select {

public Object[][] getMianSelect() {

String sql = “SELECT movieid,name,duration,area,date,price FROM movies;”;

ResultSet re = DbConnection.query(sql);

ArrayList list = new ArrayList();

try {

while (re.next()) {

Movies movies = new Movies();

movies.setMovieId(re.getInt(1));

movies.setName(re.getString(2));

movies.setDuration(re.getInt(3));

movies.setArea(re.getString(4));

movies.setDate(re.getString(5));

movies.setPrice(re.getDouble(6));

list.add(movies);

}

} catch (SQLException e) {

e.printStackTrace();

}

Object[][] ob = new Object[list.size()][6];

for (int i = 0; i < list.size(); i++) {

ob[i][0] = list.get(i).getMovieId();

ob[i][1] = list.get(i).getName();

ob[i][2] = list.get(i).getDuration()+“分钟”;

ob[i][3] = list.get(i).getArea();

ob[i][4] = list.get(i).getDate();

ob[i][5] = list.get(i).getPrice();

}

return ob;

}

}

com.ynavc.Vive

MainFrame.Java

package com.ynavc.Vive;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.table.DefaultTableModel;

import com.ynavc.Controller.Select;

public class MainFrame extends JFrame {

Select select = new Select();

Object[] header = {“序号”,“片名”,“时长”,“地区”,“上映时间”,“价格”};

Object[][] data = select.getMianSelect();

DefaultTableModel df = new DefaultTableModel(data,header);

Java面试核心知识点笔记

其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

Java中高级面试高频考点整理

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

最后分享Java进阶学习及面试必备的视频教学

蚂蚁金服(Java研发岗),26岁小伙斩获三面,收获Offer定级P6

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.table.DefaultTableModel;

import com.ynavc.Controller.Select;

public class MainFrame extends JFrame {

Select select = new Select();

Object[] header = {“序号”,“片名”,“时长”,“地区”,“上映时间”,“价格”};

Object[][] data = select.getMianSelect();

DefaultTableModel df = new DefaultTableModel(data,header);

Java面试核心知识点笔记

其中囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。

[外链图片转存中…(img-etY0HNxA-1714490886573)]

Java中高级面试高频考点整理

[外链图片转存中…(img-8NxMHh9D-1714490886574)]

[外链图片转存中…(img-NK5V0hzH-1714490886574)]

最后分享Java进阶学习及面试必备的视频教学

[外链图片转存中…(img-mv0xyKTF-1714490886575)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 28
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Java Swing MySQL售票系统是一种基于Java编程语言和MySQL数据库的售票系统。该系统可以通过图形用户界面(GUI)来实现售票、查询、退票等功能。它可以帮助售票员更好地管理售票业务,提高售票效率和准确性。同时,该系统还可以对售票数据进行统计和分析,为售票管理提供更多的决策支持。 ### 回答2: Java Swing MySQL售票系统是一种基于面向对象编程技术的软件系统,是一个可以协助售票点操作员完成票务销售、订单管理和财务结算等工作的系统。它的设计和实现基于Java Swing GUI技术和MySQL数据库软件,通过使用这些技术实现人机交互的界面和数据的持久化存储。 Java Swing是一个为Java应用程序提供GUI工具箱的框架,拥有丰富的组件库,可开发出美观、易用的界面。MySQL是最流行的开源数据库之一,其高效、稳定、可靠和跨平台的特性得到广泛应用。 Java Swing MySQL售票系统中主要包含三部分:前端界面、中间业务逻辑、和数据库持久层。前端界面是用户与系统交互的界面,它主要由Java Swing GUI技术实现,包括各种图形界面输入控件如文本框、下拉框、按钮等。业务逻辑层负责控制程序的执行流程,根据用户的操作在数据库中进行相应操作。数据库持久层是售票信息的存储介质,用于存储售票系统的数据,包括用户信息、票务信息、订单信息、支付信息等。这些数据的处理、存储、查询都是由MySQL数据库实现的。 Java Swing MySQL售票系统还有一些重要的特性:安全性、可靠性、效率性和易用性。安全性主要考虑系统中的数据安全,数据库的安全访问和数据加密等。可靠性主要考虑系统操作的可靠性,保证各项操作可以正确地执行,同时避免系统因各种原因而崩溃。效率性主要考虑系统运行的效率,如响应速度快、系统负载小等。易用性主要考虑售票操作员的用户体验,使操作简单、方便、具有友好性和易上手性。 总之,Java Swing MySQL售票系统在票务销售、订单管理和财务结算等方面具有非常大的应用价值和市场前景,是一个非常有前途的软件系统,适合各类售票点、影院和展馆等单位使用。 ### 回答3: Java Swing MySQL售票系统是一种基于Java Swing技术和MySQL数据库的售票管理系统,它能够满足用户对于售票的需求,帮助用户管理票务信息、销售渠道和实现盈利目标。该系统主要包括以下模块: 1. 用户管理模块:该模块用于管理售票系统的用户,包括添加、修改和删除用户信息等功能。同时,该模块可通过权限管理功能设置不同用户的访问权限,保证信息的安全性。 2. 票务管理模块:该模块主要用于管理电影、演唱会、体育赛事、舞台剧等活动的票务信息,包括票务种类、票价、票数、售票渠道等,并提供实时的票务查询和统计功能,以便管理者根据数据进行调整策划。 3. 订单管理模块:该模块主要用于处理用户购票订单,包括下单、支付、退票、换票等功能。该模块可实现与第三方支付渠道对接,保证支付交易的安全性。 4. 数据统计模块:该模块通过对售票系统开展的统计分析,对售票数据进行摸底调查,以研究市场消费行为特点,为市场调整和未来营销策略的制订提供参考。 以上模块都是系统必要的模块,使得售票系统能顺利地进行,不仅能够实现对票务的管理,还能够为营销活动提供数据支撑,从而助力市场推广的开展。综上所述,Java Swing MySQL售票系统是一款优秀的软件系统,它能够帮助企业实现对票务的全面管理,提高工作效率和盈利空间,更加方便用户的购票需求,在市场竞争激烈的环境中具有重要的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值