目录

目录

一、语言和环境

二、实现功能

三、数据库设计

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

五、注意事项

六、评分标准

>>>实现代码:

数据库

com.ynavc.Bean

com.ynavc.Controller

com.ynavc.Dao

com.ynavc.Test

com.ynavc.Vive



一、语言和环境

1. 实现语言:Java。

2. 开发环境:MyEclipse+MySQL。

二、实现功能

使用 Java 技术开发一个会员卡管理系统,具体实现功能如下: 1. 程序启动显示主界面,点击查询按钮,显示所有会员卡信息,如图 1 所示

图 1 会员信息列表

2. 选中某行会员卡信息,点击删除按钮,提示是否删除,如图 2 所示

图 2 删除确认

3. 如果点击是按钮,则确认删除,如果点击否或取消,则取消删除操作。删除成功后    给出对应的提示信息,如图 3 所示。

图 3 删除成功提示

三、数据库设计

1. 创建数据库(MemberDB

2. 创建会员卡信息表(members),结构如下:

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

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

2. 搭建系统框架

(1)编写实体类。

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

(3)创建窗体。

3. 创建主窗体

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

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

(3)实现点击“删除”按钮,删除一条选中的会员卡记录。

五、注意事项

1. 将数据库导出成 sql 脚本文件 
2. 将整个项目打包提交

六、评分标准

>>>实现代码:

数据库

SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for members
-- ----------------------------
DROP TABLE IF EXISTS `members`;
CREATE TABLE `members` (`memberID` int(11) NOT NULL AUTO_INCREMENT,`phone` varchar(32) NOT NULL,`name` varchar(32) NOT NULL,`sex` varchar(5) DEFAULT NULL,`openDate` date DEFAULT NULL,`balance` decimal(6,2) DEFAULT NULL,PRIMARY KEY (`memberID`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of members
-- ----------------------------
INSERT INTO `members` VALUES ('1', '18214217246', '杨明金', '男', '2020-10-21', '200.00');
INSERT INTO `members` VALUES ('2', '18214217244', '李韬', '男', '2020-10-21', '500.00');

com.ynavc.Bean

member.java

package com.ynavc.Bean;public class Members {int memberID;String phone;String name;String sex;String openDate;String balance;public Members() {super();}public Members(int memberID, String phone, String name, String sex, String openDate, String balance) {super();this.memberID = memberID;this.phone = phone;this.name = name;this.sex = sex;this.openDate = openDate;this.balance = balance;}public int getMemberID() {return memberID;}public void setMemberID(int memberID) {this.memberID = memberID;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getOpenDate() {return openDate;}public void setOpenDate(String openDate) {this.openDate = openDate;}public String getBalance() {return balance;}public void setBalance(String balance) {this.balance = balance;}}

com.ynavc.Controller

Select.java

package com.ynavc.Controller;import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;import com.ynavc.Bean.Members;
import com.ynavc.Dao.DbConnection;public class Select {public Object[][] getMebers(String sql) {ResultSet resultSet = DbConnection.query(sql);ArrayList<Members> list=new ArrayList<Members>();try {while (resultSet.next()) {Members m=new Members();m.setMemberID(resultSet.getInt(1));m.setPhone(resultSet.getString(2));m.setName(resultSet.getString(3));m.setSex(resultSet.getString(4));m.setOpenDate(resultSet.getString(5));m.setBalance(resultSet.getString(6));list.add(m);}} catch (SQLException e) {e.printStackTrace();}Object[][] objects=new Object[list.size()][6];for(int i=0;i<list.size();i++) {objects[i][0]=list.get(i).getMemberID();objects[i][1]=list.get(i).getPhone();objects[i][2]=list.get(i).getName();objects[i][3]=list.get(i).getSex();objects[i][4]=list.get(i).getOpenDate();objects[i][5]=list.get(i).getBalance();}return objects;}}

Updata.java


package com.ynavc.Controller;import com.ynavc.Dao.DbConnection;public class Updata {//添加数据public int addData(String sql) {return DbConnection.updataInfo(sql);}
}

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/memberdb?useSSL=true&serverTimezone=GMT";//数据库登录账号private static final String USER="root";//数据库登录密码private static final String PASSWORD="root";//加载驱动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.Test

Main.java

package com.ynavc.Test;import com.ynavc.Vive.MainJframe;public class Main {public static void main(String[] args) {new MainJframe().setVisible(true);}}

com.ynavc.Vive

MainJframe.java

package com.ynavc.Vive;import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ScrollPaneConstants;
import javax.swing.table.DefaultTableModel;import com.ynavc.Controller.Select;
import com.ynavc.Controller.Updata;import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class MainJframe extends JFrame {Select select = new Select();Updata updata = new Updata();Object[] header= {"序号","手机","姓名","性别","会员日期","卡余额"};String sql = "SELECT memberid,phone,name,sex,openDate,balance FROM members;";Object[][] data= select.getMebers(sql);DefaultTableModel df = new DefaultTableModel(data, header);int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;public MainJframe() {super("会员卡管理系统");this.setBounds(0, 0, 600, 400);this.setLocationRelativeTo(null);//让窗口在屏幕中间显示this.setResizable(false);//让窗口大小不可改变this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//用户单击窗口的关闭按钮时程序执行的操作getContentPane().setLayout(null);JTable jTable = new JTable(df);JScrollPane jsp=new JScrollPane(jTable,v,h);jsp.setBounds(10, 60, 574, 301);getContentPane().add(jsp);JButton btnNewButton_1 = new JButton("查询");btnNewButton_1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {String sql = "SELECT memberid,phone,name,sex,openDate,balance FROM members;";Object[][] data = select.getMebers(sql);df.setDataVector(data, header);}});btnNewButton_1.setBounds(301, 23, 93, 23);getContentPane().add(btnNewButton_1);JButton btnNewButton_2 = new JButton("删除");btnNewButton_2.setBounds(414, 23, 93, 23);getContentPane().add(btnNewButton_2);btnNewButton_2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if (jTable.getSelectedColumn()<0) {JOptionPane.showMessageDialog(null, "请选中要删除的数据!");} else {int ok = JOptionPane.showConfirmDialog(null,"您确定要删除该会员信息吗?!","删除提示",0,1);if(ok == JOptionPane.OK_OPTION){int id = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString());String sql="delete from members where memberid="+id;int result = updata.addData(sql);if (result>0) {JOptionPane.showMessageDialog(null, "该会员删除成功!");JOptionPane.showMessageDialog(null, "记得点一下查询哦!");} else {JOptionPane.showMessageDialog(null, "删除失败!");}}}}});}public static void main(String[] args) {new MainJframe().setVisible(true);}
}

「会员卡管理系统」 · Java Swing + MySQL JDBC开发相关推荐

  1. 「物流跟踪管理系统」 · Java Swing + MySQL JDBC开发,美和易思结业考试机试试题

    目录 文档说明: 一.语言和环境 二.技术要求 三.功能要求 四.数据库设计 五.具体要求及推荐实现步骤 六.注意事项 实现代码: 一.数据库 二.Java Swing com.ynavc.Bean ...

  2. 「超市管理系统——商品管理」 · Java Swing + MySQL JDBC开发

    项目下载:超市管理系统JavaSwing+MySQLJDBC开发_javamysql超市管理系统-互联网文档类资源-CSDN下载 1.9元付费赞助下载:超市管理系统JavaSwing+MySQLJDB ...

  3. 「艺蜂酒店管理系统」 · Java Swing + mysql 开发 学生毕业设计项目

    Java  Swing在社会上基本用不到,但是任有学校拿来当做结课设计,只是博主在校期间的一个项目.如果在部署过程中有问题可以在公众号[明金同学]私信我哈,尽力解答. 码云仓库地址:云南农业职业技术学 ...

  4. 基于 Eclipse+Java Swing + Mysql 学生选课管理系统

    一.项目概要:        基于Java Swing+Mysql8.0数据库的学生选课管理系统,主要有三个部分:系统管理,数据管理,数据查询. 1).系统管理主要用于用户信息的相关管理.主要包括密码 ...

  5. java+swing+mysql开发的学生卡管理系统

    基于java+swing+mysql开发的学生卡管理系统. 项目介绍: 系统基于swing图形化界面开发,数据库使用mysql,系统包含学生和管理员,系统功能如下: 学生:注册.登录:查看学生卡消费记 ...

  6. Java+Swing+Mysql实现停车场管理系统

    Java+Swing+Mysql实现停车场管理系统 一.系统介绍 1.系统功能 2.环境配置 3.数据库表 4.工程截图 二.系统展示 1.登录页 2.用户-主页 3.用户-信息管理-计费标准 4.用 ...

  7. 超市管理系统java swing+mysql报告_基于java+swing+mysql的超市管理系统

    运行环境:java jdk 1.8 IDE环境:Eclipse,Myeclipse,IDEA都可以 硬件环境:windows 7/8/10 2G内存以上(推荐4G,4G以上更好) 可以实现: 销售管理 ...

  8. 基于java+swing+mysql+JFeeChart的企业人力资源管理系统(1)

    文章目录 一,前言 二,项目运行图 (1)主界面(管理员界面) (2)员工资料运行图 (3)全部员工查看运行图 (4)部门管理运行图 (5)岗位管理运行图 (6)工资发放系统运行图 (7)薪酬记录运行 ...

  9. Java Swing Mysql学生信息管理系统

    通过对Swing的理解 此篇为大家推荐基于JAVA Swing Mysql学生信息管理系统 本视频教程一共分为四个阶段,每个阶段都会是上一个阶段的扩展,每一个阶段的系统都可独立作为一个完整的系统 第一 ...

最新文章

  1. mysql 源码安装 5.6.21_Mysql5.6.21源码安装
  2. 【 MATLAB 】通过不同样本数的同一个有限长序列作 DTFT 对比
  3. python经典好书-有哪些 Python 经典书籍?
  4. 万能makefile深入浅出 - 第三篇
  5. LeetCode-46. Permutations
  6. 中如何构造有参和无惨_导数中构造函数的神力你应该借助一下
  7. 2020阿里云线上峰会预告
  8. java 判断 and_Java中如何判断两个对象是否相等(Java equals and ==)
  9. Java反编译工具JAD安装与基本使用
  10. 微信淘宝客小程序开发多多客京东客六合一系统外卖cps返利源码
  11. 视觉slam十四讲 编程学习
  12. 腾讯云CDN加速COS图床
  13. Linux下Sed命令的用法 - Linux - 红黑联盟
  14. linux wifi开机自动连接 wifi连接
  15. 电容基础知识 之 钽电解电容
  16. 如何获得凤凰网或腾讯视频链接并下载到本地
  17. Java 文件完整性校验 MD5 sha1 sha256 sha224 sha384 sha512
  18. (修订)准备互联网校招,你需要知道的一些事
  19. KeyError: ((1, 1), ‘<i8‘)
  20. Hadoop HA在停掉active namenode后无法自动切换到standby namenode

热门文章

  1. PDF生成插件--TcPDF
  2. 报错:‘Concatenate’layer requires inputs with matching shapes expect for the concat axis. 解决思路
  3. 单片机--串口通信---11
  4. 虚拟机里centos7怎么联网?费时许久终于搞定!!
  5. GPS定位基本原理浅析
  6. 【例题 8-4 UVA - 11134】Fabled Rooks
  7. 多模块下的接口 API 如何统一管理——聚合 API
  8. [电脑问题]新固态硬盘安装系统以及分区,reboot and select proper boot device的问题处理
  9. 精彩总结:★加密网页破解大法★
  10. 面试官:你对MySQL中的索引了解多少?