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

本文详细介绍了如何在Java中通过JDBC操作MySQL数据库,包括创建表、插入成员记录、定义JavaBean类以及Controller中的查询和更新方法。展示了如何使用PreparedStatement进行SQL操作并处理异常。
摘要由CSDN通过智能技术生成

>>>实现代码:

=========

数据库


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= {“序号”,“手机”,“姓名”,“性别”,“会员日期”,“卡余额”};

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

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

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

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

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

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

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

img

最后

俗话说,好学者临池学书,不过网络时代,对于大多数的我们来说,我倒是觉得学习意识的觉醒很重要,这是开始学习的转折点,比如看到对自己方向发展有用的信息,先收藏一波是一波,比如如果你觉得我这篇文章ok,先点赞收藏一波。这样,等真的沉下心来学习,不至于被找资料分散了心神。慢慢来,先从点赞收藏做起,加油吧!

另外,给大家安排了一波学习面试资料:

image

image

以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

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

img

最后

俗话说,好学者临池学书,不过网络时代,对于大多数的我们来说,我倒是觉得学习意识的觉醒很重要,这是开始学习的转折点,比如看到对自己方向发展有用的信息,先收藏一波是一波,比如如果你觉得我这篇文章ok,先点赞收藏一波。这样,等真的沉下心来学习,不至于被找资料分散了心神。慢慢来,先从点赞收藏做起,加油吧!

另外,给大家安排了一波学习面试资料:

[外链图片转存中…(img-7RwHc5KL-1713518581514)]

[外链图片转存中…(img-Sr1mnQDt-1713518581515)]

以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值