国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

這篇具有很好參考價(jià)值的文章主要介紹了學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

本科參與項(xiàng)目文檔合集: 點(diǎn)擊跳轉(zhuǎn)~

學(xué)生管理系統(tǒng)

Student Management System


學(xué)校:山東科技大學(xué)
指導(dǎo)老師:楊 * * 教授
學(xué)號(hào):2019032****
學(xué)生姓名:安**
專業(yè)班級(jí):計(jì)算機(jī)19-1


???????????????????????????????????山東科技大學(xué) 二〇二〇年七月

1. 總體設(shè)計(jì)與要求

項(xiàng)目要求
1.1要求
?設(shè)計(jì)并編程實(shí)現(xiàn)一款學(xué)生個(gè)人簡(jiǎn)歷管理小系統(tǒng)。該系統(tǒng)包括如下功能:
1.1.1個(gè)人簡(jiǎn)歷內(nèi)容應(yīng)至少包括
?學(xué)生學(xué)號(hào)、姓名、性別、出生日期、個(gè)人愛(ài)好、簡(jiǎn)歷等項(xiàng)目。
?實(shí)現(xiàn)方式:用Microsoft SQL Server Management Studio 18建立本地?cái)?shù)據(jù)庫(kù)并新建一個(gè)包含學(xué)生學(xué)號(hào)、姓名、性別、出生日期、個(gè)人愛(ài)好、簡(jiǎn)歷等各種信息的表格;最后與JAVA程序建立連接,并對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,進(jìn)而實(shí)現(xiàn)程序功能。
1.1.2具有學(xué)生個(gè)人信息的錄入、編輯和保存功能
?實(shí)現(xiàn)方式:首先創(chuàng)建友好用戶窗口管理員登錄界面,添加標(biāo)簽面板并加入登錄標(biāo)簽,管理員登陸成功后交互窗口到COMM Frame界面,在COMM Frame窗口中加入菜單項(xiàng)組件,分別為:信息總覽、修改信息、添加信息、查找信息這四個(gè)部分并加入到菜單中,將菜單放入菜單條里。對(duì)四個(gè)菜單項(xiàng)分別用監(jiān)視器監(jiān)視,獲取事件源后發(fā)生對(duì)應(yīng)的事件響應(yīng)。
1.1.3可以通過(guò)文本框輸入學(xué)生學(xué)號(hào),查詢并展示該生的個(gè)人簡(jiǎn)介
?實(shí)現(xiàn)方式:在點(diǎn)擊查找信息這個(gè)菜單項(xiàng)后,事件源獲取、事件發(fā)生;此時(shí)數(shù)據(jù)庫(kù)已連接(在管理員登陸界面時(shí)連接),通過(guò)獲得JTextField對(duì)象中的內(nèi)容與數(shù)據(jù)庫(kù)進(jìn)行逐條比對(duì),利用事件發(fā)生:若比對(duì)成功(即有對(duì)應(yīng)的學(xué)號(hào)或其他特性信息)則發(fā)生事件輸出顯示信息,若比對(duì)失敗則彈出文本框提示:無(wú)此信息。
項(xiàng)目總體設(shè)計(jì)
?項(xiàng)目文件分為10個(gè)部分:首先有兩個(gè)窗口:管理員登錄窗口以及實(shí)現(xiàn)其他功能的總窗口;其次就是查找類、插入類、瀏覽類、修改類這四個(gè)項(xiàng)目核心類,最后這四個(gè)核心實(shí)現(xiàn)類又一一對(duì)應(yīng)這四個(gè)函數(shù):查找、插入、瀏覽(查看)、修改,共10個(gè)部分在同一個(gè)package中,故對(duì)于訪問(wèn)權(quán)限問(wèn)題沒(méi)有過(guò)于重視,大部分都為友好類或者友好方法,具體實(shí)現(xiàn)方式下文有具體解釋,故在此不在詳述。
?項(xiàng)目顯示
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

?具體實(shí)現(xiàn)結(jié)構(gòu)圖
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

2. 開(kāi)發(fā)環(huán)境及開(kāi)發(fā)工具

2.1 開(kāi)發(fā)環(huán)境
?Java Development Kit (JDK)
?Java Runtime Environment(JRE)
?Java version “1.8.0_251”
?Java? SE Runtime Environment (build 1.8.0_251-b08)
?Java HotSpot? 64-Bit Server VM (build 25.251-b08, mixed mode)
2.2 開(kāi)發(fā)工具
?Eclipse
?Microsoft SQL Server Management Studio 18
?SQL Server 2019 配置管理器

3. 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

本地?cái)?shù)據(jù)庫(kù)的構(gòu)建
?在SQL Server 2019數(shù)據(jù)庫(kù)上實(shí)現(xiàn)數(shù)據(jù)操作。使用純面向?qū)ο蟮膉ava語(yǔ)言作為開(kāi)發(fā)語(yǔ)言在sql server 2019新建一個(gè)名為Student的數(shù)據(jù)庫(kù),在下面新建一個(gè)名為stu的表,然后新建一個(gè)名為login的表 存貯賬號(hào) 密碼:
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

顯示其中stu圖表的內(nèi)容為:
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

3.1管理員登錄窗口實(shí)現(xiàn)
3.1.1簡(jiǎn)述
?創(chuàng)建一個(gè)管理員登錄界面,加入標(biāo)簽面板加載組件,加入文本框,設(shè)置布局格式實(shí)現(xiàn):一行標(biāo)簽一行文本輸入框,包括管理員登錄界面組件,創(chuàng)建按鈕,加入事件監(jiān)視器,通過(guò)與數(shù)據(jù)庫(kù)建立連接,比對(duì)用戶的數(shù)據(jù)庫(kù)賬戶和密碼與文本框中輸入的是否相同并觸發(fā)對(duì)應(yīng)事件(即顯示賬戶登錄成功并打開(kāi)總窗口或提示賬戶名或密碼錯(cuò)誤)。
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

3.1.2 核心代碼解釋

try{
			Connection con;
			Statement sql;
			ResultSet rs;
			String url;
	url="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
		con=DriverManager.getConnection(url,"ast",****);	//與用戶名ast的數(shù)據(jù)庫(kù)建立連接
			System.out.println("數(shù)據(jù)庫(kù)連接成功!!");
			sql=con.createStatement();							//通過(guò)connection數(shù)據(jù)庫(kù)鏈接對(duì)象 創(chuàng)建一個(gè)statement對(duì)象數(shù)據(jù)庫(kù)操作對(duì)象
			rs=sql.executeQuery("select * from login where name ='"+name+"' and pwd='"+pwd+"'");
			//executeQuery()方法來(lái)下達(dá)select指令以查詢數(shù)據(jù)庫(kù)
			//把數(shù)據(jù)庫(kù)響應(yīng)的查詢結(jié)果存放在rs中供我們使用
			int q=0;
			while(rs.next()){
				q++;
			}if(q>0){
				JOptionPane.showMessageDialog(this, "登陸成功!","消息對(duì)話框",JOptionPane.WARNING_MESSAGE);	//消息提示框1
				this.dispose();		//釋放當(dāng)前子窗口
				new CommFrame();	//創(chuàng)建另一個(gè)事件窗口
			}else
				JOptionPane.showMessageDialog(this, "賬號(hào)或者密碼錯(cuò)誤!","消息對(duì)話框",JOptionPane.WARNING_MESSAGE);//消息提示框2
		}
		catch(SQLException exp){
			System.out.println(exp);
		}

管理員登錄窗口試運(yùn)行截圖
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

3.2項(xiàng)目總集合窗口實(shí)現(xiàn)
3.2.1簡(jiǎn)述
?創(chuàng)建一個(gè)友好用戶界面,包含一個(gè)菜單條,內(nèi)含四個(gè)菜單項(xiàng):信息總覽、修改信息、添加信息、查找信息;并為每個(gè)菜單項(xiàng)增加事件監(jiān)聽(tīng),點(diǎn)擊對(duì)應(yīng)的菜單項(xiàng)即會(huì)觸發(fā)相應(yīng)的事件。并在首頁(yè)面顯示所有學(xué)生信息,創(chuàng)建一個(gè)按鈕,增加監(jiān)聽(tīng)功能,點(diǎn)擊時(shí)觸發(fā)更新數(shù)據(jù)庫(kù)并顯示在此頁(yè)面事件。
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

3.2.2核心實(shí)現(xiàn)代碼解釋

JPanel pCenter; pCenter=new JPanel();
		pCenter.add("scanItem", scan);
		pCenter.add("updateItem",update);
		pCenter.add("insertItem",insert);
		pCenter.add("searchItem",search);
		//聲明創(chuàng)建面板并向面板中添加各個(gè)功能的實(shí)現(xiàn)窗口。
在此程序中,對(duì)四個(gè)菜單項(xiàng)分別用監(jiān)視器監(jiān)視,獲取事件源后發(fā)生對(duì)應(yīng)的事件響應(yīng),此窗口為綜合主窗口,點(diǎn)擊對(duì)應(yīng)的菜單項(xiàng)后會(huì)發(fā)生事件響應(yīng),通過(guò)if(e.getSource()==scanItem)
			card.show(pCenter, "scanItem");
		//判斷事件源并選擇執(zhí)行。來(lái)實(shí)現(xiàn)。
此窗口包含顯示學(xué)生信息這一項(xiàng)事件,點(diǎn)擊更新信息按鈕后,(此時(shí)與數(shù)據(jù)庫(kù)建立連接中),從數(shù)據(jù)庫(kù)獲取信息并顯示。

3.3瀏覽所有學(xué)生信息:Scan_stu類
3.3.1簡(jiǎn)述
?此類所實(shí)現(xiàn)的窗口鑲嵌在項(xiàng)目總集合窗口中,用JScrollPane scrollPane = new JScrollPane(table);//JScrollPane滾動(dòng)窗格,并將table加入此窗格中;向滾動(dòng)窗格中加入滑動(dòng)條,在窗口中加入更新按鈕,為按鈕增加事件監(jiān)聽(tīng),點(diǎn)擊后操作窗口調(diào)用Query()之中的方法顯示數(shù)據(jù)庫(kù)最新信息。
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

3.3.2核心實(shí)現(xiàn)代碼解釋

Scan_stu(){
		setLayout(new FlowLayout());
		setBackground(Color.green);
		query=new Query();//聲明創(chuàng)建Query函數(shù)對(duì)象。
		query.setTableName("stu");//初始化setTableName
		a=query.getRecord();//獲取表格的表頭內(nèi)容
		b=query.getField();//獲取表格的數(shù)據(jù)內(nèi)容
		update_table=newDefaultTableModel(a,b);//DefaultTableModel 返回Object的一個(gè)列類。
		table=new JTable(update_table);
		button=new JButton("更新信息");//新增按鈕,初始化名稱。
		button.addActionListener(this);//為此按鈕增加監(jiān)聽(tīng)器
		JScrollPane scrollPane = new JScrollPane(table);//在可滑動(dòng)面板中加入表格table
		scrollPane.setBounds(0,0,550,380);//設(shè)置滾動(dòng)窗格面板格式大小
		table.setPreferredSize(new Dimension(scrollPane.getWidth()-50,scrollPane.getHeight()*2));//使表格出現(xiàn)滑動(dòng)條
		add(scrollPane);//將滾動(dòng)窗格面板加到主窗口中。
		add(button);//將按鈕加到窗口中。
	}public void actionPerformed(ActionEvent e){
		a=null;b=null;
		query=new Query();//調(diào)用Query()類方法對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改更新。
		query.setTableName("stu");
		a=query.getRecord();
		b=query.getField();
		update_table.setDataVector(a, b); // 設(shè)置模型中的元素,它會(huì)自動(dòng)顯示在列表中。
	}//實(shí)現(xiàn)數(shù)據(jù)庫(kù)調(diào)用,輸出數(shù)據(jù)庫(kù)的最新?tīng)顟B(tài)。

運(yùn)行窗口測(cè)試
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

3.4 Scan_stu調(diào)用的Query查找函數(shù)
3.4.1簡(jiǎn)述
?本類是該項(xiàng)目很重要的一部分,屬于核心代碼,實(shí)現(xiàn)了與數(shù)據(jù)庫(kù)建立連接,包含求表格內(nèi)容的函數(shù)、求表格內(nèi)容有多少行的函數(shù)方法、求字段名稱的方法、求初始表名的方法、求字段個(gè)數(shù)的方法。即為操作數(shù)據(jù)庫(kù)顯示而編寫(xiě)的類。
3.4.2核心代碼解釋
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

查詢結(jié)果的存儲(chǔ)功能

while(rs.next()){//此處的rs為ResultSet的一個(gè)對(duì)象,用next()方法逐個(gè)讀取數(shù)據(jù)。
				for(int k=1;k<=字段個(gè)數(shù);k++){
					a[m][k-1]=rs.getString(k);
				}
				System.out.println();
				m++;
			}
//這樣的ResultSet對(duì)象可以完成對(duì)數(shù)據(jù)庫(kù)中表的修改,更新的方法是,把ResultSet的游標(biāo)移動(dòng)到你要更新的行,然后調(diào)用 updateXXX(),這個(gè)方法XXX的含義和getXXX()是相同的。
//updateXXX()方法有兩個(gè)參數(shù),第一個(gè)是要更新的列,可以是列名或者 序號(hào)。第二個(gè)是要更新的數(shù)據(jù),這個(gè)數(shù)據(jù)類型要和XXX相同。每完成對(duì)一行的update要調(diào)用updateRow()完成對(duì)數(shù)據(jù)庫(kù)的寫(xiě)入,而且是在 ResultSet的游標(biāo)沒(méi)有離開(kāi)該修改行之前,否則修改將不會(huì)被提交。

3.4.3求表格內(nèi)容有多少行的方法

sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);//同上文ResultSet對(duì)象可以完成對(duì)數(shù)據(jù)庫(kù)中表的修改,更新。
			rs=sql.executeQuery("select * from "+tableName);
			rs.last();//獲取匹配元素集合中最后一個(gè)元素。
			int rows=rs.getRow();//在此處獲取表格內(nèi)容的行數(shù)
			return rows;

3.4.4求字段名稱的方法
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

int 字段個(gè)數(shù)=getZiDuan();//構(gòu)造函數(shù)(求字段個(gè)數(shù))
			b=new String[字段個(gè)數(shù)];
			int k=0;
			while(rs1.next()){
				b[k]=rs1.getString(4);// .getString()方法取數(shù)據(jù)庫(kù)查出來(lái)的數(shù)據(jù)。    k++;}//以String 的形式獲取此 ResultSet 對(duì)象的當(dāng)前行中指定列的值。
			con.close();	}//關(guān)閉數(shù)據(jù)庫(kù)連接并釋放內(nèi)存。	
		catch(SQLException e){
			System.out.println(e);
		}
		return b;
	}

3.4.5求字段個(gè)數(shù)
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

DatabaseMetaData metadata=con.getMetaData();//得到此對(duì)象實(shí)例
			ResultSet rs1=metadata.getColumns(null, null, tableName, null);//獲取表字段信息
			字段個(gè)數(shù)=0;
			while(rs1.next())
				字段個(gè)數(shù)++;//計(jì)數(shù),返回字段個(gè)數(shù)。
		}
		catch(SQLException e){
			System.out.println(e);
		}
		return 字段個(gè)數(shù);

3.5修改學(xué)生信息的Update_stu函數(shù)
3.5.1簡(jiǎn)述
?構(gòu)建一個(gè)Update_stu類public class Update_stu extends JPanel implements ActionListener//修改學(xué)生信息的Update_stu方法。在其中設(shè)置修改信息窗口的格式添加各種組件(按鈕,文本框,標(biāo)簽),并用事件監(jiān)視,獲取文本框中的字符串,調(diào)用Query查找函數(shù)里的構(gòu)造方法最終實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的更改。
3.5.2具體實(shí)現(xiàn)核心代碼
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

	JTextField field[]=null;//文本框數(shù)組的聲明與賦值
	String a[]=null;//此數(shù)組存放的是數(shù)據(jù)庫(kù)表格中的“表頭名稱”。
	query.setTableName("stu");//找到名為“stu”的表格
	a=query.getField();//獲取字段值的方法。
	field =new JTextField[n];//有幾個(gè)值就建立幾個(gè)文本輸入框
for(int i=0;i<n;i++){//該for循環(huán)實(shí)現(xiàn)了顯示修改信息窗口中的標(biāo)簽和文本框的設(shè)置。
	field[i]=new JTextField(10);
	if(a[i].equals("學(xué)號(hào)")==true)
		box1.add(new JLabel("* "+a[i]));
	else
		box1.add(new JLabel("  "+a[i]));//增加標(biāo)簽和文本框
		box1.add(Box.createVerticalStrut(12));//表頭的垂直間距
		box2.add(field[i]);
		box2.add(Box.createVerticalStrut(8));//文本框的垂直間距
對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作:
Update update=new Update();//調(diào)用update方法對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。
		update.setTableName("stu");
		update.setField(field);
		update.setA(a);
		update.Execute_Update(mark);
		JOptionPane.showMessageDialog(this, "更新成功??!","消息對(duì)話框",JOptionPane.WARNING_MESSAGE);

3.5.3事件處理描述
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

發(fā)生事件1:當(dāng)填完數(shù)據(jù)后,點(diǎn)擊“修改”按鈕:判斷標(biāo)簽數(shù)組的第一個(gè)項(xiàng),若為‘學(xué)號(hào)’且文本框數(shù)組第一項(xiàng)為空,觸發(fā)事件彈出消息提示框提示:“帶*的文本框必須填寫(xiě)??!”。
發(fā)生事件2:填完數(shù)據(jù)后,點(diǎn)擊“修改”按鈕:觸發(fā)事件彈出消息提示框顯示:“請(qǐng)確保你的學(xué)號(hào)是正確的,否則會(huì)更新失?。。?!如果學(xué)號(hào)錯(cuò)誤請(qǐng)先刪除再添加”。

窗口實(shí)現(xiàn)測(cè)試
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

3.6用于修改數(shù)據(jù)庫(kù)的函數(shù):Update
3.6.1簡(jiǎn)述
?Update類,通過(guò)先對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接,獲取數(shù)據(jù)庫(kù)的數(shù)據(jù),再通過(guò)事件監(jiān)視,比對(duì)用戶輸入內(nèi)容與數(shù)據(jù)庫(kù)的內(nèi)容,比對(duì)成功后觸發(fā)事件,將用戶輸入的信息覆蓋原數(shù)據(jù)庫(kù)信息。
3.6.2具體實(shí)現(xiàn)以及核心代碼
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

if(i!=mark)//即:當(dāng)數(shù)據(jù)庫(kù)中無(wú)學(xué)號(hào)與之對(duì)應(yīng)的時(shí)候,執(zhí)行下一條賦值語(yǔ)句。
SQL[i]="update "+tableName+" set "+a[i]+" ='"+field[i].getText().toString()+"' where "+a[mark]+" ='"+field[mark].getText().toString()+"'";//此條語(yǔ)句是賦值語(yǔ)句,將用戶輸入文本框中的內(nèi)容取出來(lái),賦值給SQL[i]數(shù)組。
	for(int i=0;i<field.length;i++)
				if(i!=mark&&field[i].getText().toString().equals("")==false)//即:當(dāng)數(shù)據(jù)庫(kù)中無(wú)學(xué)號(hào)與mark對(duì)應(yīng)且文本框中的值不為空時(shí)執(zhí)行此語(yǔ)句。
			sql.executeUpdate(SQL[i]);
			con.close();
			for(int i=0;i<field.length;i++)
			field[i].setText(null);//再次將文本框設(shè)為空,方便下一次使用。

3.7添加學(xué)生信息函數(shù):Insert_Stu
3.7.1簡(jiǎn)述
?創(chuàng)建Insert_Stu類:public class Insert_stu extends JPanel implements ActionListener,類似與前文的Update_stu實(shí)現(xiàn)方式大致相同,在其中設(shè)置修改信息窗口的格式添加各種組件(按鈕,文本框,標(biāo)簽),并用事件監(jiān)視,獲取文本框中的字符串,調(diào)用insert方法里的構(gòu)造方法最終實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)處理即新增數(shù)據(jù)庫(kù)成員。
3.7.2核心代碼及其實(shí)現(xiàn)
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

JTextField field[]=null;//文本框數(shù)組的聲明與賦值
	String a[]=null;//此數(shù)組存放的是數(shù)據(jù)庫(kù)表格中的“表頭名稱”。
	query.setTableName("stu");//找到名為“stu”的表格
	a=query.getField();//獲取字段值的方法。
	field =new JTextField[n];//有幾個(gè)值就建立幾個(gè)文本輸入框
for(int i=0;i<n;i++){//該for循環(huán)實(shí)現(xiàn)了顯示修改信息窗口中的標(biāo)簽和文本框的設(shè)置。
	field[i]=new JTextField(10);
	if(a[i].equals("學(xué)號(hào)")==true) box1.add(new JLabel("* "+a[i]));
else box1.add(new JLabel("  "+a[i]));//增加標(biāo)簽和文本框
	 box1.add(Box.createVerticalStrut(12));//表頭的垂直間距
	 box2.add(field[i]);
	  box2.add(Box.createVerticalStrut(8));//文本框的垂直間距
if(i==n){//當(dāng)循環(huán)經(jīng)歷次數(shù)等于文本框個(gè)數(shù)時(shí)執(zhí)行此語(yǔ)句。
		Insert insert=new Insert();//聲明并創(chuàng)建Insert對(duì)象
		insert.setTableName("stu");
		insert.setField(field);
		insert.setA(a);
		insert.Execute_Insert(mark);
			}//調(diào)用Insert中的方法操作數(shù)據(jù)庫(kù),將數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中即更新數(shù)據(jù)庫(kù)。

3.7.3事件處理描述
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

事件1:當(dāng)field[i].getText().toString()的值有為空的時(shí)候,觸發(fā)事件,彈出消息對(duì)話框顯示:必須全部填寫(xiě)。
事件2:當(dāng)i=n時(shí),即處理完事件1后觸發(fā)事件2:調(diào)用Insert中的方法操作數(shù)據(jù)庫(kù),將數(shù)據(jù)插入到數(shù)據(jù)庫(kù)中即更新數(shù)據(jù)庫(kù)。
窗口實(shí)現(xiàn)測(cè)試:
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

3.8添加學(xué)生信息函數(shù):Insert
3.8.1簡(jiǎn)述
?類似Update方法函數(shù);Insert類,通過(guò)先對(duì)數(shù)據(jù)庫(kù)進(jìn)行連接,獲取數(shù)據(jù)庫(kù)的數(shù)據(jù),再通過(guò)事件監(jiān)視,比對(duì)用戶輸入內(nèi)容與數(shù)據(jù)庫(kù)的內(nèi)容,比對(duì)成功后觸發(fā)事件,將用戶輸入的信息插入數(shù)據(jù)庫(kù)中更新數(shù)據(jù)庫(kù)信息。
3.8.2核心代碼及其實(shí)現(xiàn)
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

url="jdbc:sqlserver://localhost:1433;DatabaseName=Student";
SQL="insert"+tableName+"("+a[mark]+")values('"+field[mark].getText().toString()+"')";//此條語(yǔ)句是賦值語(yǔ)句,將用戶輸入文本框中的內(nèi)容取出來(lái),賦值給SQL[i]數(shù)組。
		con=DriverManager.getConnection(url,"ast","123456");
//連接數(shù)據(jù)庫(kù),賬戶為ast,密碼為123456;
		sql=con.createStatement();//通過(guò)connection數(shù)據(jù)庫(kù)鏈接對(duì)象 創(chuàng)建一個(gè)statement對(duì)象數(shù)據(jù)庫(kù)操作對(duì)象
		sql.execute(SQL);// 用于執(zhí)行返回多個(gè)結(jié)果集、多個(gè)更新計(jì)數(shù)或二者組合的語(yǔ)句  con.close();
		update =new Update();//聲明并創(chuàng)建update對(duì)象。
		update.setTableName(tableName);
		update.setField(field);
		update.setA(a);
		update.Execute_Update(mark);//以上為update調(diào)用自身方法操作數(shù)據(jù)庫(kù)。JOptionPane.showMessageDialog(this, "添加成功?。?!","消息對(duì)話框",JOptionPane.WARNING_MESSAGE);//觸發(fā)事件:顯示消息對(duì)話框‘添加成功‘,屬于警告對(duì)話框。
			for(int i=0;i<field.length;i++)
				field[i].setText(null);;
		}//對(duì)文本框中的內(nèi)容進(jìn)行釋放,便于下一次使用。

3.9查找學(xué)生信息的Search_stu函數(shù)
3.9.1簡(jiǎn)述
?類似于插入函數(shù)與更改函數(shù),本修改函數(shù)也是先實(shí)現(xiàn)窗口,通過(guò)加載標(biāo)簽和文本框以及按鈕等組件,輸出時(shí)也要有一個(gè)窗口,在其中加入一個(gè)可滾動(dòng)窗格,并加載滑動(dòng)條組件,將表格放在窗格中,在調(diào)用Search函數(shù),從數(shù)據(jù)庫(kù)獲取數(shù)據(jù)顯示出來(lái)。
3.9.2核心代碼解釋及實(shí)現(xiàn)
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

field =new JTextField[n];//有幾個(gè)標(biāo)簽就創(chuàng)建幾個(gè)文本框,
		for(int i=0;i<n;i++){//有幾個(gè)標(biāo)簽就執(zhí)行幾次循環(huán)。
			box[i]=Box.createHorizontalBox();
			field[i]=new JTextField(8);
		if(a[i].equals("學(xué)號(hào)")==true){//如果首項(xiàng)是學(xué)號(hào)這兩個(gè)字
			box[i].add(new JLabel("  "+a[i]));//載入標(biāo)簽到窗口中
				box[i].add(Box.createHorizontalStrut(8));
				box[i].add(field[i]);//載入文本框到窗口中。

3.9.3事件處理描述
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

for(i=0;i<n;i++){
		if(field[i].getText().toString().equals("")==true)
			sum++;
	}//計(jì)數(shù)功能,為下文初始化sum。
	System.out.println(sum);
	if(sum==n)//即:程序窗口框中的文本框中無(wú)任何內(nèi)容!
		JOptionPane.showMessageDialog(this, "你未輸入任何內(nèi)容,請(qǐng)重新輸入!","消息對(duì)話框",JOptionPane.WARNING_MESSAGE);//觸發(fā)事件:彈出消息對(duì)話框提示警告你未輸入任何內(nèi)容,請(qǐng)重新輸入!
	else{
		Search search=new Search();
		search.setTableName("stu");
		search.setField(field);
		search.setA(a);
		search.Execute_Search();	
		object=null;b=null;
		query=new Query();
		query.setTableName("stu");
		object=search.getRecord();
		search_table.setDataVector(object, a);
	}//調(diào)用Search類中各個(gè)方法操作數(shù)據(jù)庫(kù),并顯示內(nèi)容。

窗口實(shí)現(xiàn)測(cè)試
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

3.10查找函數(shù)Search
3.10.1簡(jiǎn)述
?查找函數(shù)的構(gòu)建與前面插入函數(shù)、瀏覽函數(shù)等都是相同的構(gòu)建方法,都是先于數(shù)據(jù)庫(kù)建立連接,獲取其中的數(shù)據(jù),與自身數(shù)據(jù)相比,從而根據(jù)具體要求實(shí)現(xiàn)查找、插入、更改等操作。
3.10.2核心代碼實(shí)現(xiàn)及解釋
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

for(int i=0;i<a.length;i++){//有幾個(gè)標(biāo)簽就執(zhí)行幾次這個(gè)循環(huán)。
	if(field[i].getText().toString().equals("")==false){//當(dāng)文本框?yàn)榭盏臅r(shí)候執(zhí)行
	if(sum==0)
		SQL=SQL+a[i]+" = '"+field[i].getText().toString()+"'";//賦值語(yǔ)句,包含標(biāo)簽和文本框中的內(nèi)容。
	else
SQL=SQL+" and "+a[i]+" = '"+field[i].getText().toString()+"'";
	sum++;
			}
 
while(rs.next()){
		for(int i=1;i<=a.length;i++){
			object[ncase][i-1]=rs.getString(i);
				}
				ncase++;
			}
			con.close();
	for(int i=0;i<field.length;i++)
field[i].setText(null);//將文本框中的內(nèi)容設(shè)置為空,方便下次使用。
		}

學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

4. 測(cè)試數(shù)據(jù)

4.1管理員登錄窗口測(cè)試
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

4.2項(xiàng)目總窗口測(cè)試(設(shè)置顯示為信息總覽組件窗口)
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

4.3修改信息窗口測(cè)試
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

4.4添加信息窗口測(cè)試
帶星花的項(xiàng)是必須要填的(學(xué)號(hào)),其余項(xiàng)允許為空。
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

4.5查找信息窗口測(cè)試
可以分類別查詢 例如下圖是按學(xué)號(hào)查詢的,也可以按性別查詢或者是按出生日期查詢等等。
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

按學(xué)號(hào)查詢
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

按性別查詢
學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)

5. 總結(jié)

??這次課程設(shè)計(jì)我收獲了很多,遇到了很多的困難,其中最讓我印象深刻的就是對(duì)于本地?cái)?shù)據(jù)庫(kù)的構(gòu)建:在未接觸數(shù)據(jù)庫(kù)操作的前提下,我沒(méi)有被苦難困難嚇倒,而是迎面直上;我先是查閱課本,在發(fā)現(xiàn)課本上是內(nèi)置數(shù)據(jù)庫(kù)和我計(jì)劃要用的數(shù)據(jù)庫(kù)不同,我直接改變方向:百度!光是下載組件就花了很長(zhǎng)時(shí)間;然后自己又為SQL server配置環(huán)境變量,安裝管理器以操作管理SQL server。這其中困難重重,所以我去實(shí)驗(yàn)室請(qǐng)教老師,獲益匪淺,最后花了將近半天的時(shí)間處理好,在沒(méi)有任何知識(shí)儲(chǔ)備的條件下完成了數(shù)據(jù)庫(kù)的搭建。
??接下來(lái)就是連接數(shù)據(jù)庫(kù),我又回到課本,發(fā)現(xiàn)語(yǔ)句是通用的,幾經(jīng)周折,我終于完成了數(shù)據(jù)庫(kù)的構(gòu)建并成功連接!在探索的過(guò)程中我發(fā)現(xiàn),遇到困難不能死板的去處理,要靈活,利用一切可利用資源來(lái)幫助自己。在向老師請(qǐng)教的過(guò)程中,我學(xué)會(huì)了一中很重要并且很實(shí)用效果很好的發(fā)現(xiàn)錯(cuò)誤代碼的方法:注釋代碼!一部分一部分的去運(yùn)行測(cè)試,將出錯(cuò)代碼的范圍縮小,從而發(fā)現(xiàn)錯(cuò)誤并進(jìn)行修改。在課程設(shè)計(jì)的過(guò)程中,對(duì)于有些同學(xué)在數(shù)據(jù)庫(kù)這方面有相關(guān)問(wèn)題的,我都會(huì)熱心的幫助他們,當(dāng)然同時(shí)也鞏固了自己的能力。而從他們的代碼或者編碼思想中我也能獲益良多,互相促進(jìn),共同進(jìn)步。
??有關(guān)項(xiàng)目設(shè)計(jì)部分來(lái)說(shuō)的話:我將項(xiàng)目文件分為10個(gè)部分:首先有兩個(gè)窗口:管理員登錄窗口以及實(shí)現(xiàn)其他功能的總窗口;其次就是查找類、插入類、瀏覽類、修改類這四個(gè)項(xiàng)目核心類,最后這四個(gè)核心具體實(shí)現(xiàn)類又一一對(duì)應(yīng)這四個(gè)函數(shù):查找、插入、瀏覽(查看)、修改,共10個(gè)部分在同一個(gè)package中,故對(duì)于訪問(wèn)權(quán)限問(wèn)題沒(méi)有過(guò)于重視,大部分都為友好類或者友好方法,具體實(shí)現(xiàn)在上文已有詳細(xì)說(shuō)明,故此處不在贅述。
??總之,這次的JAVA課程設(shè)計(jì)題目對(duì)于我而言還是有一定難度的;包括代碼的編寫(xiě)以及數(shù)據(jù)庫(kù)的創(chuàng)建及連接。但我利用一切可利用資源,教材、網(wǎng)絡(luò)、老師、同學(xué),最終完成了課程設(shè)計(jì)項(xiàng)目,說(shuō)實(shí)話 這是一個(gè)煎熬的過(guò)程,包括讀代碼、寫(xiě)代碼以及上網(wǎng)搜相關(guān)知識(shí),期間由于作息不規(guī)律導(dǎo)致上火、眼睛模糊,不過(guò)等最終程序運(yùn)行的那一刻,一切都值得了。我獲益良多!

6.參考文獻(xiàn)

Java大學(xué)實(shí)用教程(第四版);編著:耿祥義、張躍平;出版社:電子工業(yè)出版社;出版日期:2005年3月第一版。CSDN各大上傳者。

驚喜

既然你看到了這里,需要項(xiàng)目源碼的話那就私我叭~
由于太多人私信根本回復(fù)不過(guò)來(lái)啦!,我已經(jīng)將項(xiàng)目文檔打包發(fā)到了這篇文章上,大家需要的可以自行下載!

學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-500267.html


到了這里,關(guān)于學(xué)生管理系統(tǒng)--課程設(shè)計(jì)項(xiàng)目(Java+SQL server)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)庫(kù)課程設(shè)計(jì)-學(xué)生選課管理系統(tǒng)(實(shí)訓(xùn)報(bào)告+答辯ppt+源碼+sql文件+打包好的程序)springboot項(xiàng)目-javaweb

    數(shù)據(jù)庫(kù)課程設(shè)計(jì)-學(xué)生選課管理系統(tǒng)(實(shí)訓(xùn)報(bào)告+答辯ppt+源碼+sql文件+打包好的程序)springboot項(xiàng)目-javaweb

    作者:ChenZhen 博客地址:https://www.chenzhen.space/ 版權(quán):本文為博主 ChenZhen 的原創(chuàng)文章,本文版權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。 如果對(duì)你有幫助,請(qǐng)給一個(gè)小小的star? 源碼加vx : ChenZhen_7 (實(shí)訓(xùn)報(bào)告+答辯ppt+源碼+sql文件+打包好的程序 無(wú)套路 免費(fèi)獲??! 不放

    2024年02月11日
    瀏覽(30)
  • 【期末課程設(shè)計(jì)】學(xué)生成績(jī)管理系統(tǒng)

    【期末課程設(shè)計(jì)】學(xué)生成績(jī)管理系統(tǒng)

    因其獨(dú)特,因其始終如一 文章目錄 一、學(xué)生成績(jī)管理系統(tǒng)介紹 二、學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)思路 三、源代碼 1.?test.c? 2.?Student Management System.c 3.Stu_System.c 4.Teacher.c 5.Student Management System.h?? 前言: 學(xué)生成績(jī)管理系統(tǒng)含教師登錄入口和學(xué)生登錄入口,可實(shí)現(xiàn)學(xué)生信息的添加,刪

    2024年02月16日
    瀏覽(22)
  • 程序設(shè)計(jì)課程設(shè)計(jì)——學(xué)生學(xué)籍管理系統(tǒng)

    程序設(shè)計(jì)課程設(shè)計(jì)——學(xué)生學(xué)籍管理系統(tǒng)

    通過(guò)設(shè)計(jì)一個(gè)小型的應(yīng)用系統(tǒng),使學(xué)生進(jìn)一步掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,運(yùn)用C++中的類與對(duì)象的概念結(jié)合面向?qū)ο蟪绦蛟O(shè)計(jì)的思想,獨(dú)立完成應(yīng)用系統(tǒng)的設(shè)計(jì),并養(yǎng)成良好的編程習(xí)慣。通過(guò)這個(gè)實(shí)踐教學(xué)平臺(tái),培養(yǎng)學(xué)生對(duì)計(jì)算機(jī)應(yīng)用系統(tǒng)的綜合設(shè)計(jì)能力,培養(yǎng)學(xué)生正確分

    2024年02月09日
    瀏覽(20)
  • C++課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)

    C++課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)

    今天清理電腦偶爾發(fā)現(xiàn)一個(gè)我剛學(xué)編程時(shí)用c++寫(xiě)的一份課程設(shè)計(jì),使用到簡(jiǎn)單的鏈表,結(jié)構(gòu)體,c++類與對(duì)象的知識(shí)——學(xué)生成績(jī)管理系統(tǒng)。 ~~ 系統(tǒng)結(jié)構(gòu): 管理員模式 教師模式 學(xué)生模式 實(shí)現(xiàn)了對(duì)學(xué)生成績(jī)及信息的增刪改查以及排序。 效果圖 主菜單 管理員模式菜單 源代碼

    2024年02月16日
    瀏覽(22)
  • 學(xué)生信息管理系統(tǒng)MySql課程設(shè)計(jì)

    學(xué)生信息管理系統(tǒng)MySql課程設(shè)計(jì)

    本篇文章是第一次發(fā)布在這個(gè)平臺(tái)上,文章的內(nèi)容是平時(shí)課程的一個(gè)小作業(yè),由于時(shí)間不足,還有很多內(nèi)容沒(méi)有完善好,會(huì)繼續(xù)下一次的修改,對(duì)該學(xué)生管理系統(tǒng)進(jìn)行修改和創(chuàng)新, 一、 分析 1.1 業(yè)務(wù)分析 ? 學(xué)生信息管理系統(tǒng)是一個(gè)面向?qū)W生和學(xué)校老師的一個(gè)多功能數(shù)據(jù)平臺(tái)

    2024年02月06日
    瀏覽(29)
  • 學(xué)生考勤管理系統(tǒng)設(shè)計(jì)_c++課程設(shè)計(jì)

    以下內(nèi)容可且僅可供參考,如有錯(cuò)誤歡迎指正。 部分內(nèi)容借鑒自百度 侵刪致歉 目錄 前言 一、需求分析 二、詳細(xì)設(shè)計(jì) 三、用戶使用說(shuō)明 四、總結(jié)與體會(huì) 五、參考文獻(xiàn) 六、附錄(源代碼) 定義類 函數(shù) ? 1、問(wèn)題描述 學(xué)生信息包括:學(xué)號(hào)、姓名、性別、年齡、班級(jí)等信息。

    2024年02月11日
    瀏覽(23)
  • 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì):學(xué)生成績(jī)管理系統(tǒng)

    數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì):學(xué)生成績(jī)管理系統(tǒng)

    目 ?錄 第一章 ??需求分析 第二章 概要設(shè)計(jì) 第三章 詳細(xì)設(shè)計(jì) 第四章 測(cè)試報(bào)告 第五章 安裝及使用 第六章 項(xiàng)目總結(jié) 第七章 源碼 一.需求分析 ? ? ? ?學(xué)生成績(jī)管理是一個(gè)學(xué)校不可缺少的部分,它的內(nèi)容對(duì)于學(xué)校的管理者和學(xué)生以及學(xué)生家長(zhǎng)來(lái)說(shuō)都至關(guān)重要,所以一個(gè)良好

    2024年02月02日
    瀏覽(29)
  • Python課程設(shè)計(jì)之學(xué)生信息管理系統(tǒng)

    Python課程設(shè)計(jì)之學(xué)生信息管理系統(tǒng)

    核心代碼 運(yùn)行效果 核心代碼 運(yùn)行效果 核心代碼 運(yùn)行效果 核心代碼 運(yùn)行效果 核心代碼 運(yùn)行效果 核心代碼 運(yùn)行效果 核心代碼 運(yùn)行效果 核心代碼 運(yùn)行效果 點(diǎn)擊下載

    2024年02月11日
    瀏覽(28)
  • MySQL課程設(shè)計(jì)——簡(jiǎn)易學(xué)生信息管理系統(tǒng)

    MySQL課程設(shè)計(jì)——簡(jiǎn)易學(xué)生信息管理系統(tǒng)

    1.1.1 業(yè)務(wù)分析 學(xué)生信息管理系統(tǒng)時(shí)面向?qū)W生和學(xué)校教師的一個(gè)多功能數(shù)據(jù)管理平臺(tái)。 1.1.2 分析系統(tǒng) 本系統(tǒng)所設(shè)計(jì)到的用戶有學(xué)校在校學(xué)生、教師,對(duì)于不同的用戶系統(tǒng)所提供給的功能也有所不同,其中對(duì)于學(xué)生來(lái)說(shuō),學(xué)生可以通過(guò)該系統(tǒng)進(jìn)行學(xué)生基本信息查詢、考試成績(jī)查

    2024年02月09日
    瀏覽(27)
  • C語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)

    C語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)

    需求分析: 1.設(shè)計(jì)題目:學(xué)生成績(jī)管理系統(tǒng) 2.系統(tǒng)功能需求分析:實(shí)現(xiàn)對(duì)學(xué)生各科成績(jī)總分及平均分的排序,和成績(jī)的查找 概要設(shè)計(jì) 1. 功能模塊圖 詳細(xì)設(shè)計(jì) 1. 流程圖 測(cè)試結(jié)果 :列出所有功能的運(yùn)行界面,并作文字說(shuō)明。 1.錄入成績(jī):錄入3個(gè)人的學(xué)號(hào)和各科成績(jī) 2.每門課程

    2024年02月11日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包