




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.連接數(shù)據(jù)庫模塊。主要是連接數(shù)據(jù)庫相關的端口和用戶名、密碼以及Jdbc連接 本地數(shù)據(jù)庫等信息,其主要實現(xiàn)代碼如下:public class DatabaseBean public static Connection getConnection() Connection conn = null;String driver = oracle.jdbc.driver.OracleDriver”;String url = jdbc:oracle:thin:localhost:1521:xe;String user = hr;String password = oracle;try Class.forN
2、ame(driver);conn = DriverManager.getConnection(url, user, password); catch (ClassNotFoundException | SQLException ex) Logger.getLogger(DatabaseBean.class.getName().log(Level.SEVERE, null, ex);return conn;public static void close(ResultSet rs, Statement st, Connection conn) try if (rs != null) rs.clo
3、se();if(st != null) st.close();if(conn != null) conn.close(); catch (SQLException ex) Logger.getLogger(DatabaseBean.class.getName().log(Level.SEVERE, null, ex);2 .調用存儲過程(此處只舉例學生表存儲過程)調用學生表的查詢所有信息、根據(jù)學號查詢學生表的所有信息返 回游標顯示出來,以及插入、更新等存儲過程,具體實現(xiàn)代碼如下: public class StudentDaoImpl implements IStudentDao public
4、 static ResultSet executQuery(String sqlString) throw new UnsupportedOperationException(Not supported yet.); /To change body of generated methods, choose Tools | Templates.Overridepublic List getAllStudent() List students = new ArrayList();Connection conn = null;CallableStatement cs = null;ResultSet
5、 rs = null;try conn = DatabaseBean.getConnection();cs = conn.prepareCall(call students.select_all(?);cs.registerOutParameter(1, OracleTypes.CURSOR);cs.executeQuery();rs = (ResultSet) cs.getObject(1);while (rs.next() Student stu = new Student();stu.setSno(rs.getString(sno);stu.setSname(rs.getString(s
6、name);stu.setSsex(rs.getString(ssex);stu.setSage(rs.getInt(sage);stu.setSdept(rs.getString(sdept);students.add(stu); catch (SQLException ex) Logger.getLogger(StudentDaoImpl.class.getName().log(Level.SEVERE, null, ex); finally DatabaseBean.close(rs, cs, conn);return students;Overridepublic Student ge
7、tStudent(String sno) Student stu = new Student();Connection conn = null;CallableStatement cs = null;ResultSet rs = null;try conn = DatabaseBean.getConnection();cs = conn.prepareCall(call students.select_sno(?,?)”);cs.setString(1, sno);cs.registerOutParameter(2, OracleTypes.CURSOR);cs.executeQuery();
8、rs = (ResultSet) cs.getObject(2);if (rs.next() stu.setSno(rs.getString(sno);stu.setSname(rs.getString(sname);stu.setSsex(rs.getString(ssex);stu.setSage(rs.getInt(sage);stu.setSdept(rs.getString(sdept); catch (SQLException ex) Logger.getLogger(StudentDaoImpl.class.getName().log(Level.SEVERE, null, ex
9、); finally DatabaseBean.close(rs, cs, conn);return stu;Overridepublic boolean insertStudent(Student stu) Connection conn = null;CallableStatement cs = null;try conn = DatabaseBean.getConnection();cs = conn.prepareCall(call students.insert_msg(?,?,?,?,?)”);cs.setString(1, stu.getSno();cs.setString(2,
10、 stu.getSname();cs.setString(3, stu.getSsex();cs.setInt(4, stu.getSage();cs.setString(5, stu.getSdept();cs.executeUpdate();return true; catch (SQLException ex) Logger.getLogger(StudentDaoImpl.class.getName().log(Level.SEVERE, null, ex); return false; finally DatabaseBean.close(null, cs, conn);Overri
11、depublic boolean updateStudent(Student stu) Connection conn = null;CallableStatement cs = null;try conn = DatabaseBean.getConnection();cs = conn.prepareCall(call students.update_msg(?,?,?,?,?)”);cs.setString(1, stu.getSno();cs.setString(2, stu.getSname();cs.setString(3, stu.getSsex();cs.setInt(4, st
12、u.getSage();cs.setString(5, stu.getSdept();cs.executeUpdate();return true; catch (SQLException ex) Logger.getLogger(StudentDaoImpl.class.getName().log(Level.SEVERE, null, ex); return false; finally DatabaseBean.close(null, cs, conn);Overridepublic boolean deleteStudent(String sno) Connection conn =
13、null;CallableStatement cs = null;try conn = DatabaseBean.getConnection();cs = conn.prepareCall(call students.delete_sno(?);cs.setString(1, sno);cs.executeUpdate();return true; catch (SQLException ex) Logger.getLogger(StudentDaoImpl.class.getName().log(Level.SEVERE, null, ex); return false; finally D
14、atabaseBean.close(null, cs, conn);3.表模型模塊:public class StudentTableModel extends AbstractTableModelList rowsData;List columnsData;public StudentTableModel() rowsData = DaoFactory.getStudentDao().getAllStudent(); setColumnNames();public StudentTableModel(String sno) rowsData = new ArrayList();rowsDat
15、a.add(DaoFactory.getStudentDao().getStudent(sno); setColumnNames();public int getRowCount() return rowsData.size();public int getColumnCount() return columnsData.size();public Object getValueAt(int rowIndex, int columnIndex) switch (columnIndex) case 0:return rowsData.get(rowIndex).getSno();case 1:r
16、eturn rowsData.get(rowIndex).getSname();case 2:return rowsData.get(rowIndex).getSsex();case 3:return rowsData.get(rowIndex).getSage();case 4:return rowsData.get(rowIndex).getSdept();default:return s;private void setColumnNames() columnsData = new ArrayList();columnsData.add(學號);columnsData.add(姓名);c
17、olumnsData.add(性別);columnsData.add(年齡);columnsData.add(院系);public String getColumnName(int column) return columnsData.get(column);4.主界面模塊:主界面采用Form窗體,來實現(xiàn)操作主界面窗體,里面包含有三個按鈕,分 別為學生信息管理、課程信息管理、成績信息管理。用戶可通過點擊這三個按鈕 分別進入相應的功能模塊。其實現(xiàn)代碼主要有:private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) j
18、ava.awt.EventQueue.invokeLater(new Runnable() public void run() new studentFrame().setVisible(true););private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) java.awt.EventQueue.invokeLater(new Runnable() public void run() new courseFrame().setVisible(true););private void jButton3Action
19、Performed(java.awt.event.ActionEvent evt) ( java.awt.EventQueue.invokeLater(new Runnable() (public void run() (new gradeFrame().setVisible(true););5.學生信息管理模塊:(1)此模塊實現(xiàn)學生信息管理,主要實現(xiàn)學生信息的添加、查詢、修改和刪除,運行截圖如下:話輸入要查句的學號:學話輸入要查句的學號:學W眺名T |查詢浦加信息酬信自刪除信,性刖年檔學站扁9512101 李勇男19計算機條951210295121039512101 李勇男19計算機條951
20、2102951210395211019521102952110395311019531102/- Xfi工202022?1201819計翼機兼 計賓機崩1= m共 故學弩 數(shù)學窘學號:9512101年都:19I算機蚤:其主要實現(xiàn)代碼有:private void queryButtonActionPerformed(java.awt.event.ActionEvent evt) (String sno = snoQueryText.getText().trim();JOptionPane.showMessageDialog(this, sno);if (”.equals(sno) (sm = n
21、ew StudentTableModel(); else (sm = new StudentTableModel(sno);studentTable.setModel(sm);snoQueryText.setText();private void addStudentButtonActionPerformed(java.awt.event.ActionEvent evt) ( AddStudentDialog dialog = new AddStudentDialog(this, true);dialog.setLocationRelativeTo(this);dialog.setVisibl
22、e(true);if(AddStudentDialog.RET_OK = dialog.getReturnStatus() (sm = new StudentTableModel();studentTable.setModel(sm);private void studentTableMouseClicked(java.awt.event.MouseEvent evt) (int rowNum = studentTable.getSelectedRow();if (rowNum = 0) (String sno = (String) studentTable.getVdueAt(rowNum,
23、 0);if (snoText.getText().trim().equals(sno) (return;Student stu = DaoFactory.getStudentDao().getStudent(sno);snoText.setText(stu.getSno();snameText.setText(stu.getSname();if (男”.equals(stu.getSsex() (maleRadioButton.setSelected(true); else (femaleRadioButton.setSelected(true);sageText.setText(Strin
24、g.valueOf(stu.getSage();sdeptText.setText(stu.getSdept();private void deleteStudentButtonActionPerformed(java.awt.event.ActionEvent evt) (int rowNum = studentTable.getSelectedRow();if (rowNum = 0) (String sno = snoText.getText().trim();int choise = JOptionPane.showConfirmDialog(this,是否要刪除學生的信息 內容”,”
25、提示”,JOptionPane.YES_NO_OPTION);if(choise = JOptionPane.YES_OPTION) (if (!DaoFactory.getStudentDao().deleteStudent(sno) (JOptionPane.showMessageDialog(this,”學生信息刪除失敗,請與系統(tǒng)管理員聯(lián)系!”);sm = new StudentTableModel();studentTable.setModel(sm); else (JOptionPane.showMessageDialog(this,”請選擇要刪除的學生信息!”);private v
26、oid updateStudentButtonActionPerformed(java.awt.event.ActionEvent evt) (String sno = snoText.getText().trim();String sname = snameText.getText().trim();String ssex;if (maleRadioButton.isSelected() (ssex = maleRadioButton.getText(); else (ssex = femaleRadioButton.getText();String sage = sageText.getT
27、ext().trim();String sdept = sdeptText.getText().trim();if(!validateData(sno, sname, ssex, sage, sdept) ( return;if (!DaoFactory.getStudentDao().findStudent(sno) (JOptionPane.showMessageDialog(this,”指定學號的學生記錄不存在,請重 新輸入!);return;Student stu = new Student(sno, sname, ssex, Integer.parseInt(sage), sdept
28、);如果數(shù)據(jù)驗證正確,則插入學生記錄內容if (!DaoFactory.getStudentDao().updateStudent(stu) (JOptionPane.showMessageDialog(this,”學生記錄更新失敗,請檢查輸入的 數(shù)據(jù)內容!);sm = new StudentTableModel();studentTable.setModel(sm);private void queryButtonMouseClicked(java.awt.event.MouseEvent evt) (/ TODO add your handling code here:String sno
29、 = snoQueryText.getText().trim();if (”.equals(sno) (sm = new StudentTableModel();sdept) (字!”)sdept) (字!”);間!);sm = new StudentTableModel(sno);studentTable.setModel(sm);snoQueryText.setText();private boolean validateData(String sno, String sname, String ssex, String sage, Stringif (”.equals(sno) | !Tools.isNumeric(sno) | sno.length() != 7) (JOptionPane.showMessageDialog(this,”請輸入正確的學號,并且學號為數(shù)snoText.requestFocus(); return fa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度法律服務團隊聘用合同范本下載
- 2025年度音樂噴泉與音響系統(tǒng)集成項目合同
- 知識產權教育實踐活動計劃
- 科技創(chuàng)新應用推廣工作方案計劃
- 學期后勤保障與支持計劃
- 2025年物位儀合作協(xié)議書
- 培養(yǎng)小學生的公民道德責任計劃
- 制定年度客戶滿意度提升計劃
- 如何構建長效的職業(yè)發(fā)展體系計劃
- 校園美術文化建設方案計劃
- 30道醫(yī)院婦產科醫(yī)生崗位高頻面試問題附考察點及參考回答
- 21中華文化-2023年中考英語新熱點時文閱讀
- 卷內目錄范例模板
- 學校課程整體框架圖
- 環(huán)境衛(wèi)生學第二章 環(huán)境與健康的關系
- 2024屆高考語文復習:小說閱讀之敘事順序與敘事節(jié)奏
- 新生兒肺透明膜病的影像與臨床探討
- 動力觸探檢測報告超重型圓錐動力觸探試驗
- 職業(yè)素養(yǎng)的內容(含事例)課件
- 工藝美術專業(yè)-工藝品設計課程標準
- 環(huán)衛(wèi)市場化運營方案PPT
評論
0/150
提交評論