




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.连接数据库模块。主要是连接数据库相关的端口和用户名、密码以及Jdbc连接 本地数据库等信息,其主要实现代码如下: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 .调用存储过程(此处只举例学生表存储过程)调用学生表的查询所有信息、根据学号查询学生表的所有信息返 回游标显示出来,以及插入、更新等存储过程,具体实现代码如下: 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窗体,来实现操作主界面窗体,里面包含有三个按钮,分 别为学生信息管理、课程信息管理、成绩信息管理。用户可通过点击这三个按钮 分别进入相应的功能模块。其实现代码主要有: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)此模块实现学生信息管理,主要实现学生信息的添加、查询、修改和删除,运行截图如下:话输入要查句的学号:学话输入要查句的学号:学W眺名T |查询浦加信息酬信自删除信,性刖年档学站扁9512101 李勇男19计算机条951210295121039512101 李勇男19计算机条951
20、2102951210395211019521102952110395311019531102/- Xfi工202022?1201819计翼机兼 计宾机崩1= m共 故学弩 数学窘学号:9512101年都:19I算机蚤:其主要实现代码有: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,”学生信息删除失败,请与系统管理员联系!”);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、);如果数据验证正确,则插入学生记录内容if (!DaoFactory.getStudentDao().updateStudent(stu) (JOptionPane.showMessageDialog(this,”学生记录更新失败,请检查输入的 数据内容!);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,”请输入正确的学号,并且学号为数snoText.requestFocus(); return fa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专业装修设计合同样本
- 净水器加盟协议合同样本
- 2025合同范本:合同协议
- 供柴油协议合同标准文本
- 借书合同样本
- 农村房产阴阳合同样本
- 农户种植包销合同标准文本
- 养殖竹鼠合同回收合同样本
- 公会邀约 合同样本
- 业务中介佣金合同样本
- 《中医骨伤科学》课件- 外治法
- 统编版小学语文六年级下册第二单元快乐读书吧:《昆虫记》读中推进课课件(共19张)
- 医学会议准备流程
- 药剂学练习试卷24(题后含答案及解析)
- 2025年上海新徐汇集团有限公司招聘笔试参考题库含答案解析
- 生物技术测试题+参考答案
- 大学英语(西安石油大学)知到智慧树章节测试课后答案2024年秋西安石油大学
- 《市域智慧共享中药房建设指南》
- 不稳定型心绞痛和非ST段抬高心肌梗死治疗指南解读
- 民宿的经营成本分析报告
- 2025 预应力混凝土钢管桁架叠合板
评论
0/150
提交评论