【課程設計報告】基于JAVA和MySql數(shù)據(jù)庫的CS架構(gòu)學生成績管理系統(tǒng)的設計與實現(xiàn)
《【課程設計報告】基于JAVA和MySql數(shù)據(jù)庫的CS架構(gòu)學生成績管理系統(tǒng)的設計與實現(xiàn)》由會員分享,可在線閱讀,更多相關《【課程設計報告】基于JAVA和MySql數(shù)據(jù)庫的CS架構(gòu)學生成績管理系統(tǒng)的設計與實現(xiàn)(26頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、更多計算機類課程設計、畢業(yè)設計、論文請訪問: 上海理工大學計算機學院 可視化程序設計報告 (2010—— 2011 年度第2學期) 題 目 學生成績管理系統(tǒng) 院 系 專 業(yè) 電子商務 年 級 2009級 學 號 姓 名 指 導 教 師
2、 成 績 _______________________ 2011 年 03月 09日 目 錄 一、課程設計的目的與要求……………………………………………2 二、 設計的正文 ………………………………………………………2 1.系統(tǒng)分析………………………………………………………………2 1.1系統(tǒng)開發(fā)背景等 …………………………………………………2 1.2業(yè)務流程分析 ……………………………………………………2 1.3數(shù)據(jù)流程圖 ………………………………………………………3 2.系
3、統(tǒng)設計 ………………………………………………………………3 2.1功能設計 …………………………………………………………3 2.2系統(tǒng)運行環(huán)境與數(shù)據(jù)庫設計 ……………………………………4 2.3輸入/輸出設計……………………………………………………4 3.系統(tǒng)實施………………………………………………………………4 3.1登錄與退出界面 …………………………………………………4 3.2 修改密碼…………………………………………………………10 3.3成績查詢…………………………………………………………15 3.4 相關數(shù)據(jù)庫表………………………………………………
4、……24 三、課程設計總結(jié)………………………………………………………25 四、參考文獻……………………………………………………………26 《學生成績查詢系統(tǒng)》 一、課程設計的目的與要求 通過面向?qū)ο蟪绦蛟O計課程設計,進一步掌握面向?qū)ο蟪绦蛟O計的理論和方法。培養(yǎng)和鍛煉開發(fā)小型學生成績查詢系統(tǒng)的能力。為今后相關系統(tǒng)開發(fā)打下良好的基礎。 要求了學生成績查詢系統(tǒng)開發(fā)的全過程,理解面向?qū)ο蟪绦蛟O計課程相關的概念,掌握面向?qū)ο蟪绦蛟O計的開發(fā)方法,鞏固對Java相關方法和概論的理解。主要包括:系統(tǒng)調(diào)研方法;業(yè)務分析、數(shù)據(jù)分析、系統(tǒng)邏輯模型設計方法;數(shù)據(jù)庫設計、功
5、能設計、物理模型設計方法;系統(tǒng)的實現(xiàn)等方法。完成一個小型系統(tǒng)的設計與開發(fā)。 二、設計正文 1 系統(tǒng)分析 1.1系統(tǒng)開發(fā)背景、開發(fā)范圍、建設目標與必要性 隨著國家對于教育的重視逐漸加大,學校正向著大型化、規(guī)?;l(fā)展,而對于大中型學校,跟學生信息管理有關的信息隨之急劇增加。在這種情況下單靠人工來處理員工的工資不但顯得力不從心,而且極容易出錯。該系統(tǒng)就是設計一個學生信息數(shù)據(jù)庫管理系統(tǒng),由計算機代替人工執(zhí)行一系列諸如增加新學生,刪除舊學生,學生信息修改,查詢,維護及打印等操作。這樣就使學生部門管理人員可以輕松快捷地完成學生信息管理的任務。 1>本課題的研究意義 當今時代是飛速發(fā)展的信息時代
6、。在各行各業(yè)中離不開信息處理,這正是計算機被廣泛應用于信息管理系統(tǒng)的環(huán)境。計算機的最大好處在于利用它能夠進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。 2>本課題的研究現(xiàn)狀 管理查詢信息系統(tǒng)是進行信息的采集、存儲、查詢、加工、維護和使用的系統(tǒng)。它是隨著管理科學和技術科學的發(fā)展而形成的。學生成績管理查詢系統(tǒng)是一個教育單位不可缺少的部分,它的內(nèi)容對于學校的決策者和管理者和學生來說都至關重要,所以學生成績管理查詢系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段,但一直以來人們使用傳統(tǒng)人工的方式管理文件
7、檔案,這種管理方式存在著許多缺點,如:效率低、保密性差;另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。 1.2業(yè)務流程分析 主要業(yè)務流程圖,如下圖所示 1.3數(shù)據(jù)流程圖 2 系統(tǒng)設計 2.1功能設計 學生信息管理系統(tǒng)主要提供方便高效的查詢功能,學生可以通過該系統(tǒng)查詢相關信息。對于本系統(tǒng),我們需要實現(xiàn)以下一些基本功能: 1)密碼管理功能 該模塊實現(xiàn)對用戶密碼進行管理的功能,主要是進行密碼的修改。為了防止個人的名片信息被泄露,不知道用戶密碼的人員不能進入本系統(tǒng)。出于安全的考慮,用戶可以定期修改自己的密碼,以防止密碼被盜用。
8、2)成績管理功能 該模塊實現(xiàn)成績查詢功能。用戶在查詢學生成績時,有時需要了解學生的基本信息,因此希望在查詢出的內(nèi)容中包括學生基本情況和成績信息。有時用戶需要查詢學生的某些課程成績,因此應該具有查詢課程成績的功能。有時需要查詢學生的學期總成績,因此也應該具有該功能。 3)退出系統(tǒng) 完成了對學生成績的查詢的操作后,應該可以安全地離開該系統(tǒng)。通過該模塊實現(xiàn)安全退出大學生成績查詢系統(tǒng)。 2.2系統(tǒng)運行環(huán)境與數(shù)據(jù)庫設計 鑒于本系統(tǒng)的業(yè)務性質(zhì),必須選擇具有較高的可靠性、穩(wěn)定性和必要的容錯能力的計算機硬件和軟件系統(tǒng),以保證任何情況下都不至于丟失、損壞數(shù)據(jù);必須具有較高的響應速度,以保證各項具體業(yè)務
9、的順利進行;應考慮具有良好的可維護性,可操作性和可擴充性,以保證將來系統(tǒng)規(guī)模的擴展和升級的需要。 開發(fā)與運行環(huán)境的使用 開發(fā)前臺工具:JAVA 開發(fā)后臺工具:MySQL 本系統(tǒng)采用Microsoft Windows 2000Server作為操作系統(tǒng)。 本系統(tǒng)準備采用客戶機/服務器(C/S)結(jié)構(gòu)模式。 2.3輸入/輸出設計 格式說明: 學生成績輸入界面格式為對話框格式,可是選項為:學生學號、姓名、班級、各科目成績。輸出單個學生成績也是對話框形式,全部學生成績輸出為表格形式。 安全性設計:設置了用戶名和密碼驗證方式,防止用戶非法登錄。 3 系統(tǒng)實施 3.1登錄與退出界面
10、 登錄界面: 退出界面 關鍵代碼如下, public class Login extends JFrame implements ActionListener, FocusListener, KeyListener, ItemListener { /** * */ private static final long serialVersionUID = 1L; JLabel top, bott; JPanel panelMain, panelInfo; JTextField userName; JPasswordField pass
11、word; JButton login, cancel; String culeString = " 提 示 : "; public Login() { super("重慶大學城市科技學院2008級電子商務--學生成績管理系統(tǒng)"); top = new JLabel(new ImageIcon("picture/login_top.gif")); bott = new JLabel(); panelMain = new JPanel(new BorderLayout(10, 10)); bott.setBorder(new
12、LineBorder(new Color(184, 173, 151))); buildCenter(); panelMain.add("North", top); panelMain.add("South", bott); panelMain.add(panelInfo); // 加監(jiān)聽事件 login.addActionListener(this); cancel.addActionListener(this); login.addFocusListener(this); cancel.addFocusListener(this
13、); login.addKeyListener(this); cancel.addKeyListener(this); userName.addFocusListener(this); userName.addKeyListener(this); password.addFocusListener(this); password.addKeyListener(this); // 加窗口監(jiān)聽,new WindowAdapter適配器 this.addWindowListener(new WindowAdapter() { public
14、void windowClosing(WindowEvent we) { quit(); }// End windowClosing }); this.setContentPane(panelMain); // 設置窗口面板 this.setLocation(400, 335); this.setSize(350, 250); this.setResizable(false); // 設置窗口大小不可變 this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); // /*
15、**************/// this.setVisible(true); password.requestFocus(true); // 設置焦點給密碼框 } private void buildCenter() { // TODO Auto-generated method stub JLabel lb1, lb2; lb1 = new JLabel("用戶名:"); lb2 = new JLabel("密 碼:"); userName = new JTextField(15); password =
16、new JPasswordField(15); login = new TJButton("picture/key.gif", "登 錄", "登錄系統(tǒng)"); cancel = new TJButton("picture/exit.gif", "退 出", "關閉系統(tǒng)"); // **************************// // 定義面板為無布局 panelInfo = new JPanel(null); // 加入組建 panelInfo.add(lb1); panelInfo.add(lb2); panelInfo.a
17、dd(userName); panelInfo.add(password); panelInfo.add(login); panelInfo.add(cancel); lb1.setBounds(70, 14, 60, 25); lb2.setBounds(70, 48, 60, 25); userName.setBounds(150, 14, 150, 25); password.setBounds(150, 48, 150, 25); login.setBounds(80, 100, 80, 23); cancel.setBound
18、s(195, 100, 80, 23); // 設置邊框線 panelInfo.setBorder(BorderFactory.createTitledBorder("")); } private void quit() { int flag = 0; String msg = "您 現(xiàn) 在 要 關 閉 系 統(tǒng) 嗎?"; flag = JOptionPane.showConfirmDialog(null, msg, "提示", JOptionPane.YES_NO_OPTION); if (flag == JOptionPane.Y
19、ES_OPTION) { this.setVisible(false); System.exit(0); } return; } private void dengLu() { String username = userName.getText().trim(); // System.out.println(user); String pwd = String.valueOf(password.getPassword()); String sql = "select password from userinfo where
20、 username=" + username + ""; ResultSet rs = ConnectionDB.verification(sql); // 從數(shù)據(jù)庫獲取匹配user的密碼結(jié)果集 int flag = 0; // 用戶登錄錯誤次數(shù)的標記 try { while (rs.next()) { // 用戶名存在 if (pwd.equals(rs.getString(1))) { bott.setText(culeString + "登錄成功,正在進入系統(tǒng)......"); SaveUserInfo user =
21、new SaveUserInfo();// 保存用戶名 user.setUsername(username); user.setPassword(pwd); new RegisterUI(); this.setVisible(false); } else { bott.setText(culeString + "用戶名/密碼不正確,請重新輸入......"); int m = JOptionPane.showConfirmDialog(null, "用戶名/密碼錯誤,請重新輸入!", "錯誤信息"
22、, JOptionPane.YES_OPTION); if (m == JOptionPane.NO_OPTION) { System.exit(1); } else { flag++; if (flag == 3) { JOptionPane.showMessageDialog(null, "您不是本系統(tǒng)的用戶,系統(tǒng)關閉 ...", "警告", JOptionPane.ERROR_MESSAGE); System.exit(0); }
23、 } //在Login.java這個頁面里面點擊鼠標右鍵,run as ->Java Application就OK了明白了 //還有一種方法,上面喲uge綠的圓形圖標,那個下拉菜單有需要運行的類名稱,需要運行哪個就點一下哦 //程序要改一下 == return; } } } catch (HeadlessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) {
24、 // TODO Auto-generated catch block e.printStackTrace(); } } public void actionPerformed(ActionEvent ae) { // 動作按鍵 if (ae.getSource() == login) { dengLu(); // 登錄 } else { quit(); // 退出 } } public void itemStateChanged(ItemEvent ie) { password.requestFocus
25、(true); } public void keyListener(KeyEvent ke) { // 鍵盤按下監(jiān)聽 int key = ke.getKeyCode(); if (key == ke.VK_ENTER) { if (ke.getSource() == userName) { password.requestFocus(true); // 按下Enter鍵后,焦點從用戶名框轉(zhuǎn)到密碼框 } else if (password.getPassword().length > 0) { dengLu(); // 按Enter鍵
26、登錄系統(tǒng) } } else if (key == ke.VK_ESCAPE) { quit(); // 按ESC鍵退出系統(tǒng) } } public void keyReleased(KeyEvent ke) { // 鍵盤釋放監(jiān)聽 } public void keyTyped(KeyEvent ke) { // 按鍵類型監(jiān)聽 } public void focusGained(FocusEvent fe) { if (fe.getSource() == userName) {// 窗口下面的功能提示 bott.
27、setText(culeString + "請輸入用戶名..."); } else if (fe.getSource() == password) { bott.setText(culeString + "請輸入登錄密碼..."); } else if (fe.getSource() == login) { bott.setText(culeString + "登錄系統(tǒng)..."); } else if (fe.getSource() == cancel) { bott.setText(culeString + "退出系統(tǒng)..."); } }
28、 public void focusLost(FocusEvent fe) { // 失去焦點監(jiān)聽 } */ public static void main(String[] args) { new FStartWindow("picture/Login.gif", new JFrame(), 1200); new Login(); } public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub } } 3.2修改密碼 修改密碼
29、:學生輸入正確的用戶名和密碼后可以對自己的密碼進行修改。管理員也可以登錄系統(tǒng)后,進入用戶管理模塊,點擊修改用戶密碼,輸入原始密碼,新密碼和確認密碼,如果原始密碼輸入錯誤系統(tǒng)將提示密碼錯誤,新密碼和確認密碼必須是一樣的這樣才能修改成功。 private static final long serialVersionUID = 1L; String username = SaveUserInfo.getUsername(); String password = SaveUserInfo.getPassword(); JButton bt1, bt2; JTextFiel
30、d tf1, tf2, tf3, tf; JPanel panelMain; public RePassword (JFrame frame) { super(frame, "修改密碼", true); panelMain = new JPanel(new BorderLayout()); BuildPanel(); Addlistener(); this.setContentPane(panelMain); this.setSize(350, 200); this.setMaximumSize(new Dimension(500, 50
31、0)); this.setResizable(false); this.setLocation(450, 350); this.setVisible(true); } private void Addlistener() { // TODO Auto-generated method stub bt1.addActionListener(this); bt2.addActionListener(this); bt1.addMouseListener(this); bt2.addMouseListener(this); tf1
32、.addActionListener(this); tf2.addActionListener(this); } private void BuildPanel() { // TODO Auto-generated method stub JLabel pass1, pass2, pass3; pass1 = new JLabel("原密碼:"); pass2 = new JLabel("新密碼:"); pass3 = new JLabel("重復新密碼:"); //文本框 tf1 = new JTextField(1
33、5); tf2 = new JTextField(15); tf3 = new JTextField(15); tf = new JTextField("密碼信息"); tf.setHorizontalAlignment (JTextField.CENTER); tf.setBackground(new Color(199, 183, 143)); tf.setBorder(new LineBorder(new Color(87, 87, 47))); tf.setEditable(false); //按鈕 bt1 = new TJ
34、Button("picture/modi3.gif", "確定", "修改密碼"); bt2 = new TJButton("picture/cancel.gif", "取消", "取消操作"); JPanel ps, pc, pcc, pcc1, pcc11, pcc12; // // JLabel line0 = new JLabel(new ImageIcon("pic/line5.gif"));//分隔線 // JLabel line1 = new JLabel(new ImageIcon("pic/line4.gif"));//分隔線
35、 ps = new JPanel(new FlowLayout(FlowLayout.CENTER,50,10)); //放置確定和取消按鈕 pc = new JPanel(new BorderLayout(0,5)); //放置按鈕以上的部分 pcc = new JPanel(new FlowLayout(FlowLayout.CENTER,0,0)); //添加新用戶文本框為不可編輯,放在North,其他放在流布局的面板中 pcc1 = new JPanel(new FlowLayout(FlowLayout.LEFT,0,3)); //
36、放置"密碼信息"三行 pcc11 = new JPanel(new GridLayout(3,1,0,6));//放置密碼信息"三行 pcc12 = new JPanel(new GridLayout(3,1,0,6));//放置密碼信息"三行文本框 //構(gòu)造密碼信息"三行 pcc11.add(pass1); pcc11.add(pass2); pcc11.add(pass3); pcc12.add(tf1); pcc12.add(tf2); pcc12.add(tf3); pcc1.add(pcc11); pcc1.add
37、(pcc12); //將用戶信息加入面板 pcc.add(pcc1); pc.add("North",tf); pc.add(pcc); pc.setBorder(BorderFactory.createTitledBorder("")); ps.add(bt1); ps.add(bt2); panelMain.add("South",ps); panelMain.add(pc); } /**========================================================
38、===============** * [## private boolean isValidity() {} ]: 測試用戶輸入的數(shù)據(jù)是否合法 * 參數(shù) :無 * 返回值 :boolean * 修飾符 :private * 功能 :測試用戶輸入的數(shù)據(jù)是否合法 **=======================================================================** */ private boolean isValidity() { if(tf1.getT
39、ext().length() == 0) { JOptionPane.showMessageDialog(null, "原密碼不能為空", "提示", JOptionPane.INFORMATION_MESSAGE); tf1.requestFocus(true); return false; } else if(tf2.getText().length() == 0) { JOptionPane.showMessageDialog(null, "新密碼不能為空", "提示", JOptionPane.INFORMATI
40、ON_MESSAGE); tf1.requestFocus(true); return false; } else if(tf3.getText().length() == 0) { JOptionPane.showMessageDialog(null, "重復密碼不能為空", "提示", JOptionPane.INFORMATION_MESSAGE); tf1.requestFocus(true); return false; } else if(tf2.getText().length() != tf3.g
41、etText().length()) { JOptionPane.showMessageDialog(null, "新密碼和重復密碼不一致不能為空", "提示", JOptionPane.INFORMATION_MESSAGE); tf1.requestFocus(true); return false; } else if(tf1.getText().toString() != password) { JOptionPane.showMessageDialog(null, "您輸入的原密碼不正確", "提示", J
42、OptionPane.INFORMATION_MESSAGE); tf1.requestFocus(true); return false; } else if(tf2.getText().length() > 16) { JOptionPane.showMessageDialog(null, "密碼長度不能超過16位", "提示", JOptionPane.INFORMATION_MESSAGE); tf1.requestFocus(true); return false; } else { pass
43、word = tf2.getText(); } return true; } /**=======================================================================** * [## private void saveLiveIn() {} ]: * 參數(shù) :無 * 返回值 :無 * 修飾符 :private * 功能 :保存用戶信息 **==================================================
44、=====================** * @throws SQLException */ private boolean rePassword() throws SQLException { boolean flag = ConnectionDB.rePassword(username, password); return flag; } /**=======================================================================** * ActionListener 監(jiān)聽
45、 **=======================================================================** */ public void actionPerformed (ActionEvent e) { String msg = "密碼修改成功!請返回..."; if (e.getSource() == bt1) { if (isValidity()) { try { boolean flag = rePassword(); } catch (SQLExcepti
46、on e1) { // TODO Auto-generated catch block e1.printStackTrace(); } JOptionPane.showMessageDialog(null, msg, "提示", JOptionPane.YES_OPTION); } }else if(e.getSource() == bt2) { this.setVisible(false); } } public void mouseClicked(MouseEvent e) { // TODO
47、 Auto-generated method stub } public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub
48、 } public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } 3.3成績查詢 public class ConnectionDB { private static Connection conn = null; private static Statement stmt = null; private static ResultSet rs = null; static { try { Class.forName("com
49、.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/stu", "root", "root"); } catch (Exception e) { JOptionPane.showMessageDialog(null, "數(shù)據(jù)庫連接失敗...", "錯誤", JOptionPane.ERROR_MESSAGE); System.exit(0); } } private Conn
50、ectionDB() { // 防止實例化 } public static ResultSet verification(String sql) { try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); // stmt.close(); // conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace();
51、 } return rs; } //根據(jù)用戶名獲取密碼信息 public String getPassword(String username) { String password = null; try { stmt = conn.createStatement(); rs = stmt .executeQuery("select password from userinfo where username = " + username + ""); while (rs.next()) {
52、password = rs.getString("password"); } rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("ConnectionDB.insertAmount(): false"); } return password; } //更新數(shù)據(jù)庫中的密碼信息 public static boolean
53、 rePassword(String username, String password) { boolean flag = false; // 作為是否成功插入記錄的標記 int rsBefore = 0; try { stmt = conn.createStatement(); rsBefore = stmt.executeUpdate("UPDATE userinfo SET password = " + password + " where username = " + username + ""); stmt.close();
54、 conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block System.out.println("ConnectionDB.insertAmount(): false"); } if (rsBefore > 0) flag = true; return flag; } //根據(jù)學號獲取此學生的各科成績,返回值為String[]數(shù)組,保存形式為課程名+分數(shù) public static String[] getGrade(S
55、tring stuid) { String sql = "select b.coursename, a.grade FROM gradeinfo a,courseinfo b where a.stuid=" + stuid + " and a.courseid=b.courseid"; String[] str = null; int count = 0; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) {
56、 // GradeInfo info = new GradeInfo(); // info.setCourseName(rs.getString("coursename")); // info.setScore(rs.getString("grade")); // list.add(info); count++; } str = new String[count]; rs.beforeFirst(); int i = 0; while (rs.next()) { str[i++] = rs.
57、getString("coursename") + "." + rs.getString("grade"); } rs.close(); stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (str != null && str.length > 0) return str; return null; } //根據(jù)學號獲取學生姓名(寫重復了
58、 。見getName方法) public static String getName(String stuid) { String sql = "select name from stuinfo where stuid=" + stuid + ""; String str = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { str = rs.getString("name"); }
59、 rs.close(); stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (str != null) return str; return null; } //根據(jù)學號獲取此學號的平均成績 public static String getAvg(String stuid) { String sql = "select avg(grade) as avg fro
60、m gradeinfo where stuid=" + stuid + ""; // cast(avg(colname) as decimal(9,1)) end String str = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { str = rs.getString("avg"); } rs.close(); stmt.close(); } catch (
61、SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (str != null) return str; return null; } //獲取所有學生的平均成績 public static String[] getAllAvg() { String sql = "select a.stuid, name, avg(grade) avg " + "from gradeinfo a, courseinfo b, stui
62、nfo c " + "where a.stuid=c.stuid and a.courseid=b.courseid " + "GROUP by stuid"; String[] str = null; int count = 0; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { count++; } rs.beforeFirst(); str = new String[c
63、ount]; int i = 0; while (rs.next()) { str[i++] = rs.getString("stuid") + "." + rs.getString("name") + "." + rs.getString("avg"); } rs.close(); stmt.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (s
64、tr != null && str.length > 0) return str; return null; } //獲取所有課程信息(課程名) public static String getCourseName() { String sql = "select coursename from courseinfo"; String str = ""; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next())
65、 { if (!rs.isLast()) { str += rs.getString("coursename") + "."; } else { str += rs.getString("coursename"); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (str != null) return str; return null; }
66、 //根據(jù)學號獲取學生姓名 public static String getNameByStuid(String stuid) { String sql = "select name from stuinfo where stuid=" + stuid + ""; String str = null; try { stmt = conn.createStatement(); rs = stmt.executeQuery(sql); while (rs.next()) { str = rs.getString("name"); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (str != nu
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習題含答案
- 2煤礦安全監(jiān)測工種技術比武題庫含解析
- 1 礦山應急救援安全知識競賽試題
- 1 礦井泵工考試練習題含答案
- 2煤礦爆破工考試復習題含答案
- 1 各種煤礦安全考試試題含答案