基於學生信息管理系統的數據庫系統課程設計(MySQL)

題目:學生信息管理系統


1 系統需求分析


學校每年都有新生入學、老生畢業,還有其他各種人事變動。如何有效地管理這些學生
的信息,幫助學校和老師掌握學生的情況,這就是學生信息管理系統需要完成的功能。
1.1 系統功能分析
本系統主要的功能是收集學生的個人信息,以便向教師提供每個學生在校的情況。系統
的主要功能有:
 學生個人信息輸入,包括:姓名、性別、院系、生日、籍貫、生源所在地等。
 學生流動情況的輸入,包括:轉系、休學、復學、退學、畢業。
 獎懲情況的輸入。
 學生個人情況查詢和修改,包括流動情況和獎罰情況。   

1.2 系統功能模塊設計(劃分)
根據系統功能要求可以將系統分解成幾個模
塊來分別設計應用程序界面,如圖 1 所示。

   

1.3 與其它系統的關係
學生信息管理系統是校園信息管理系統的一
個組成部分。它爲其它系統,如班級信息管理系統、
教學管理系統、成績單系統、宿舍分配系統等,提供學生的基本情況。同時需要其他系統提
供的班級設置和院系設置等情況。這些系統可以使用同一個數據庫,直接相互調用所需的數
據。

2 數據庫設計


2.1 數據庫需求分析
根據上一節的數據流程圖,可以列出以下記錄學生信息所需的數據項和數據結構:
 學生:學號、姓名、性別、生日、籍貫、所在院系、所在班級。
 處罰記錄:記錄號、級別、處罰對象、記錄時間、詳細描述、是否生效。
 獎勵記錄:記錄號、級別、獎勵對象、記錄時間、詳細描述。
 學籍變更記錄:記錄號、變更情況、記錄對象、記錄時間、詳細描述。
圖 1、學生信息管理系統功能模塊圖
所需的外部數據支持:
 班級:班級編號、班級名稱、所屬院系。
 院系:代碼、名稱。

2.2 數據庫概念結構設計
圖 3 是本系統所需數據的 E-R 模型圖

     E-R圖:

 

 

2.3 數據庫邏輯結構設計
根據系統 E-R 圖,需要設計 4 個數據表來存放學生的信息。爲了系統的完整,系統中
包括了應用程序設計中所需的 2 個外部數據表。爲了優化數據表結構,部分字段採用代碼形
式,因此需要附加 3 個代碼表。這 9 個數據表的結構如表 1 到表 9 所示。

 2.4 數據庫的建立
2.4.1 數據庫的建立(請設計者完成)
2.4.2 初始數據的輸入
數據表創建成功後,數據庫中還沒有實際的數據。爲了保證外部鍵能使用,數據需要提
前輸入,如院系編號、班級編號、學籍變更代碼和獎懲級別等等。
學籍變更代碼和獎懲級別的主關鍵字 CODE 從 0 開始用阿拉伯數字依次編號,便於程
序設計時,採用單選按鈕來選擇。
本系統中所用到的學籍變更和獎懲級別代碼如表 10 至表 12 所示(請設計者完成這些數
據表的邏輯結構)。

表10 學籍變更代碼表
代碼                說明
0                     轉系
1                     休學
2                     復學
3                     退學
4                     畢業


表11 獎勵級別代碼
代碼                說明
0             校特等獎學金
1             校一等獎學金
2             校二等獎學金
3             校三等獎學金
4             系一等獎學金
5             系二等獎學金
6             系三等獎學金


表12 處罰級別代碼
代碼                說明
0                     警告
1                 嚴重警告
2                     記過
3                   記大過
4                     開除

 

3 各功能模塊的設計與實現


3.1 功能說明
1、學生個人信息輸入
2、學籍變更情況的輸入
3、獎勵情況的輸入
4、處罰情況的輸入
5、學生個人情況查詢和修改


3.2 用戶界面設計
完成數據庫創建和功能說明以後,我們可以進行下一步工作,即設計用戶界面。由於本
系統管理內容比較簡單,且爲校園管理信息系統的一部分,因此使用一個窗體不同的標籤頁
來完成系統要求的 5 項功能。
我們把學生信息管理系統的窗體分成____個主要部分,如圖____所示。
1、應用程序主窗體的創建
2、學生個人信息輸入界面
3、學籍變更情況輸入界面
4、獎勵情況輸入界面
5、處罰情況輸入界面
6、學生個人情況查詢和修改界面


3.3 各功能模塊的實現
1、學生個人信息輸入
2、學籍變更情況輸入
3、獎勵情況輸入
4、處罰情況輸入
5、學生個人情況查詢和修改
 

界面和核心代碼分析 :

本管理系統採用選項卡面板,將多個界面放在主窗體下,每個界面完成不同的功能,如信息輸入獎勵,處罰,學籍變更等。

 

 

 

 

 

 

 

以下是MySQL的表單結構,一共有9個表

 

數據表創建成功後,數據庫中還沒有實際的數據。爲了保證外部鍵能使用,數據需要提

前輸入,如院系編號、班級編號、學籍變更代碼和獎懲級別等等.

 

以下是源代碼(一共有兩個文件): 

第一個文件是:QUESTIONONE2.java

 

package ZTY;
import java.awt.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
public class QUESTIONONE2 extends JFrame{
	JPanel jap =null;
	
	JPanel jap1=null;
	JTextField JaTF1=null;JLabel jab1 = null;
	
	JPanel jap2=null;
	JTextField JaTF2=null;JLabel jab2 = null;
	
	JPanel jap3=null;
	JTextField JaTF3=null;JLabel jab3 = null;
	
	JPanel jap4=null;
	JTextField JaTF4=null;JLabel jab4 = null;
	
	JPanel jap5=null;
	JTextField JaTF5=null;JLabel jab5 = null;
	
	JPanel jap6=null;
	JTextField JaTF6=null;JLabel jab6 = null;
	
	JPanel jap7=null;
	JTextField JaTF7=null;JLabel jab7 =null;
	
	JPanel jap8=null;
	JButton jab=null;
	
	
	JPanel jap9=null;JLabel jab9=null;
	
	
	JPanel jbp =null;
	
	JPanel jbp1=null;JTextField JbTF1=null;JLabel jbb1 = null;
	JPanel jbp2=null;JTextField JbTF2=null;JLabel jbb2 = null;
	JPanel jbp3=null;JTextField JbTF3=null;JLabel jbb3 = null;
	JPanel jbp4=null;JTextField JbTF4=null;JLabel jbb4 = null;
	JPanel jbp5=null;JTextField JbTF5=null;JLabel jbb5 = null;
	JButton jbb=null;
	
	
	JPanel jcp =null;
	
	JPanel jcp1=null;JTextField JcTF1=null;JLabel jcb1 = null;
	JPanel jcp2=null;JTextField JcTF2=null;JLabel jcb2 = null;
	JPanel jcp3=null;JTextField JcTF3=null;JLabel jcb3 = null;
	JPanel jcp4=null;JTextField JcTF4=null;JLabel jcb4 = null;
	JPanel jcp5=null;JTextField JcTF5=null;JLabel jcb5 = null;
	JButton jcb=null;
	
	
	JPanel jdp =null;
	
	JPanel jdp1=null;JTextField JdTF1=null;JLabel jdb1 = null;
	JPanel jdp2=null;JTextField JdTF2=null;JLabel jdb2 = null;
	JPanel jdp3=null;JTextField JdTF3=null;JLabel jdb3 = null;
	JPanel jdp4=null;JTextField JdTF4=null;JLabel jdb4 = null;
	JPanel jdp5=null;JTextField JdTF5=null;JLabel jdb5 = null;
	JPanel jdp6=null;JTextField JdTF6=null;JLabel jdb6 = null;
	JButton jdb=null;
	
	
	JPanel jep =null;
	
	JPanel jep1=null;JTextField JeTF1=null;JLabel jeb1 = null;
	JPanel jep2=null;JButton JeB1=null;
	JPanel jep3=null;JButton JeB2=null;
	JPanel jep4=null;JTextField JeTF4=null;JLabel jeb4 = null;
	JPanel jep5=null;JTextField JeTF5=null;JLabel jeb5 = null;
	JPanel jep6=null;JTextField JeTF6=null;JLabel jeb6 = null;
	JPanel jep7=null;JTextField JeTF7=null;JLabel jeb7 = null;
	JPanel jep8=null;JTextField JeTF8=null;JLabel jeb8 = null;
	JPanel jep9=null;JTextField JeTF9=null;JLabel jeb9 = null;
	JPanel jep10=null;JTextField JeTF10=null;JLabel jeb10 = null;
	JPanel jep11=null;JTextField JeTF11=null;JLabel jeb11 = null;
	JPanel jep12=null;JTextField JeTF12=null;JLabel jeb12 = null;
	JPanel jep13=null;JTextField JeTF13=null;JLabel jeb13 = null;
	JTabbedPane JTP =null;
	
	DbProcess2 dbprocess=new DbProcess2();
	public QUESTIONONE2 (){  
				jap=new JPanel();//return jap;
					
				jap1=new JPanel();
				JaTF1=new JTextField(8);
				jab1 = new JLabel("學號");
				jab1.setFont(new Font(null,Font.PLAIN,20));
				jap1.add(jab1);
				jap1.add(JaTF1);
				
				jap2=new JPanel();
				JaTF2=new JTextField(8);
				jab2 = new JLabel("姓名");
				jab2.setFont(new Font(null,Font.PLAIN,20));
				jap2.add(jab2);
				jap2.add(JaTF2);
						
				jap3=new JPanel();
				JaTF3=new JTextField(8);
				jab3 = new JLabel("性別");
				jab3.setFont(new Font(null,Font.PLAIN,20));
				jap3.add(jab3);
				jap3.add(JaTF3);
				
				jap4=new JPanel();
				JaTF4=new JTextField(8);
				jab4 = new JLabel("生日");
				jab4.setFont(new Font(null,Font.PLAIN,20));
				jap4.add(jab4);
				jap4.add(JaTF4);
				
				jap5=new JPanel();
				JaTF5=new JTextField(8);
				jab5 = new JLabel("籍貫");
				jab5.setFont(new Font(null,Font.PLAIN,20));
				jap5.add(jab5);
				jap5.add(JaTF5);
				
				jap6=new JPanel();
				JaTF6=new JTextField(8);
				jab6 = new JLabel("院系");
				jab6.setFont(new Font(null,Font.PLAIN,20));
				jap6.add(jab6);
				jap6.add(JaTF6);
				
				jap7=new JPanel();
				JaTF7=new JTextField(8);
				jab7 = new JLabel("班級");
				jab7.setFont(new Font(null,Font.PLAIN,20));
				jap7.add(jab7);
				jap7.add(JaTF7);
				
				jap8=new JPanel();
				jab=new JButton("輸入");
				jab.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e)
					{
						if(e.getActionCommand().equals("輸入")
								&&!JaTF1.getText().isEmpty()
								&&!JaTF2.getText().isEmpty()
								&&!JaTF3.getText().isEmpty()
								&&!JaTF4.getText().isEmpty()
								&&!JaTF5.getText().isEmpty()
								&&!JaTF6.getText().isEmpty()
								&&!JaTF7.getText().isEmpty())
						{
							System.out.println("actionPerformed(). 輸入");
							String sNo=JaTF1.getText().trim();
							String sName=JaTF2.getText().trim();
							String sSex=JaTF3.getText().trim();
							String sBir=JaTF4.getText().trim();
							String sHom=JaTF5.getText().trim();
							String sDep=JaTF6.getText().trim();
							String sCla=JaTF7.getText().trim();
							String sql = "insert into student(STUDENTID,NAME,SEX,CLASS,DEPARTMENT,BIRTHDAY,NATIVE_PLACE) values(";
							sql = sql + sNo + ",'"+ sName + "','" + sSex + "'," + sCla + "," + sDep + ",'" + sBir + "','" + sHom + "')";
							System.out.println(sql);
							new DbProcess2().executeUpdate(sql);	
						}
					}
				});
				Dimension preferredSize = new Dimension(150,20);
				jab.setPreferredSize(preferredSize);
				jap8.add(jab);
				
				jab9=new JLabel("<html>作者:ZTY</html>");
				jap9=new JPanel(new FlowLayout());
				jap9.add(jab9);
				
				jap.add(jap1);
				jap.add(jap2);
				jap.add(jap3);
				jap.add(jap4);
				jap.add(jap5);
				jap.add(jap6);
				jap.add(jap7);
				jap.add(jap8);
				jap.add(jap9);
				

				jbp=new JPanel();//return jbp;
				jbp1=new JPanel();
				jbp2=new JPanel();
				jbp3=new JPanel();
				jbp4=new JPanel();
				jbp5=new JPanel();
				
				JbTF1=new JTextField(8);
				jbb1=new JLabel("記錄號");
				jbb1.setFont(new Font(null,Font.PLAIN,20));
				jbp1.add(jbb1);jbp1.add(JbTF1);
			
				JbTF2=new JTextField(8);
				jbb2=new JLabel("學號");
				jbb2.setFont(new Font(null,Font.PLAIN,20));
				jbp2.add(jbb2);jbp2.add(JbTF2);
				
				JTextField JbTF3=new JTextField(4);
				JLabel jbb3=new JLabel("變更代碼");
				jbb3.setFont(new Font(null,Font.PLAIN,20));
				jbp3.add(jbb3);jbp3.add(JbTF3);
				
				JbTF4=new JTextField(6);
				jbb4=new JLabel("記錄時間");
				jbb4.setFont(new Font(null,Font.PLAIN,20));
				jbp4.add(jbb4);jbp4.add(JbTF4);
				
				JbTF5=new JTextField(11);
				jbb5=new JLabel("描述");
				jbb5.setFont(new Font(null,Font.PLAIN,20));
				jbp5.add(jbb5);jbp5.add(JbTF5);
				jbb=new JButton("輸入");
				Dimension preferredSize2 = new Dimension(136,20);
				jbb.setPreferredSize(preferredSize2);
				jbp5.add(jbb);
				

				jbp.add(jbp1);jbp.add(jbp2);jbp.add(jbp3);jbp.add(jbp4);jbp.add(jbp5);
				jbb.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e)
					{
						if(e.getActionCommand().equals("輸入")
								&&!JbTF1.getText().isEmpty()
								&&!JbTF2.getText().isEmpty()
								&&!JbTF3.getText().isEmpty()
								&&!JbTF4.getText().isEmpty()
								&&!JbTF5.getText().isEmpty())
						{
							System.out.println("actionPerformed(). 輸入");
							String ID=JbTF1.getText().trim();
							String SI=JbTF2.getText().trim();
							String CE=JbTF3.getText().trim();
							String R_T=JbTF4.getText().trim();
							String DSRPIN=JbTF5.getText().trim();
	
						String sql = "insert into chang(ID,STUDENTID,CHAN,REC_TIME,DSRPIN) values(";
						sql=sql +ID+','+SI+','+CE+','+"'"+R_T+"'"+ ','+"'"+DSRPIN+"')";
						System.out.println(sql);
						new DbProcess2().executeUpdate(sql);
						}
					}
				});
			
				jcp=new JPanel();//return jcp;
				jcp1=new JPanel();
				jcp2=new JPanel();
				jcp3=new JPanel();
				jcp4=new JPanel();
				jcp5=new JPanel();
				
				JcTF1=new JTextField(8);
				jcb1=new JLabel("記錄號");
				jcb1.setFont(new Font(null,Font.PLAIN,20));
				jcp1.add(jcb1);jcp1.add(JcTF1);
				
				JcTF2=new JTextField(8);
				jcb2=new JLabel("學號");
				jcb2.setFont(new Font(null,Font.PLAIN,20));
				jcp2.add(jcb2);jcp2.add(JcTF2);
				
				JcTF3=new JTextField(4);
				jcb3=new JLabel("級別代碼");
				jcb3.setFont(new Font(null,Font.PLAIN,20));
				jcp3.add(jcb3);jcp3.add(JcTF3);
				
				JcTF4=new JTextField(6);
				jcb4=new JLabel("記錄時間");
				jcb4.setFont(new Font(null,Font.PLAIN,20));
				jcp4.add(jcb4);jcp4.add(JcTF4);
				
				JcTF5=new JTextField(11);
				jcb5=new JLabel("描述");
				jcb5.setFont(new Font(null,Font.PLAIN,20));
				jcp5.add(jcb5);jcp5.add(JcTF5);
				jcb=new JButton("輸入");
				Dimension preferredSize3 = new Dimension(136,20);
				jcb.setPreferredSize(preferredSize3);
				jcp5.add(jcb);
				
				jcp.add(jcp1);jcp.add(jcp2);jcp.add(jcp3);jcp.add(jcp4);jcp.add(jcp5);
				jcb.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e)
					{
						if(e.getActionCommand().equals("輸入")
								&&!JcTF1.getText().isEmpty()
								&&!JcTF2.getText().isEmpty()
								&&!JcTF3.getText().isEmpty()
								&&!JcTF4.getText().isEmpty()
								&&!JcTF5.getText().isEmpty())
						{
							System.out.println("actionPerformed(). 輸入");
							String ID=JcTF1.getText().trim();
							String SI=JcTF2.getText().trim();
							String LEVELS=JcTF3.getText().trim();
							String R_T=JcTF4.getText().trim();
							String DSRPIN=JcTF5.getText().trim();
				
						String sql = "insert into reward(ID,STUDENTID,LEVELS,REC_TIME,DSRPIN) values(";
						sql=sql +ID+','+SI+','+LEVELS+','+"'"+R_T+"'"+ ','+"'"+DSRPIN+"')";
						System.out.println(sql);
						new DbProcess2().executeUpdate(sql);
						}
					}
				});
					
				
				jdp=new JPanel();//	return jdp;
				jdp1=new JPanel();
				jdp2=new JPanel();
				jdp3=new JPanel();
				jdp4=new JPanel();
				jdp5=new JPanel();
				jdp6=new JPanel();
				
				JdTF1=new JTextField(8);
				jdb1=new JLabel("記錄號");
				jdb1.setFont(new Font(null,Font.PLAIN,20));
				jdp1.add(jdb1);jdp1.add(JdTF1);
				
				JdTF2=new JTextField(8);
				jdb2=new JLabel("學號");
				jdb2.setFont(new Font(null,Font.PLAIN,20));
				jdp2.add(jdb2);jdp2.add(JdTF2);
				
				JdTF3=new JTextField(5);
				jdb3=new JLabel("級別代碼");
				jdb3.setFont(new Font(null,Font.PLAIN,20));
				jdp3.add(jdb3);jdp3.add(JdTF3);
				
				JdTF4=new JTextField(6);
				jdb4=new JLabel("記錄時間");
				jdb4.setFont(new Font(null,Font.PLAIN,20));
				jdp4.add(jdb4);jdp4.add(JdTF4);
				
				JdTF5=new JTextField(10);
				jdb5=new JLabel("描述");
				jdb5.setFont(new Font(null,Font.PLAIN,20));
				jdp5.add(jdb5);jdp5.add(JdTF5);
				
				JdTF6=new JTextField(4);
				jdb6=new JLabel("是否生效");
				jdb6.setFont(new Font(null,Font.PLAIN,20));
				jdp6.add(jdb6);jdp6.add(JdTF6);
				
				jdb=new JButton("輸入");
				Dimension preferredSize4 = new Dimension(136,20);
				jdb.setPreferredSize(preferredSize4);
				
				jdp.add(jdp1);jdp.add(jdp2);jdp.add(jdp3);jdp.add(jdp4);jdp.add(jdp5);jdp.add(jdp6);jdp.add(jdb);
				jdb.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e)
					{
						if(e.getActionCommand().equals("輸入")
								&&!JdTF1.getText().isEmpty()
								&&!JdTF2.getText().isEmpty()
								&&!JdTF3.getText().isEmpty()
								&&!JdTF4.getText().isEmpty()
								&&!JdTF5.getText().isEmpty()
								&&!JdTF6.getText().isEmpty())
						{
							System.out.println("actionPerformed(). 輸入");
							String ID=JdTF1.getText().trim();
							String SI=JdTF2.getText().trim();
							String LEVELS=JdTF3.getText().trim();
							String R_T=JdTF4.getText().trim();
							String DSRPIN=JdTF5.getText().trim();
							String ENABLE=JdTF6.getText().trim();
							
						String sql = "insert into punishment(ID,STUDENTID,LEVELS,REC_TIME,ENABLE,DSRPIN) values(";
						sql=sql +ID+','+SI+','+LEVELS+','+"'"+R_T+"'"+ ','+ "'" + ENABLE + "',"+"'"+DSRPIN+"')";
						System.out.println(sql);
						new DbProcess2().executeUpdate(sql);
						}//輸入級別爲0-4之間不能超過4
					}
				});
						
				
				jep=new JPanel();//	return jep;
				jep1=new JPanel();
				jep2=new JPanel();
				jep3=new JPanel();
				jep4=new JPanel();
				jep5=new JPanel();
				jep6=new JPanel();
				jep7=new JPanel();
				jep8=new JPanel();
				jep9=new JPanel();
				jep10=new JPanel();
				jep11=new JPanel();
				jep12=new JPanel();
				jep13=new JPanel();
				
				JeTF1=new JTextField(8);
				jeb1=new JLabel("學號");
				jeb1.setFont(new Font(null,Font.PLAIN,20));
				jep1.add(jeb1);jep1.add(JeTF1);
				
				JeB1=new JButton("查詢");
				Dimension preferredSize5 = new Dimension(136,20);
				JeB1.setPreferredSize(preferredSize5);
				JeB1.addActionListener(new ActionListener()
				{
					public void actionPerformed(ActionEvent e)
					{
						if(e.getActionCommand().equals("查詢")&&!JeTF1.getText().trim().isEmpty())
						{
							String sql=JeTF1.getText().trim();
							queryall(sql);
						}
					}
				});
				jep2.add(JeB1);
				
				JeB2=new JButton("修改");
				Dimension preferredSize6 = new Dimension(136,20);
				JeB2.setPreferredSize(preferredSize6);
				JeB2.addActionListener(new ActionListener()
				{
					public void actionPerformed(ActionEvent e)
					{
						if(e.getActionCommand().equals("修改")&&!JeTF1.getText().trim().isEmpty())
						{
							String sql=JeTF1.getText().trim();
							changeall(sql);
						}
					}
				});
				
				jep3.add(JeB2);
				
				JeTF4=new JTextField(8);
				jeb4=new JLabel("學籍變動");
				jeb4.setFont(new Font(null,Font.PLAIN,20));
				jep4.add(jeb4);jep4.add(JeTF4);
				
				JeTF5=new JTextField(8);
				jeb5=new JLabel("記錄時間");
				jeb5.setFont(new Font(null,Font.PLAIN,20));
				jep5.add(jeb5);jep5.add(JeTF5);
				
				JeTF6=new JTextField(8);
				jeb6=new JLabel("描述");
				jeb6.setFont(new Font(null,Font.PLAIN,20));
				jep6.add(jeb6);jep6.add(JeTF6);
				
				JeTF7=new JTextField(8);
				jeb7=new JLabel("獎勵");
				jeb7.setFont(new Font(null,Font.PLAIN,20));
				jep7.add(jeb7);jep7.add(JeTF7);
				
				JeTF8=new JTextField(8);
				jeb8=new JLabel("記錄時間");
				jeb8.setFont(new Font(null,Font.PLAIN,20));
				jep8.add(jeb8);jep8.add(JeTF8);
				
				JeTF9=new JTextField(8);
				jeb9=new JLabel("描述");
				jeb9.setFont(new Font(null,Font.PLAIN,20));
				jep9.add(jeb9);jep9.add(JeTF9);
				
				JeTF10=new JTextField(4);
				jeb10=new JLabel("處罰");
				jeb10.setFont(new Font(null,Font.PLAIN,20));
				jep10.add(jeb10);jep10.add(JeTF10);
				
				JeTF11=new JTextField(3);
				jeb11=new JLabel("記錄時間");
				jeb11.setFont(new Font(null,Font.PLAIN,20));
				jep11.add(jeb11);jep11.add(JeTF11);
				
				JeTF12=new JTextField(8);
				jeb12=new JLabel("描述");
				jeb12.setFont(new Font(null,Font.PLAIN,20));
				jep12.add(jeb12);jep12.add(JeTF12);
				
				JeTF13=new JTextField(2);
				jeb13=new JLabel("是否生效");
				jeb13.setFont(new Font(null,Font.PLAIN,20));
				jep13.add(jeb13);jep13.add(JeTF13);
				
				jep.add(jep1);jep.add(jep2);jep.add(jep3);
				jep.add(jep4);jep.add(jep5);jep.add(jep6);
				jep.add(jep7);jep.add(jep8);jep.add(jep9);
				jep.add(jep10);jep.add(jep11);jep.add(jep12);jep.add(jep13);
				
				JTP=new JTabbedPane();
				JTP.addTab("學生個人信息輸入界面 ",jap);
				JTP.addTab("學籍變更情況輸入界面",jbp);
				JTP.addTab("獎勵信息輸入界面",jcp);
				JTP.addTab("處罰情況輸入界面",jdp);
				JTP.addTab("學生個人情況查詢和修改界面",jep);	
				JTP.addChangeListener(new ChangeListener() {
			            @Override
			            public void stateChanged(ChangeEvent e) {
			                System.out.println("當前選中的選項卡: " + JTP.getSelectedIndex());
			            }
			        });
			        // 設置默認選中的選項卡
			        JTP.setSelectedIndex(0);
			        this.add(JTP);
			        this.setLayout(new GridLayout(2, 1));
			        this.setContentPane(JTP);
			        this.setSize(600,400);
			        this.setLocation(400, 180);
			        this.setTitle("學生信息管理系統");
			    	this.setVisible(true);
					this.setResizable(false);
					this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
					
}
    public static void main(String args[]){								
        // TODO Auto-generated method stub
		QUESTIONONE2 hh= new  QUESTIONONE2();
    }
    
    public void queryall(String sql)
    {
    	String s1="select change_code.DSRPIN,chang.REC_TIME,chang.DSRPIN as REASON from chang join change_code on change_code.CODE = chang.CHAN";
    	s1=s1+" where STUDENTID = "+sql;
    	
    	String s2="select reward_levels.DSRPIN,reward.REC_TIME,reward.DSRPIN as REASON from reward join reward_levels on reward_levels.CODE=reward.LEVELS";
    	s2=s2+" where STUDENTID = "+sql;
  
    	String s3="select punish_levels.DSRPIN,punishment.REC_TIME,punishment.DSRPIN as REASON,punishment.ENABLE from punishment join punish_levels on punish_levels.CODE=punishment.LEVELS";
    	s3=s3+" where STUDENTID = "+sql;
    	try{
    		dbprocess.connect();
    		dbprocess.sta=dbprocess.con.createStatement();
    		ResultSet RS1=dbprocess.sta.executeQuery(s1);
    		while(RS1.next())
    		{
    		String P1=RS1.getString("DSRPIN");
    		String P2=RS1.getString("REC_TIME");
    		String P3=RS1.getString("REASON");
    		System.out.println(P1);System.out.println(P2);System.out.println(P3);
    		JeTF4.setText(P1);JeTF5.setText(P2);JeTF6.setText(P3);
    		}
    	}
    	catch(SQLException ex) { 
    			System.err.println(ex.getMessage());		
    		}
        	dbprocess.disconnect();
    	
        try {
        	dbprocess.connect();
    		dbprocess.sta=dbprocess.con.createStatement();
    		ResultSet RS1=dbprocess.sta.executeQuery(s2);
    		while(RS1.next())
    		{
    			String P4=RS1.getString("DSRPIN");
        		String P5=RS1.getString("REC_TIME");
        		String P6=RS1.getString("REASON");
        		System.out.println(P4);System.out.println(P5);System.out.println(P6);
        		JeTF7.setText(P4);JeTF8.setText(P5);JeTF9.setText(P6);
    		}
        	}
    	catch(SQLException ex) { 
    			System.err.println(ex.getMessage());		
    		}
        	dbprocess.disconnect();
    		
        try {
        	dbprocess.connect();
    		dbprocess.sta=dbprocess.con.createStatement();
    		ResultSet RS1=dbprocess.sta.executeQuery(s3);
    		while(RS1.next())
    		{
    			String P7=RS1.getString("DSRPIN");
        		String P8=RS1.getString("REC_TIME");
        		String P9=RS1.getString("REASON");
        		String P10=RS1.getString("ENABLE");
        		System.out.println(P7);System.out.println(P8);System.out.println(P9);
        		JeTF10.setText(P7);JeTF11.setText(P8);JeTF12.setText(P9);JeTF13.setText(P10);
    		}
    	}
    	catch(SQLException ex) { 
			System.err.println(ex.getMessage());		
		}
    	dbprocess.disconnect();
    }
 public void changeall(String sql)
 {
	 String changchan=JeTF4.getText();
	 String changtime=JeTF5.getText();
	 String changedes=JeTF6.getText();
	 String rew=JeTF7.getText();
	 String rewtime=JeTF8.getText();
	 String rewdesc=JeTF9.getText();
	 String pun=JeTF10.getText();
	 String puntime=JeTF11.getText();
	 String pundesc=JeTF12.getText();
	 String punfun=JeTF13.getText();

	 
	 String d1="delete from chang where STUDENTID = ";
	 d1=d1+sql;;
	 System.out.println(d1);
	 
	 String a1="insert into chang(STUDENTID,CHAN,REC_TIME,DSRPIN) values (" 
	 + sql +","+ changchan +","+"'" +changtime+"','"+changedes+ "') ";
	 System.out.println(a1);

	 
	 String d2="delete from reward where STUDENTID = ";
	 d2=d2+sql;
	 System.out.println(d2);
	 
	 String a2="insert into reward(STUDENTID,LEVELS,REC_TIME,DSRPIN) values("
			 + sql + "," + rew + ",'" + rewtime + "','" + rewdesc + "')";
	 System.out.println(a2);

	 
	 String d3="delete from punishment where STUDENTID = ";
	 d3=d3+sql;
	 System.out.println(d3);

	 String a3="insert into punishment(STUDENTID,LEVELS,REC_TIME,ENABLE,DSRPIN) values("
			 + sql + "," + pun + ",'" + puntime +"','" + punfun +"','" + pundesc + "')" ;      
	 System.out.println(a3);
	 

	 try {
     		dbprocess.connect();
     		dbprocess.sta=dbprocess.con.createStatement();
     		dbprocess.sta.execute(d1);
     		dbprocess.sta.execute(a1);
     		JeTF4.setText("");JeTF5.setText("");JeTF6.setText("");
	 	}
	catch(SQLException ex) { 
			System.err.println(ex.getMessage());
	}
		dbprocess.disconnect();
		
	 try {
		 	dbprocess.connect();
		 	dbprocess.sta=dbprocess.con.createStatement();
		 	dbprocess.sta.execute(d2);
		 	dbprocess.sta.execute(a2);
		 	JeTF7.setText("");JeTF8.setText("");JeTF9.setText("");
		}
	catch(SQLException ex) { 
			System.err.println(ex.getMessage());
	}
		dbprocess.disconnect();
		
	try {
			 dbprocess.connect();
			 dbprocess.sta=dbprocess.con.createStatement();
			 dbprocess.sta.execute(d3);
			 dbprocess.sta.execute(a3);
			 JeTF10.setText("");JeTF11.setText("");JeTF12.setText("");JeTF13.setText("");
			}
		catch(SQLException ex) { 
				System.err.println(ex.getMessage());
		}
			dbprocess.disconnect();	
 }
}

第二個文件:DbProcess2.java

package ZTY;
import java.sql.*;
import ZTY.QUESTIONONE;
public class DbProcess2{
	public Connection con = null;public Statement sta=null;
	  static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";  
	   static final String DB_URL = "jdbc:mysql://localhost:3306/q1?useSSL=false&serverTimezone=UTC";
	   static final String USER = "root";
	    static final String PASS = "............";
	    public DbProcess2(){
			try {
				//mysql數據庫設置驅動程序類型
				Class.forName(JDBC_DRIVER); 
				System.out.println("連接數據庫...");
				System.out.println("mysql數據庫驅動加載成功");

			}
			catch(java.lang.ClassNotFoundException e) 
			{
				e.printStackTrace();
			}		
}
	    public void executeUpdate(String sql)
	    {
	    	connect();
	    	try{
	    		sta=con.createStatement();
	    		sta.execute(sql);
	    	}
	    	catch(SQLException ex) { 
				System.err.println(ex.getMessage());		
			}
	    	disconnect();
	    }
	    
	    public void queryall(String sql)
	    {
	    	connect();
	    	String s1="select change_code.DSRPIN,chang.REC_TIME,chang.DSRPIN as REASON from chang join change_code on change_code.CODE = chang.CHAN";
	    	s1=s1+" where STUDENTID = "+sql;
	    	System.out.println(s1);
	    	
	    	String s2="select reward_levels.DSRPIN,reward.REC_TIME,reward.DSRPIN as REASON from reward join reward_levels on reward_levels.CODE=reward.LEVELS";
	    	s2=s2+" where STUDENTID = "+sql;
	    	System.out.println(s2);
	    	
	    	String s3="select punish_levels.DSRPIN,punishment.REC_TIME,punishment.DSRPIN as REASON,punishment.ENABLE from punishment join punish_levels on punish_levels.CODE=punishment.LEVELS";
	    	s3=s3+" where STUDENTID = "+sql;
	    	System.out.println(s3);
	    	
	    	try{
	    		sta=con.createStatement();
	    		ResultSet RS1=sta.executeQuery(s1);
	    		while(RS1.next())
	    		{
	    		String P1=RS1.getString("DSRPIN");
	    		String P2=RS1.getString("REC_TIME");
	    		String P3=RS1.getString("REASON");
	    		System.out.println(P1);System.out.println(P2);System.out.println(P3);
	    		}
	    	}
	    	catch(SQLException ex) { 
				System.err.println(ex.getMessage());		
			}
	    	disconnect();
	    }
	    
	    
	    
public void connect()
{
			try{
				//mysql數據庫
				con = DriverManager.getConnection(DB_URL,USER,PASS);  
				

				if(con!=null){
		            System.out.println("數據庫連接成功");
		        }
			}
			catch(Exception e){
				e.printStackTrace();
			}
}	 


public void disconnect(){
	try{
		if(con != null){
			System.out.println("數據庫斷開成功");
			con.close();
			con = null;
		}
	}
	catch(Exception e){
		e.printStackTrace();
	}
}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章