「会員カード管理システム」・Java Swing + MySQL JDBC開発

目次

1.言語と環境

第二に、機能を実現

3、データベース設計

4.特定の要件と推奨される実装手順

5、注意が必要な事項

6、採点基準 

>>>実装コード:

com.ynavc.Bean

com.ynavc.Controller

com.ynavc.Dao

com.ynavc.Test

com.ynavc.Vive


1.言語と環境

1.実装言語:Java。

2.開発環境:MyEclipse + MySQL。

第二に、機能を実現

図1に示すように、Javaテクノロジーを使用して会員カード管理システムを開発します。特定の機能は次のとおりです。1.プログラムが起動してメインインターフェイスが表示され、クエリボタンをクリックしてすべての会員カード情報を表示します。

図1会員情報一覧

2.図2に示すように、メンバーシップカード情報の行を選択し、削除ボタンをクリックして、削除するかどうかを確認します。 

図2削除の確認

3. [はい]ボタンをクリックすると削除が確認され、[いいえ]または[キャンセル]をクリックすると削除がキャンセルされます。削除が成功すると、図3に示すように、対応するプロンプトメッセージが表示されます。 

図3削除を成功させるためのプロンプト

3、データベース設計

1.データベース(MemberDB)を作成します。

2. 次の構造を持つメンバーシップカード情報テーブル(members)を作成します

4.特定の要件と推奨される実装手順

1.上記のデータベース要件に従ってデータベースとテーブルを構築し、図 2を参照して少なくとも3つのテストデータを追加します。

2.システムフレームワークを構築する

(1)エンティティークラスを記述します。

(2)データアクセス層を作成し、BaseDAOおよびデータアクセス層のコードを記述します。

(3)フォームを作成します。

3.メインフォームを作成する

(1)図1に従って、フォームMainFrame作成し、対応するコンポーネントを追加します

(2)テーブルのデータはデータベースから取得され、クエリボタンをクリックしてすべてのデータを表示します。

(3)「削除」ボタンをクリックすると、選択した会員証の記録が削除されます。

5、注意が必要な事項

1.データベースをSQLスクリプトファイルにエクスポートします 
2.プロジェクト全体をパッケージ化して送信します 

6、採点基準 

>>>実装コード:

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

 

おすすめ

転載: blog.csdn.net/weixin_44893902/article/details/108705407