"Membership Card Management System" · Java Swing + MySQL JDBC development

table of Contents

1. Language and environment

Second, realize the function

Three, database design

4. Specific requirements and recommended implementation steps

Five, matters needing attention

Six, scoring standards 

>>>Implementation code:

com.ynavc.Bean

com.ynavc.Controller

com.ynavc.Dao

com.ynavc.Test

com.ynavc.Vive


1. Language and environment

1. Implementation language: Java.

2. Development environment: MyEclipse+MySQL.

Second, realize the function

Use Java technology to develop a membership card management system. The specific functions are as follows: 1. The program starts to display the main interface, click the query button to display all membership card information, as shown in Figure 1.

Figure 1 Member information list

2. Select a row of membership card information and click the delete button to prompt whether to delete it, as shown in Figure 2 

Figure 2 Delete confirmation

3. If you click the Yes button, the deletion is confirmed, and if you click No or Cancel, the deletion operation is cancelled. After the deletion is successful, the corresponding prompt message will be given, as shown in Figure 3. 

Figure 3 Prompt for successful deletion

Three, database design

1. Create a database ( MemberDB )

2. Create a membership card information table ( members ) with the following structure:

4. Specific requirements and recommended implementation steps

1. Build a database and tables according to the above database requirements, and refer to Figure 2 to add at least 3 pieces of test data

2. Build the system framework

(1) Write entity classes.

(2) Create a data access layer and write BaseDAO and data access layer code.

(3) Create a form.

3. Create the main form

(1) According to Figure 1, create the form MainFrame and add the corresponding components

(2) The data in the table comes from the database, click the query button to display all the data.

(3) Click the "Delete" button to delete a selected membership card record.

Five, matters needing attention

1. Export the database to a sql script file 
2. Package and submit the entire project 

Six, scoring standards 

>>>Implementation code:

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() {
			@Override
			public 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() {
			@Override
			public 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);
	}
}

 

Guess you like

Origin blog.csdn.net/weixin_44893902/article/details/108705407