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

(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 list=new ArrayList();

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= {“序号”,“手机”,“姓名”,“性别”,“会员日期”,“卡余额”};
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

由于篇幅限制,小编在此截出几张知识讲解的图解

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

P8级大佬整理在Github上45K+star手册,吃透消化,面试跳槽不心慌

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

由于篇幅限制,小编在此截出几张知识讲解的图解

[外链图片转存中…(img-BN8EX9b3-1713387470439)]

[外链图片转存中…(img-c9p2LCdu-1713387470439)]

[外链图片转存中…(img-TThNwXKz-1713387470439)]

[外链图片转存中…(img-WslU6bOX-1713387470440)]

[外链图片转存中…(img-JgfVmzdD-1713387470440)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值