最新JAVA數(shù)據(jù)庫(kù)學(xué)生成績(jī)管理系統(tǒng)實(shí)驗(yàn)報(bào)告資料_第1頁(yè)
最新JAVA數(shù)據(jù)庫(kù)學(xué)生成績(jī)管理系統(tǒng)實(shí)驗(yàn)報(bào)告資料_第2頁(yè)
最新JAVA數(shù)據(jù)庫(kù)學(xué)生成績(jī)管理系統(tǒng)實(shí)驗(yàn)報(bào)告資料_第3頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精品文檔實(shí)訓(xùn)報(bào)告實(shí)訓(xùn)名稱:學(xué)生成績(jī)管理系統(tǒng)系(部):專(zhuān)業(yè)班級(jí):學(xué)生姓名:學(xué) 號(hào):指導(dǎo)教師:完成日期 :南京鐵道職業(yè)技術(shù)學(xué)院精品文檔目錄二目錄31實(shí)訓(xùn)概述3二2 Java 訪問(wèn)并處理數(shù)據(jù)庫(kù)的課題描述 32.1 課題簡(jiǎn)介3裝2.3 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì) 42.4系統(tǒng)功能層次圖63 系統(tǒng)模塊的詳細(xì)設(shè)計(jì) 63.1 登錄模塊設(shè)計(jì) 63.2 管理員模塊設(shè)計(jì) 63.3 學(xué)生模塊設(shè)計(jì) 84 程序運(yùn)行與測(cè)試 95 實(shí)訓(xùn)總結(jié) 30訂精品文檔Java 訪問(wèn)并處理數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)1 實(shí)訓(xùn)概述南京鐵道職業(yè)技術(shù)學(xué)院浦口校區(qū) 2013級(jí)網(wǎng)絡(luò) L1301 班于大二上學(xué)期組織了 為期一周的 Java 實(shí)訓(xùn),本次實(shí)訓(xùn)的課題是“學(xué)生成

2、績(jī)管理系統(tǒng)” 。 通過(guò)綜合實(shí) 訓(xùn),掌握運(yùn)用 Java 語(yǔ)言基本知識(shí)和技能、 JAVA 的基本語(yǔ)法與 JDBC 數(shù)據(jù)庫(kù)技 術(shù)的應(yīng)用;進(jìn)一步熟悉 Oracle 數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)管理(數(shù)據(jù)庫(kù)的創(chuàng)建、應(yīng)用) 。表 的創(chuàng)建、修改、刪除,約束及關(guān)系等、數(shù)據(jù)的查詢處理( insert、update、delete、 select 語(yǔ)句等技術(shù)。2 Java 訪問(wèn)并處理數(shù)據(jù)庫(kù)的課題描述2.1 課題簡(jiǎn)介經(jīng)過(guò)分析,我們使用Java開(kāi)發(fā)工具,利用其提供的各種面向?qū)ο蟮拈_(kāi)發(fā)工具, Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人 PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁

3、有 全球最大的開(kāi)發(fā)者專(zhuān)業(yè)社群。使用的數(shù)據(jù)庫(kù)是Oracle, Oracle數(shù)據(jù)庫(kù)功能強(qiáng)大,學(xué)習(xí)起來(lái)也不難,然后,對(duì)初始原型系統(tǒng)進(jìn)行需求迭代,不斷修正和改進(jìn) ,直到形成用戶滿意的可行系統(tǒng)。通過(guò)實(shí)訓(xùn),我們掌握運(yùn)用Java語(yǔ)言知識(shí)和技能,運(yùn)用JAVA的基本語(yǔ)法與 JDBC 數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用, 完成對(duì)甲骨文數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)管理、 例如表的設(shè)計(jì)(表 的創(chuàng)建、修改、刪除,字段的默認(rèn)值、約束及關(guān)系等) 、數(shù)據(jù)的查詢處理( insert、 update delete select語(yǔ)句的應(yīng)用)等技術(shù);并能結(jié)合數(shù)據(jù)庫(kù)應(yīng)用技術(shù)和 jdbc進(jìn) 行小型數(shù)據(jù)庫(kù)管理系統(tǒng)的開(kāi)發(fā)。2.2 模塊簡(jiǎn)介管理員模塊功能需求 :管理員身份登

4、陸系統(tǒng)后,可以對(duì)學(xué)生信息進(jìn)行添加、修改和查詢等操作,對(duì)學(xué)生進(jìn)行添加、修改和查詢功能操作,還可以修改管理員的登錄密碼。學(xué)生模塊功能需求 :學(xué)生信息管理系統(tǒng)中需要在學(xué)生登錄或驗(yàn)證身份后 ,,可以自行完成學(xué)生個(gè) 人信息的查詢,也可以進(jìn)行修改和刪除個(gè)人信息、修改學(xué)生密碼等操作。2.3 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)表設(shè)計(jì)定義每個(gè)表的數(shù)據(jù)類(lèi)型以及字段限制,使數(shù)據(jù)庫(kù)達(dá)到一定的完整性.每個(gè)表的物理設(shè)計(jì)如下:1. 表admin保存用戶的個(gè)人信息用戶信息表主要是用來(lái)保存管理員用戶的基本信息,包括管理員的ID和管理員的登錄密碼,只有符合這兩個(gè)字段的格式要求,才能登錄成功,結(jié)構(gòu)表如下:表4-2管理員信息表字段名類(lèi)型空值約束條件

5、管理員IDnumber(10)not null主鍵登錄密碼varchar2(10)not null2. 表student保存學(xué)生基本信息,結(jié)構(gòu)表如下:表4-5學(xué)生信息表字段名類(lèi)型空值約束條件學(xué)號(hào)number(10)not null主鍵姓名varchar2(20)not null性別varchar2 (3)年齡nu mber(2)登錄密碼varchar2(10)not null邏輯結(jié)構(gòu)是獨(dú)立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。 邏輯結(jié)構(gòu)的任務(wù)是把概念 結(jié)構(gòu)設(shè)計(jì)階段設(shè)計(jì)好的基本 E-R圖轉(zhuǎn)化為宜選用的DBMS所支持的數(shù)據(jù)模型相 符合的邏輯結(jié)構(gòu),并對(duì)其進(jìn)行優(yōu)化。流程圖層次設(shè)計(jì)圖的格式如下所示:添加按鈕查找

6、按鈕刪除按鈕返回結(jié)束圖1管理員對(duì)學(xué)生信息管理系統(tǒng)局部E-R圖數(shù)據(jù)流圖是結(jié)構(gòu)化系統(tǒng)分析的主要工具,它表示了系統(tǒng)內(nèi)部信息的流向,并表現(xiàn)系統(tǒng)的邏輯處理功能。2.4系統(tǒng)功能層次圖學(xué)生信息管理系統(tǒng)是一個(gè)典型的數(shù)據(jù)庫(kù)開(kāi)發(fā)應(yīng)用程序,系統(tǒng)是和數(shù)據(jù)庫(kù)相結(jié) 合.,進(jìn)入系統(tǒng),有兩個(gè)用戶,分別是普通學(xué)生、和管理員。學(xué)生信息管理系統(tǒng)登陸管理圖2學(xué)生信息管理系統(tǒng)功能層次圖3系統(tǒng)模塊的詳細(xì)設(shè)計(jì)本學(xué)生信息管理系統(tǒng)主要模塊,即用戶登錄模塊、用戶操作模塊。用戶操作 模塊又分為學(xué)生操作模塊、管理員操作模塊。下面將顯示系統(tǒng)的主要功能模塊。3.1登錄模塊設(shè)計(jì)學(xué)生信息管理系統(tǒng)前臺(tái)登陸模塊可以勾選管理員身份信息,代表以管理員身 份進(jìn)入。不

7、勾選即為普通學(xué)生身份登錄。3.2管理員模塊設(shè)計(jì)學(xué)生信息管理系統(tǒng)前臺(tái)登陸模塊只有一個(gè)登陸窗口分為學(xué)生、管理員兩個(gè)級(jí)別登陸,系統(tǒng)在后臺(tái)程序有自動(dòng)限制設(shè)置,可以自動(dòng)識(shí)別登陸者的限制。其系統(tǒng)登 陸模塊算法如下:1 判斷是否勾選管理員身份;2 輸入用戶名和密碼;3 判斷用戶名和密碼是否匹配;(1)若提示輸入信息錯(cuò)誤 ,則重新輸入;(2)否則以管理員身份進(jìn)入系統(tǒng)。添加學(xué)生信息功能學(xué)生信息管理系統(tǒng)對(duì)學(xué)生信息的管理非常重要 ,其中對(duì)信息的錄入是系統(tǒng)最 為關(guān)鍵的地方 ,以往我們管理學(xué)生信息的時(shí)候都是手工操作 ,而隨社會(huì)不斷發(fā)展的 今天計(jì)算機(jī)的應(yīng)用已全部取帶了手工操作的方法 ,利用計(jì)算機(jī)可以方便的錄入各 類(lèi)信息

8、,進(jìn)行高效的管理 .學(xué)生信息的錄入就是利用計(jì)算機(jī)通過(guò)程序讀入數(shù)據(jù)庫(kù) , 錄入學(xué)生信息模塊算法描述如下:1. 管理員登陸后,錄入學(xué)生信息管理界面;2. 單擊增加學(xué)生按鈕,鍵入學(xué)生 ID ;3. 當(dāng)錄入學(xué)號(hào)已經(jīng)存在 ,提示該學(xué)生信息已存在,請(qǐng)重新輸入;4. 否則學(xué)生信息添加成功。查找學(xué)生信息功能學(xué)生信息管理系統(tǒng)對(duì)查詢學(xué)生信息管理也很重要 ,方法和增添學(xué)生信息類(lèi) 似,也同樣是利用計(jì)算機(jī)通過(guò)程序讀入數(shù)據(jù)庫(kù) ,查詢學(xué)生信息模塊算法描述如下:1.管理員登陸后,點(diǎn)擊查詢學(xué)生;2.當(dāng)錄入學(xué)生信息不存在時(shí) ,提示沒(méi)有該學(xué)生信息,重新輸入;3. 當(dāng)錄入學(xué)生 ID 已經(jīng)存在 ,提示該學(xué)生信息存在,顯示學(xué)生信息; 刪

9、除學(xué)生信息功能學(xué)生選課模塊主要是給刪除學(xué)生信息的功能 ,本功能主要由管理員進(jìn)入數(shù)據(jù) 庫(kù) ,然后學(xué)生管理系統(tǒng) ,其刪除學(xué)生信息模塊算法描述如下:1管理員成功登陸;2點(diǎn)擊刪除學(xué)生;3輸入學(xué)生相關(guān)信息,如學(xué)生 ID ;4. 如該學(xué)生不存在,則提示信息不存在,否則刪除該學(xué)生。修改學(xué)生信息功能此信息修改模塊主要是給學(xué)生和管理員建立信息庫(kù) ,方便管理員查詢操作 ,信 息修改模塊算法描述如下:1管理員成功登陸;2點(diǎn)擊修改學(xué)生信息;3輸入學(xué)生的編號(hào);4編號(hào)為空 ,重新輸入;5輸入不為數(shù)字 ,重新輸入; 6輸入正確 ,進(jìn)入修改頁(yè)面進(jìn)行相關(guān)修改。3.3 學(xué)生模塊設(shè)計(jì)查看學(xué)生個(gè)人信息功能 學(xué)生信息管理系統(tǒng)方便了學(xué)生

10、查看自己的學(xué)籍信息 ,如果學(xué)校由于疏忽輸入 了錯(cuò)誤信息 ,自己可以查看并且及時(shí)通知學(xué)校管理員 ,及時(shí)修改 ,減少不必要的麻 煩.此信息查詢模塊主要是方便學(xué)生查詢操作 ,信息查詢模塊算法描述如下:1 學(xué)生成功登陸;2點(diǎn)擊查詢學(xué)生信息;3輸入學(xué)生的編號(hào);4編號(hào)為空 ,重新輸入;5輸入不為數(shù)字 ,重新輸入;6輸入正確 ,進(jìn)入信息查詢頁(yè)面進(jìn)行相關(guān)修改。 修改學(xué)生登錄密碼功能 學(xué)生可以進(jìn)入學(xué)生管理系統(tǒng)進(jìn)行登錄密碼的修改1. 學(xué)生成功登陸;2單擊修改密碼;3輸入舊密碼、新密碼確認(rèn)后,若舊密碼正確則修改成功,則提示重新輸 入舊密碼;4提交修改完成修改。精品文檔4 程序運(yùn)行與測(cè)試package com.bri

11、up.view;import java.awt.*;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import javax.swing.*;import com.briup.bean.Admin;import com.briup.bean.Student;import com.briup.dao.AdminDao;/登錄窗口import com.briup.dao.StudentDao;public class LoginFrame extends JFrameprivate JCheckBox c;pr

12、ivate JButton loginBtn,resetBtn;private JTextField nameInput;private JPasswordField pwdInput;private AdminDao adminDao=new AdminDao();private StudentDao studentDao=new StudentDao();public LoginFrame()/初始化窗口本身Dimension d=Toolkit.getDefaultToolkit().getScreenSize();int width=d.width;int height=d.heigh

13、t;/設(shè)置坐標(biāo)為 400-400 寬為 300 高為 200 setBounds(width/2-200, height/2-100, 400, 200); setTitle(" 登錄界面 ");/設(shè)置窗口為不可縮放setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);init();event(); private void event() /為按鈕添加事件處理resetBtn.addMouseListener(new MouseAdapter() /監(jiān)聽(tīng)鼠標(biāo)單擊事件Overridepubli

14、c void mouseClicked(MouseEvent e) System.exit(0); );loginBtn.addMouseListener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent e) /獲取用戶輸入的值String username=nameInput.getText().trim();String password=pwdInput.getText().trim();/判斷是否勾選了管理員多選框if(c.isSelected()/從管理員表中檢測(cè)數(shù)據(jù)Admin a=adminDao.fin

15、dAdminByName(username);如果a不為null說(shuō)明用戶輸入的管理員是存在的if(a=null)/說(shuō)明此管理員不存在JOptionPane.showMessageDialog(null, "用戶名或密碼不 正確", "提示信息 ", JOptionPane.WARNING_MESSAGE);else/管理員存在/密碼正確 /密碼不正確if(a.getPassword().equals(password)/后臺(tái)保存的密碼和用戶從客戶端輸入的密碼是一 樣的JOptionPane.showMessageDialog(null, 登"

16、錄成功 ", "提示信息 ",JOptionPane.WARNING_MESSAGE);精品文檔/關(guān)閉當(dāng)前的登錄窗口LoginFrame.this.dispose(); /開(kāi)啟管理員界面 new AdminFrame(a.getUsername().go();elseJOptionPane.showMessageDialog(null, "用戶名或密 碼不正確 ", "提示信息 ", JOptionPane.WARNING_MESSAGE); else /從普通用戶表中檢測(cè)數(shù)據(jù) Student s=studentDao.fi

17、ndStudentByStudentId(username); if(s=null)JOptionPane.showMessageDialog(null, "用戶名或密碼不 正確", "提示信息 ", JOptionPane.WARNING_MESSAGE);elseif(s.getPassword().equals(password) JOptionPane.showMessageDialog(null, "登錄成功 ", " 提示信息 ", JOptionPane.WARNING_MESSAGE);LoginF

18、rame.this.dispose();new StudentFrame(s,null).go();elseJOptionPane.showMessageDialog(null, "用戶名或密 碼不正確 ", "提示信息 ", JOptionPane.WARNING_MESSAGE); );public void init()/初始化窗口內(nèi)部的組件Container container=getContentPane(); /組件放到哪個(gè)位置由用戶自己來(lái)制定 container.setLayout(null);JLabel title=new JLabel

19、("用 戶 登 錄”); title.setFo nt(new Fo nt( 楷體",0,32); title.setBounds(110,5,200,33); container.add(title);JLabel nameLabel=new JLabel(用戶名:"); nameLabel.setBounds(70, 55, 60, 30); container.add(nameLabel);nameInput=new JTextField(); nameInput.setBounds(130,60,150,20);/設(shè)置提示內(nèi)容namelnput.setTo

20、olTipText(此處寫(xiě)登錄用戶名"); container.add(nameInput);JLabel pwdLabel=new JLabel("密碼:");pwdLabel.setBounds(70, 80, 60, 30); container.add(pwdLabel);pwdlnput=new JPasswordField(); pwdlnput.setBounds(130,85,150,20);pwdInput.setToolTipText(”此處寫(xiě)密碼"); container.add(pwdlnput);c=new JCheckBox(

21、"管理員"); c.setBounds(68, 115, 70, 30); container.add(c);loginBtn=new JButton(" 登錄"); loginBtn.setBounds(140, 115, 60, 30); container.add(loginBtn);resetBt n=new JButt on("取消"); resetBtn.setBounds(215, 115, 60, 30); container.add(resetBtn);public void go()setVisible(true)

22、; public static void main( Stri ng args) new LoginFrame().go(); package com.briup.dao;import java.sql.C onn ecti on;import java.sql.PreparedStateme nt;import java.sql.ResultSet;import com.briup.bea n. Adm in;import com.briup.util.C onn ectio nF actory;/和管理員相關(guān)的數(shù)據(jù)庫(kù)操作public class Adm in Dao /根據(jù)用戶名查找指定管

23、理員public Adm in fin dAdm in ByName(Stri ng user name)Adm in adm in=n ull;Conn ecti on conn=n ull;PreparedStateme nt pstat=n ull;ResultSet rs=null;try conn=Conn ectio nF actory.getC onn ectio n();Stri ng sql="select username,password from admin where usern ame=?" pstat=c onn .prepareStateme

24、 nt(sql);pstat.setStri ng(1, user name);rs=pstat.executeQuery();如果查不到任何數(shù)據(jù)下方while內(nèi)部的代碼不會(huì)執(zhí)行while(rs. next()/如果能執(zhí)行到這個(gè)地方說(shuō)明指定管理員是存在的adm in=new Admi n();admi n.setUsername(username);admi n.setPassword(rs.getStri ng("password"); catch (Excepti on e) / TODO: han dle exceptione.pri ntStackTrace();f

25、in allyConnectionF actory.close(rs, pstat, conn); return admi n;public static void main( Stri ng args) Admin Dao().fi ndAdmi nByName("admi").getPassword();package com.briup.view;import java.awt.C ontainer;import java.awt.GridLayout;import java.awt.eve nt.MouseAdapter;import java.awt.eve nt

26、.MouseEve nt;import java.awt.eve nt.Wi ndowAdapter;import java.awt.eve nt.Wi ndowEve nt;import javax.swi ng.JButton;import javax.sw in g.JFrame;import javax.swi ng.JLabel;import javax.swi ng.JOptio nPane;import javax.swi ng.JPa nel;import javax.sw in g.JTextField;import com.briup.bean.Student;import

27、 com.briup.dao.Stude ntDao;/添加學(xué)生public class AddStudentFrame extends JFrameprivate AdminFrame admin;private JPanel p1,p2,p3,p4,p5;private JLabel idLbl,nameLbl,ageLbl,genderLbl;private JTextField idInput,nameInput,ageInput,genderInput;private JButton submitBtn,cancelBtn;private StudentDao studentDao=

28、new StudentDao();public AddStudentFrame(AdminFrame admin) this.admin=admin;setTitle("添加學(xué)生");setResizable(false);setBounds(400, 100, 300, 400);init();event();private void init()Container container=getContentPane();container.setLayout(new GridLayout(5, 1); p1=new JPanel();p1.setLayout(null);

29、idLbl=new JLabel("學(xué)籍號(hào):");idLbl.setBounds(50, 30, 50, 20);idInput=new JTextField();idInput.setBounds(100, 30, 120, 20);p1.add(idLbl);p1.add(idInput);container.add(p1);p2=new JPanel();p2.setLayout(null);nameLbl=new JLabel("姓名:");nameLbl.setBounds(50, 10, 50, 20);nameInput=new JText

30、Field();nameInput.setBounds(100, 10, 120, 20);p2.add(nameLbl);p2.add(nameInput);container.add(p2);p3=new JPanel();p3.setLayout(null);ageLbl=new JLabel('年齡:");ageLbl.setBounds(50, 10, 50, 20); ageInput=new JTextField();ageInput.setBounds(100, 10, 120, 20);p3.add(ageLbl);p3.add(ageInput);cont

31、ainer.add(p3);p4=new JPanel();p4.setLayout(null);genderLbl=new JLabel('性別:");genderLbl.setBounds(50, 10, 50, 20); genderInput=new JTextField();genderInput.setBounds(100, 10, 120, 20);p4.add(genderLbl); p4.add(genderInput);container.add(p4);p5=new JPanel();p5.setLayout(null);submitBt n=new J

32、Butto n(” 確定"); submitBtn.setBounds(130, 10, 60, 20);can celBt n=new JButt on("取消");cancelBtn.setBounds(195, 10, 60, 20);p5.add(submitBtn);p5.add(cancelBtn);container.add(p5);private void event()/設(shè)置當(dāng)前窗口的關(guān)閉操作/此處可自定義窗口關(guān)閉時(shí)所作操作this.addWindowListener(new WindowAdapter() public void windowC

33、losing(WindowEvent e) /將之前傳遞過(guò)來(lái)的那個(gè)管理窗口設(shè)置為可用if(admin!=null)admin.setEnabled(true); /釋放當(dāng)前窗口AddStudentFrame.this.dispose(); );/取消按鈕的操作cancelBtn.addMouseListener(new MouseAdapter() Overridepublic void mouseClicked(MouseEvent e) if(admin!=null)admin.setEnabled(true); AddStudentFrame.this.dispose(); );/確定按

34、鈕的操作submitBtn.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) /接受用戶在客戶端輸入的值 /正則表達(dá)式String studentId=idInput.getText().trim();String studentName=nameInput.getText().trim();String age=ageInput.getText().trim();String gender=genderInput.getText().trim();Student s=new Student()

35、;/注意別輸入了已存在的學(xué)籍號(hào)s.setStudentid(Long.parseLong(studentId);s.setStudentName(studentName);s.setPassword(studentId);s.setAge(Integer.parseInt(age);s.setGender(gender);/將獲得值封裝成Student對(duì)象調(diào)用指定方法存儲(chǔ)到數(shù)據(jù)庫(kù)boolea n result=stude ntDao.addStude nt(s);if(result)JOptionPane.showMessageDialog(null, 添" 加成功! ")

36、;if(admin!=null)admin.setEnabled(true); AddStudentFrame.this.dispose();elseJOptionPane.showMessageDialog(null, 添" 加失敗 ,請(qǐng)檢查學(xué)籍號(hào)是否已存在! "););public void go()setVisible(true);public static void main(String args) new AddStudentFrame(null).go();import java.awt.C ontainer;import java.awt.GridLayou

37、t;import java.awt.eve nt.MouseAdapter;import java.awt.eve nt.MouseEve nt;import java.awt.eve nt.Wi ndowAdapter;import java.awt.eve nt.Wi ndowEve nt;import java.util.List;import javax.swi ng.JButt on;import javax.sw in g.JFrame;import javax.swi ng.JLabel;import javax.swi ng.JPa nel;import javax.sw in

38、 g.JTextField;import com.briup.bea n. Stude nt;import com.briup.dao.Stude ntDaqpublic class Fin dStude ntFrame exte nds JFrame private StudentDao studentDao=new StudentDao(); private JLabel idLbl,nameLbl;private JTextField idInput,nameInput;private JButton findBtn,cancelBtn;public FindStudentFrame()

39、setTitle(" 查找學(xué)生 "); setBounds(405, 100, 200, 390); setResizable(false);init();event(); private void init()Container container=getContentPane(); container.setLayout(new GridLayout(3, 1); JPanel p1=new JPanel();p1.setLayout(null);idLbl=new JLabel("學(xué)籍號(hào):"); idLbl.setBounds(20, 55, 50

40、, 20);idInput=new JTextField();idInput.setBounds(73, 55, 100, 20);p1.add(idLbl);p1.add(idInput);container.add(p1);JPanel p2=new JPanel();p2.setLayout(null);nameLbl=new JLabel("姓名:");nameLbl.setBounds(20, 55, 50, 20); nameInput=new JTextField();nameInput.setBounds(73, 55, 100, 20); p2.add(n

41、ameLbl);p2.add(nameInput);container.add(p2);JPanel p3=new JPanel();p3.setLayout(null);fin dBt n=n ew JButto n(” 搜索"); findBtn.setBounds(60,30,60,20);can celBt n=new JButt on("取消");cancelBtn.setBounds(123,30,60,20); p3.add(findBtn);p3.add(cancelBtn);container.add(p3); private void even

42、t() this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) FindStudentFrame.this.dispose(); );findBtn.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e) String idStr=idInput.getText().trim(); String nameStr=nameInput.getText().trim(); Long student

43、Id=null;String studentName=null; if(idStr.length()!=0) / 如果 id 有值 studentId=Long.parseLong(idStr); if(nameStr.length()!=0) studentName=nameStr; List<Student> students=studentDao.findStudentByConditions(studentId, studentName);/將查詢的結(jié)果傳遞給顯示界面new ShowResultFrame(students).go() ); public void go()

44、setVisible(true); public static void main( Stri ng args) new Fin dStude ntFrame().go();(” ".trim().length();正則表達(dá)式s/System.out.pri ntln ("");/ System.out.pri ntln ("1 2 ".replaceAll("s", "").le ngth(); package com.briup.view;學(xué) HE 號(hào):17蛀岔吏1掘'lil亙河結(jié)耒I O 回

45、1蘆缶整mi跨import java.awt.Color;import java.awt.C ontainer;import java.awt.GridLayout;import java.awt.eve nt.MouseAdapter;import java.awt.eve nt.MouseEve nt;import java.awt.eve nt.Wi ndowAdapter;import java.awt.eve nt.Wi ndowEve nt;import java.util.List;import javax.sw in g.BorderFactory;import javax.s

46、wi ng.JButton;import javax.sw in g.JFrame;import javax.swi ng.JLabel;import javax.swi ng.JOptio nPane;import com.briup.bea n. Stude nt;import com.briup.dao.Stude ntDao;public class ShowResultFrame extends JFrame private List<Student> students;private StudentDao studentDao=new StudentDao();publ

47、ic ShowResultFrame(List<Student> students) setTitle(" 查詢結(jié)果 ");if (students.size() > 0) setBounds(100, 100, 300, 60 * students.size(); else setBounds(100, 100, 300, 150); this.students = students;init();private void init() Container container = getContentPane(); container.setLayout

48、(new GridLayout(students.size(), 2); / 遍歷集合 將集合中的每一條數(shù)據(jù)顯示到當(dāng)前容器里面 if (students.size() = 0) con tai ner.add( new JLabel(暫無(wú)記錄!"); else for (Student stu : students) JLabel l = new JLabel(stu.getStudentName(); final Student s = stu; l.addMouseListener(new MouseAdapter() public void mouseClicked(Mouse

49、Event e) if(e.getClickCount()>=2) new StudentFrame(s, null).go(); );l.setBorder(BorderFactory.createLineBorder(new Color(253, 253,187); JButton b = new JButt on("刪除");final Long studentId = stu.getStudentid(); b.addMouseListener(new MouseAdapter() public void mouseClicked(MouseEvent e)

50、int choose=JOptionPane.showConfirmDialog(null,"確定刪除?");判斷用戶點(diǎn)擊的是否是確定按鈕if(choose=JOptio nPa ne.OK_OPTION)ShowResultFrame.this.dispose();stude nts.remove(s);new ShowResultFrame(stude nts).go();stude ntDao.deleteStude ntByld(stude ntId); );container.add(l); container.add(b); private void eve n

51、t() this.addWi ndowListe ner(new Win dowAdapter() public void win dowClos in g(Wi ndowEve nt e) ShowResultFrame.this.dispose(); ); public void go() setVisible(true); public static void main( Stri ng args) package com.briup.view;import java.awt.Color;import java.awt.C ontainer;import java.awt.GridLay

52、out;import java.awt.eve nt.MouseAdapter;import java.awt.eve nt.MouseEve nt; import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import com.briup.bean.St

53、udent;import com.briup.dao.StudentDao;public class StudentFrame extends JFrameprivate JPanel p1,p2,p3,p4,p5,p6;private JLabel idLbl,pwdLbl,nameLbl,ageLbl,genderLbl;private JTextField idInput,nameInput,ageInput,genderInput; private JPasswordField pwdInput;private Student student;private JButton modif

54、yPwdBtn,submitBtn,exitBtn;private String nPassword;private StudentDao dao=new StudentDao();/stude nt記錄當(dāng)前登錄的用戶n Password記錄修改以后的密碼public StudentFrame(Student s,String nPassword) this.student=s;this.nPassword=nPassword; /初始化的時(shí)候獲取當(dāng)前用戶的密碼 setTitle(" 學(xué)生信息 ");setResizable(false);setBounds(400, 10

55、0, 300, 400);/默認(rèn)關(guān)閉行為 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); init();event(); public void go()setVisible(true);private void init()Container container=getContentPane();container.setLayout(new GridLayout(6, 1); p1=new JPanel();p1.setLayout(null);idLbl=new JLabel("學(xué)籍號(hào):");idLbl.setBound

56、s(50, 30, 50, 20);idInput=new JTextField();/需要將數(shù)字類(lèi)型轉(zhuǎn)換為字符串類(lèi)型+""/字符串類(lèi)型 -數(shù)字類(lèi)型 parseInt parseLong idInput.setText(student.getStudentid()+""); /設(shè)置學(xué)籍號(hào)不可修改/idInput.setEnabled(false);idInput.setEditable(false);/idInput.setDisabledTextColor(new Color(255, 255, 255);idInput.setDisabledTextColor(Color.black); idInput.setBounds(100, 30, 120, 20);p1.add(idLbl);p1.add(idInput);container.add(p1);p2=new JPanel();p2.setLayout(null);pwdLbl=new JLabel("密碼:");pwdLbl.setBounds(50, 30, 50, 20);pwdInput=new J

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論