用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

Java 数据库练习

2015-04-18 作者: java源代码大全举报

[java]代码库

package student;

import javax.swing.*;
import java.util.Vector;
import java.awt.*;
import java.sql.*;
import java.awt.event.*;

@SuppressWarnings("serial")
public class MainFrame extends JFrame implements Runnable, ActionListener {
	CardLayout cards;
	Font font;
	JMenuBar menuBar;
	Statement state;
	String sql;

	// 定义外来码时用到
	Vector MID;

	// 记录下一个空ID
	static int stuID;
	static int majorID;

	// 学生操作对应的面板
	JPanel SR;
	JPanel SQ;
	JPanel SD;
	JPanel SU;

	// 专业操作对应的面板
	JPanel MR;
	JPanel MQ;
	JPanel MD;
	JPanel MU;

	// 学生信息登记面板组件
	JTextField SR_ID;
	JTextField SR_Name;
	JTextField SR_Sex;
	JTextField SR_Class;
	// JTextField SR_Major;
	JComboBox<Vector> SR_Major;
	JButton SR_Yes;
	JButton SR_No;

	// 学生信息查询面板的组件
	JTextField SQ_ID;
	JTextField SQ_Name;
	JTextField SQ_Sex;
	JTextField SQ_Class;
	JTextField SQ_Major;
	JButton SQ_Yes;

	// 学生信息更新面板的组件
	JTextField SU_ID;
	JTextField SU_Name;
	JTextField SU_Sex;
	JTextField SU_Class;
	JTextField SU_Major;
	JButton SU_Update;
	JButton SU_Show;

	// 学生信息删除面板的组件
	JTextField SD_Field;

	// 专业信息登记面板的组件
	JTextField MR_ID;
	JTextField MR_Name;
	JButton MR_Yes;
	JButton MR_No;

	// 专业信息查询面板的组件
	JTextField MQ_ID;
	JTextField MQ_Name;
	JButton MQ_Yes;

	// 专业信息更新面板的组件
	JTextField MU_ID;
	JTextField MU_Name;
	JButton MU_Update;

	// 专业信息删除面板的组件
	JLabel MD_Tip;
	JTextField MD_Field;
	JButton MD_Delete;

	// 菜单项
	JMenuItem stuR;
	JMenuItem stuQ;
	JMenuItem stuD;
	JMenuItem stuU;
	JMenuItem majorR;
	JMenuItem majorQ;
	JMenuItem majorD;
	JMenuItem majorU;

	public MainFrame() {

		SR = new JPanel();
		SQ = new JPanel();
		SD = new JPanel();
		SU = new JPanel();

		MR = new JPanel();
		MQ = new JPanel();
		MU = new JPanel();
		MD = new JPanel();

		majorID = 1;
		stuID = 1;
		new Thread(this).start();

		cards = new CardLayout();
		font = new Font("myFont", Font.PLAIN, 15);
		MID = new Vector();

		// 当Major的ID的删除完时,显示
		MID.add("");

		// 菜单条
		menuBar = new JMenuBar();
		Main_Menu();

		setTitle("学生管理");
		setSize(400, 377);
		setLocation(530, 200);
		Main_Pane(this.getContentPane());
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	}

	public void Main_Pane(Container pane) {

		pane.setLayout(cards);

		pane.add(SR, "0");
		pane.add(SQ, "1");
		pane.add(SU, "2");
		pane.add(SD, "3");
		pane.add(MR, "4");
		pane.add(MQ, "5");
		pane.add(MU, "6");
		pane.add(MD, "7");
	}

	public void Main_Menu() {

		stuR = new JMenuItem("登记");
		stuQ = new JMenuItem("查询");
		stuD = new JMenuItem("删除");
		stuU = new JMenuItem("更新");
		JMenu stu = new JMenu("学生");
		stu.add(stuR);
		stu.add(stuQ);
		stu.add(stuU);
		stu.add(stuD);

		majorR = new JMenuItem("登记");
		majorQ = new JMenuItem("查询");
		majorU = new JMenuItem("更新");
		majorD = new JMenuItem("删除");
		JMenu major = new JMenu("专业");
		major.add(majorR);
		major.add(majorQ);
		major.add(majorU);
		major.add(majorD);

		menuBar.add(stu);
		menuBar.add(major);
		this.setJMenuBar(menuBar);

		// 增加监听器
		stuR.addActionListener(this);
		stuQ.addActionListener(this);
		stuD.addActionListener(this);
		stuU.addActionListener(this);
		majorR.addActionListener(this);
		majorQ.addActionListener(this);
		majorD.addActionListener(this);
		majorU.addActionListener(this);

	}

	@Override
	public void run() {
		SR_Pane();
		SQ_Pane();
		SD_Pane();
		SU_Pane();
		MR_Pane();
		MQ_Pane();
		MU_Pane();
		MD_Pane();

	}

	// 学生登记和查询面板
	public void SR_Pane() {
		SR.setLayout(new GridLayout(6, 2));

		JLabel labelID = new JLabel("学号", JLabel.CENTER);
		JLabel labelName = new JLabel("姓名", JLabel.CENTER);
		JLabel labelSex = new JLabel("性别", JLabel.CENTER);
		JLabel labelClass = new JLabel("班级", JLabel.CENTER);
		JLabel labelMajor = new JLabel("专业码", JLabel.CENTER);
		labelID.setFont(font);
		labelName.setFont(font);
		labelSex.setFont(font);
		labelClass.setFont(font);
		labelMajor.setFont(font);

		SR_ID = new JTextField();
		SR_ID.setText(String.valueOf(stuID));
		SR_Name = new JTextField();
		SR_Sex = new JTextField();
		SR_Class = new JTextField();

		SR_Major = new JComboBox<Vector>(MID);

		SR_Yes = new JButton("登记");
		SR_No = new JButton("取消");
		SR_Yes.addActionListener(this);
		SR_No.addActionListener(this);

		SR.add(labelID);
		SR.add(SR_ID);
		SR.add(labelName);
		SR.add(SR_Name);
		SR.add(labelSex);
		SR.add(SR_Sex);
		SR.add(labelClass);
		SR.add(SR_Class);
		SR.add(labelMajor);
		SR.add(SR_Major);
		SR.add(SR_Yes);
		SR.add(SR_No);

	}

	public void SQ_Pane() {
		SQ.setLayout(new GridLayout(6, 2));

		JLabel labelID = new JLabel("学号", JLabel.CENTER);
		JLabel labelName = new JLabel("姓名", JLabel.CENTER);
		JLabel labelSex = new JLabel("性别", JLabel.CENTER);
		JLabel labelClass = new JLabel("班级", JLabel.CENTER);
		JLabel labelMajor = new JLabel("专业码", JLabel.CENTER);
		JLabel SD_Tip = new JLabel("输入学号", JLabel.CENTER);
		labelID.setFont(font);
		labelName.setFont(font);
		labelSex.setFont(font);
		labelClass.setFont(font);
		labelMajor.setFont(font);
		SD_Tip.setFont(font);

		SQ_ID = new JTextField();
		SQ_Name = new JTextField();
		SQ_Sex = new JTextField();
		SQ_Class = new JTextField();
		SQ_Major = new JTextField();

		SQ_Yes = new JButton("查询");
		SQ_Yes.addActionListener(this);

		SQ.add(labelID);
		SQ.add(SQ_ID);
		SQ.add(labelName);
		SQ.add(SQ_Name);
		SQ.add(labelSex);
		SQ.add(SQ_Sex);
		SQ.add(labelClass);
		SQ.add(SQ_Class);
		SQ.add(labelMajor);
		SQ.add(SQ_Major);
		SQ.add(SD_Tip);
		SQ.add(SQ_Yes);
	}

	public void SD_Pane() {
		SD.setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		JLabel label = new JLabel("学号", JLabel.CENTER);
		SD_Field = new JTextField();
		JButton delete = new JButton("删除");
		c.fill = GridBagConstraints.HORIZONTAL;

		c.gridwidth = 1;
		c.insets = new Insets(10, 10, 10, 10);
		SD.add(label, c);

		c.gridx = 1;
		c.gridwidth = 3;
		c.ipadx = 120;
		SD.add(SD_Field, c);

		c.gridwidth = 1;
		c.gridx = 3;
		c.ipadx = 0;
		SD.add(delete, c);

		delete.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				sql = "Delete from student where ID=";
				sql += SD_Field.getText();
				sql += ";";
				System.out.println(sql);
				try {
					int i = Integer.valueOf(SD_Field.getText());
					if (isStuExist(i)) {
						state.execute(sql);
						JOptionPane.showMessageDialog(SD, "已删除");
					} else {
						JOptionPane.showMessageDialog(SD, "删除失败");
					}
				} catch (SQLException e1) {
					JOptionPane.showMessageDialog(SD, "删除失败");
				}
			}
		});
	}

	public void SU_Pane() {
		SU.setLayout(new GridLayout(6, 2));

		JLabel labelID = new JLabel("学号", JLabel.CENTER);
		JLabel labelName = new JLabel("姓名", JLabel.CENTER);
		JLabel labelSex = new JLabel("性别", JLabel.CENTER);
		JLabel labelClass = new JLabel("班级", JLabel.CENTER);
		JLabel labelMajor = new JLabel("专业码", JLabel.CENTER);
		labelID.setFont(font);
		labelName.setFont(font);
		labelSex.setFont(font);
		labelClass.setFont(font);
		labelMajor.setFont(font);

		SU_ID = new JTextField();
		SU_Name = new JTextField();
		SU_Sex = new JTextField();
		SU_Class = new JTextField();
		SU_Major = new JTextField();

		SU_Update = new JButton("更新");
		SU_Update.addActionListener(this);

		SU_Show = new JButton("显示");
		SU_Show.addActionListener(this);

		SU.add(labelID);
		SU.add(SU_ID);
		SU.add(labelName);
		SU.add(SU_Name);
		SU.add(labelSex);
		SU.add(SU_Sex);
		SU.add(labelClass);
		SU.add(SU_Class);
		SU.add(labelMajor);
		SU.add(SU_Major);
		SU.add(SU_Show);
		SU.add(SU_Update);
	}

	public void MR_Pane() {
		MR.setLayout(new GridLayout(3, 2));
		JLabel labelID = new JLabel("专业码", JLabel.CENTER);
		JLabel labelName = new JLabel("专业名", JLabel.CENTER);
		labelID.setFont(font);
		labelName.setFont(font);

		MR_ID = new JTextField();
		MR_Name = new JTextField();
		MR_ID.setText(String.valueOf(majorID));
		MR_Yes = new JButton("登记");
		MR_Yes.addActionListener(this);
		MR_No = new JButton("取消");
		MR_No.addActionListener(this);

		MR.add(labelID);
		MR.add(MR_ID);
		MR.add(labelName);
		MR.add(MR_Name);
		MR.add(MR_Yes);
		MR.add(MR_No);

	}

	public void MQ_Pane() {
		MQ.setLayout(new GridLayout(3, 2));
		JLabel labelID = new JLabel("专业码", JLabel.CENTER);
		JLabel labelName = new JLabel("专业名", JLabel.CENTER);
		labelID.setFont(font);
		labelName.setFont(font);

		MQ_ID = new JTextField();
		MQ_Name = new JTextField();

		MQ_Yes = new JButton("查询");
		MQ_Yes.addActionListener(this);

		MQ.add(labelID);
		MQ.add(MQ_ID);
		MQ.add(labelName);
		MQ.add(MQ_Name);
		MQ.add(new JLabel("输入专业码", JLabel.CENTER));
		MQ.add(MQ_Yes);

	}

	public void MU_Pane() {
		MU.setLayout(new GridLayout(3, 2));
		JLabel labelID = new JLabel("专业码", JLabel.CENTER);
		JLabel labelName = new JLabel("专业名", JLabel.CENTER);
		labelID.setFont(font);
		labelName.setFont(font);

		MU_ID = new JTextField();
		MU_Name = new JTextField();

		MU_Update = new JButton("更新");
		MU_Update.addActionListener(this);

		MU.add(labelID);
		MU.add(MU_ID);
		MU.add(labelName);
		MU.add(MU_Name);
		MU.add(new JLabel("输入专业码", JLabel.CENTER));
		MU.add(MU_Update);
	}

	public void MD_Pane() {
		MD.setLayout(new GridLayout(2, 2));
		JLabel labelID = new JLabel("专业码", JLabel.CENTER);
		MD_Tip = new JLabel("输入专业码", JLabel.CENTER);
		labelID.setFont(font);

		MD_Field = new JTextField();

		MD_Delete = new JButton("删除");
		MD_Delete.addActionListener(this);

		MD.add(labelID);
		MD.add(MD_Field);
		MD.add(MD_Tip);
		MD.add(MD_Delete);

	}

	@Override
	public void actionPerformed(ActionEvent e) {
		Object source = e.getSource();
		Container pane = getContentPane();
		try {
			if (source == SR_Yes) {
				String ID = SR_ID.getText();
				String Name = SR_Name.getText();
				String Sex = SR_Sex.getText();
				String Class = SR_Class.getText();
				String Major = String.valueOf(SR_Major.getSelectedItem());
				if (ID.length() > 0 && Name.length() > 0 && Sex.length() > 0
						&& Class.length() > 0 && Major.length() > 0) {
					sql = "Insert into student values(" + ID + ", '" + Name
							+ "' , '" + Sex + "' ," + Class + "," + Major
							+ ");";
					
					state.execute(sql);
					stuID++;
					SR_ID.setText(String.valueOf(stuID));
					SR_Name.setText("");
					SR_Sex.setText("");
					SR_Class.setText("");
				}
			}
			if (source == SR_No) {
				SR_Name.setText("");
				SR_Sex.setText("");
				SR_Class.setText("");

			}

			if (source == SQ_Yes) {
				String ID = SQ_ID.getText();
				if (ID.length() > 0) {
					if (isStuExist(Integer.valueOf(ID))) {
						sql = "Select * from student where ID="+ID+";";
						
						ResultSet rs = state.executeQuery(sql);
						while (rs.next()) {
							SQ_Name.setText(rs.getString(2));
							SQ_Sex.setText(rs.getString(3));
							SQ_Class.setText(String.valueOf(rs.getInt(4)));
							SQ_Major.setText(String.valueOf(rs.getInt(5)));
						}
					} else
						JOptionPane.showMessageDialog(this, "输入的ID不存在");
				}
			}

			if (source == SU_Show) {
				showInformation_SU_Pane();
			}

			if (source == SU_Update) {
				String SUID = SU_ID.getText();
				if (SUID.length() > 0) {
					String Name = SU_Name.getText();
					String Sex = SU_Sex.getText();
					String Class = SU_Class.getText();
					String Major = SU_Major.getText();
					sql = "Update student Set Name = '" + Name + "', Sex= ' "
							+ Sex + "', Class= " + Class + ", Major = " + Major
							+ "  Where ID =" + SUID;
					
					state.executeUpdate(sql);
					JOptionPane.showMessageDialog(this, "更新成功");

				}
			}

			if (source == MR_Yes) {
				String ID = MR_ID.getText();
				String MName = MR_Name.getText();
				if (ID.length() > 0 && MName.length() > 0) {
					sql = "Insert into major values( " + ID + ",'" + MName
							+ "');";
					
					state.execute(sql);
					majorID++;
					MID.add(Integer.valueOf(ID));
					MR_ID.setText(String.valueOf(majorID));
					MR_Name.setText("");
				}
			}

			if (source == MR_No) {
				MR_Name.setText("");
			}

			if (source == MQ_Yes) {
				String ID = MQ_ID.getText();
				if (ID.length() > 0) {
					if (isMajorExist(Integer.valueOf(ID))) {
						sql = "Select * from major where ID=" + ID + ";";
						ResultSet rs = state.executeQuery(sql);
						while (rs.next())
							MQ_Name.setText(rs.getString(2));
					} else
						JOptionPane.showMessageDialog(this, "输入的ID不存在");

				}
			}

			if (source == MU_Update) {
				String ID = MU_ID.getText();
				String Name = MU_Name.getText();
				if (ID.length() > 0 && Name.length() > 0) {
					sql = "Update major set Name = '" + Name + "' where ID ="
							+ ID;

					state.executeUpdate(sql);
					JOptionPane.showMessageDialog(this, "更新成功");
				}
			}

			if (source == MD_Delete) {
				String ID = MD_Field.getText();
				if (ID.length() > 0) {
					int i = Integer.valueOf(ID);
					if (isMajorExist(i)) {
						try {
							sql = "Delete from major where ID = " + ID;

							state.execute(sql);
							MID.remove((Integer) i);
							SR_Major.setSelectedItem("");
							JOptionPane.showMessageDialog(this, "已删除");
						} catch (SQLException e2) {
							JOptionPane.showMessageDialog(this,
									"删除失败 ,学生中包含相关专业");
						}

					} else
						JOptionPane.showMessageDialog(this, "删除失败");
				}
			}

		} catch (SQLException e1) {

			e1.printStackTrace();
		}

		if (source == stuR) {
			cards.show(pane, "0");
			Reset_S_Pane();
			Reset_M_Pane();
			setSize(400, 377);
		}
		if (source == stuQ) {
			cards.show(pane, "1");
			Reset_S_Pane();
			Reset_M_Pane();
			setSize(400, 377);
		}
		if (source == stuU) {
			cards.show(pane, "2");
			Reset_S_Pane();
			Reset_M_Pane();
			setSize(400, 377);
		}
		if (source == stuD) {
			cards.show(pane, "3");
			Reset_S_Pane();
			Reset_M_Pane();
			setSize(400, 377);
		}
		if (source == majorR) {
			cards.show(pane, "4");
			Reset_S_Pane();
			Reset_M_Pane();
			setSize(400, 250);
		}
		if (source == majorQ) {
			cards.show(pane, "5");
			Reset_S_Pane();
			Reset_M_Pane();
			setSize(400, 250);
		}
		if (source == majorU) {
			cards.show(pane, "6");
			Reset_S_Pane();
			Reset_M_Pane();
			setSize(400, 250);
		}
		if (source == majorD) {
			cards.show(pane, "7");
			Reset_S_Pane();
			Reset_M_Pane();
			setSize(400, 250);
		}
	}

	public void Reset_S_Pane() {

		SR_Name.setText("");
		SR_Sex.setText("");
		SR_Class.setText("");

		SR_Major.setSelectedItem("");
		SQ_ID.setText("");
		SQ_Name.setText("");
		SQ_Sex.setText("");
		SQ_Class.setText("");
		SQ_Major.setText("");

		SU_ID.setText("");
		SU_Name.setText("");
		SU_Sex.setText("");
		SU_Class.setText("");
		SU_Major.setText("");

		SD_Field.setText("");
	}

	public void Reset_M_Pane() {
		MR_Name.setText("");
		MQ_ID.setText("");
		MQ_Name.setText("");
		MU_ID.setText("");
		MU_Name.setText("");
		MD_Field.setText("");
	}

	public boolean isStuExist(int ID) {
		try {
			ResultSet rs = state.executeQuery("Select * from student");
			while (rs.next()) {
				int rsID = rs.getInt("ID");
				stuID = rsID;
				SR_ID.setText(String.valueOf(++stuID));
				if (ID == rsID)
					return true;
			}
		} catch (SQLException e) {

			e.printStackTrace();
		}
		return false;
	}

	public boolean isMajorExist(int ID) {
		try {
			ResultSet rs = state.executeQuery("Select *from major");
			while (rs.next()) {
				int rsID = rs.getInt("ID");
				if (!MID.contains(rsID))
					MID.add(rsID);
				majorID = rsID;
				MR_ID.setText(String.valueOf(++majorID));
				if (ID == rsID)
					return true;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return false;
	}

	public void showInformation_SU_Pane() {
		String SuID = SU_ID.getText();
		if (SuID.length() > 0) {
			sql = "Select * from student where ID="+SuID+";";
		

			try {
				ResultSet rs = state.executeQuery(sql);
				while (rs.next()) {
					SU_Name.setText(rs.getString(2));
					SU_Sex.setText(rs.getString(3));
					SU_Class.setText(String.valueOf(rs.getInt(4)));
					SU_Major.setText(String.valueOf(rs.getInt(5)));
				}

			} catch (SQLException e1) {
				e1.printStackTrace();
			}
		}
	}

	public static void main(String args[]) {

		try {
			UIManager
					.setLookAndFeel("org.jvnet.substance.skin.SubstanceRavenGraphiteLookAndFeel");
		} catch (ClassNotFoundException | InstantiationException
				| IllegalAccessException | UnsupportedLookAndFeelException e) {
			e.printStackTrace();
		}
		JFrame.setDefaultLookAndFeelDecorated(true);
		JDialog.setDefaultLookAndFeelDecorated(true);
		MainFrame MF = new MainFrame();
		new StuDataBase(MF);

	}

}
//源代码片段来自云代码http://yuncode.net
			


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...