




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、天津理工大学实验报告学院(系)名称:计算机与通信工程学院姓名晴小天学号201356xxxx专业计算机科学与技术班级2013级2班实验项目实验五:小型信息管理系统设计开发课程名称Java语百程序设计课程代码0667056实验时间2015年11月12日、20日、 25日第3、4节实验地点7-219批改意见成绩教师签字:实验内容:1 .参考实验资料,自拟题目,设计制作一个小型信息管理系统。实验目的:2 .理解并掌握Java数据库访问技术。3 .掌握对数据进行增加、删除、修改、查询。实验要求:1.按照要求编制程序;3 .为增加程序可读性,请在程序中对类成员进行适当注释说明;4 .整理上机步骤,总结经验
2、和体会;5 .认真完成并按时提交实验报告。【实验过程记录(源程序、测试用例、测试结果及心得体会等)】一、MIS系统系统名称:学生信息管理系统操作系统:Window8.1Java 环境;、jre 1.7.0_21集成开发环境:MyEclipse Professional 2013数据库软件版本:SQL Server 2010 连接驱动:jdbc-odbc二、系统主要功能本项目主要实现了 java界面的登录功能,以及登陆后的增删改查功能,主 要是对student表实现增加一条学生信息、删除一条学生信息记录、更新 学生信息表,以及查询学生信息表的数据添加删除更新查找三、数据库结构1 .数据库名称:S
3、choolDB2 .数据表:student表具体字段信息如下表:字段名长度小数点不是nullsname(主键)varchar20101Vsnamevarchar200Vsdeptvarchar200Vsgradevarchar200Vsaddressvarchar200Vsname, sname, sdept, sgrade 、 saddress 分另U保存学生的姓名、 专业、学院、成绩、家庭住址等学生基本信息,其中sname为主键且不为空。四、关键功能界面截图1 .登陆界面用户输入数据库中存在的用户名和密码后,便可登陆成功,否则提示密 码错误正确的用户名,错误的密码正确的用户名正确的密码后进
4、入学生信息管理系统:2 .添加功能:输入界面中的所有数据之后,点击添加,即可向数据库中加 入一条学生记录3 .删除功能:输入姓名,即可把数据库中对应姓名的一条学生信息删除4 .更新功能:输入要修改学生的信息,即可修改该学生在数据库中的记 录5 .查找功能:点击查找可以查询数据库中的所有学生信息,每页9条记录,其余的学生信息的点击下一页,可以查看,还可以点击上一页,来切换数据点击下一页:五、关键代码分析DBConnetion用于连接数据库:package edu;public class DBConnection public static Connection getConnection()C
5、onnection conn = null;String url = "jdbc:odbc:schoolData"String username = "sa"String password = "123456”;try Class.forName(driver);conn = DriverManager.getConnection(url,username,password); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.print
6、StackTrace(); return conn;登陆的窗体类LoginFrame、 JFrame:package edu;private private private private private private private private private privatepublic class Jswing implements ActionListenerLoginFrame frame;JLabel lname;JLabel lpassword;JTextField tname;JPasswordField tpassword;JButton byes;JButton bno
7、;JPanel p1;JPanel p2;JPanel p3;private String userName,password;/* 初始化窗口数据*/public void initData() frame=new LoginFrame(" 登陆 ");frame.setResizable(false);frame.setLayout(new GridLayout(3, 2);Container c=frame.getContentPane();lname=new JLabel(" 用户名:");lpassword=new JLabel("
8、密 码 : ");tname=new JTextField(8);tpassword=new JPasswordField(8);byes=new JButton(" 确定 ");bno=new JButton(" 取消 ");p1=new JPanel();p2=new JPanel();p3=new JPanel();p1.add(lname);p1.add(tname);c.add(p1);p2.add(lpassword);p2.add(tpassword);c.add(p2);p3.add(byes);p3.add(bno);c.ad
9、d(p3);frame.setVisible(true);byes.addActionListener(this);bno.addActionListener(this);userName=null;password=null;Overridepublic void actionPerformed(ActionEvent e) if(e.getSource()=bno)System.exit(1);elseif(e.getSource()=byes)userName=tname.getText().trim();password=new String(tpassword.getPassword
10、();boolean result=false;result=SchoolOperate.login(userName, password); if(result)frame.setVisible(false);SwingUtilities.invokeLater(new Runnable() public void run() SchoolInfoGui application = newSchoolInfoGui();application.getJFrame().setVisible(true););elseString error=null;if(result=false)error=
11、" 用户名或密码错误,请重试!"JOptionPane.showMessageDialog(null, error);public static void main(String args) new Jswing().initData();package edu;public class LoginFrame extends JFramepublic LoginFrame(String title) throws HeadlessException super();setTitle(title);setDefaultCloseOperation(JFrame.EXIT_ON
12、_CLOSE);setBounds(540,200, 280, 200);学生信息管理系统主界面的SchoolInfoGui :package edu;public class SchoolInfoGui implements ActionListener private JFrame jFrame;private JPanel jContentPane;private JLabel lblName = null;private JTextField tfName = null;private JLabel lblRegion = null;private JComboBox cbRegion
13、 = null;private JLabel lblArea = null;private JTextField tfArea = null;private JLabel lblPopu = null;private JTextField tfPopu = null;private JLabel lblGdp = null;private JTextField tfGDP = null;private JButton btnAdd = null;private JButton btnDel = null;private JButton btnModify = null;private JBut
14、ton btnQuery = null;private JButton btnUpPage = null;private JButton btnDownPage = null;private JTable table = null;TableModel tm = null;JScrollPane jsp = null;private JTextField getTfName() if (tfName = null) tfName = new JTextField();tfName.setBounds(new Rectangle(89, 17, 173, 27);return tfName;pr
15、ivate JComboBox getCbRegion() if (cbRegion = null) String str = " 请选择 ", " 计算机科学与技术", " 信息安全", " 网络工程 ", " 信息与计算科学", " 物流工程 ", " 软件工程 "cbRegion = new JComboBox(str);cbRegion.setBounds(new Rectangle(360, 17, 229, 28);return cbRegio
16、n;private JTextField getTfArea() if (tfArea = null) tfArea = new JTextField();tfArea.setBounds(new Rectangle(89, 61, 173, 27);return tfArea;private JTextField getTfPopu() if (tfPopu = null) tfPopu = new JTextField();tfPopu.setBounds(new Rectangle(360, 61, 229, 28);return tfPopu;private JTextField ge
17、tTfGDP() if (tfGDP = null) tfGDP = new JTextField();tfGDP.setBounds(new Rectangle(89, 105, 173, 27);return tfGDP;private JButton getBtnAdd() if (btnAdd = null) btnAdd = new JButton();btnAdd.setBounds(new Rectangle(46, 152, 71, 30);btnAdd.addActionListener(this);btnAdd.setText(" 添加 ");retur
18、n btnAdd;private JButton getBtnUpPage() if (btnUpPage = null) btnUpPage = new JButton(" 上一页 ");btnUpPage.addActionListener(this);btnUpPage.setBounds(200, 390, 80, 30);return btnUpPage;private JButton getBtnDownPage() if (btnDownPage = null) btnDownPage = new JButton(" 下一页 ");btnD
19、ownPage.addActionListener(this);btnDownPage.setBounds(300, 390, 80, 30);return btnDownPage;private JButton getBtnDel() if (btnDel = null) btnDel = new JButton();btnDel.setBounds(new Rectangle(189, 152, 71, 30);btnDel.addActionListener(this);btnDel.setText(" 删除 ");return btnDel;private JBut
20、ton getBtnModify() if (btnModify = null) btnModify = new JButton();btnModify.setBounds(new Rectangle(342, 152, 71, 30);btnModify.addActionListener(this);btnModify.setText(" 更新 ");return btnModify;private JButton getBtnQuery() if (btnQuery = null) btnQuery = new JButton();btnQuery.setBounds
21、(new Rectangle(484, 152, 71, 30);btnQuery.addActionListener(this);btnQuery.setText(" 查找 ");return btnQuery;JFrame getJFrame() if (jFrame = null) jFrame = new JFrame();jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jFrame.setBounds(new Rectangle(450, 250, 610, 454);jFrame.setContentP
22、ane(getJContentPane();jFrame.setTitle(" 学生信息管理系统");return jFrame;private JPanel getJContentPane() if (jContentPane = null) lblGdp = new JLabel();lblGdp.setBounds(new Rectangle(15, 106, 63, 27);lblGdp.setText(" 家庭住址");lblPopu = new JLabel();lblPopu.setBounds(new Rectangle(285, 61,
23、 63, 27);lblPopu.setText(" 成绩 ");lblArea = new JLabel();lblArea.setBounds(new Rectangle(15, 61, 63, 27);lblArea.setText(" 学院 ");lblRegion = new JLabel();lblRegion.setBounds(new Rectangle(285, 17, 63, 27);lblRegion.setText(" 专业 ");lblName = new JLabel();lblName.setBounds
24、(new Rectangle(15, 17, 63, 27);lblName.setText(" 姓名 ");jContentPane = new JPanel(); jContentPane.setLayout(null); jContentPane.add(lblName, null); jContentPane.add(getTfName(), null); jContentPane.add(lblRegion, null); jContentPane.add(getCbRegion(), null); jContentPane.add(lblArea, null);
25、 jContentPane.add(getTfArea(), null); jContentPane.add(lblPopu, null); jContentPane.add(getTfPopu(), null); jContentPane.add(lblGdp, null); jContentPane.add(getTfGDP(), null); jContentPane.add(getBtnAdd(), null); jContentPane.add(getBtnDel(), null); jContentPane.add(getBtnModify(), null); jContentPa
26、ne.add(getBtnQuery(), null); jContentPane.add(getBtnUpPage(), null);jContentPane.add(getBtnDownPage(), null);return jContentPane;public void actionPerformed(ActionEvent e) if (e.getActionCommand().equals(" 查找 ") selectAll();下一页") 上一页") 添加 ") 请选择 ") else if (e.getActionC
27、ommand().equals(" selectDownPage(); else if (e.getActionCommand().equals(" selectUpPage(); else if (e.getActionCommand().equals("if (tfName.getText().equals("")| cbRegion.getSelectedItem().equals("| tfArea.getText().equals("")| tfPopu.getText().equals("&q
28、uot;)| tfGDP.getText().equals("") JOptionPane.showMessageDialog(jFrame, else 请填写相关信息");添加成功");添加失败");删除 ") 删除成功");删除失败");请填写一个国家名字");更新 ") 请选择 ")更新成功");更新失败");Student co = new Student();co.setSname(tfName.getText();co.setSpro(String) c
29、bRegion.getSelectedItem();co.setSdept(tfArea.getText();co.setSgrade(tfPopu.getText();co.setSaddress(tfGDP.getText();boolean flag = SchoolOperate.add(co);if (flag) JOptionPane.showMessageDialog(jFrame, " else JOptionPane.showMessageDialog(jFrame, " else if (e.getActionCommand().equals("
30、; if(!tfName.getText().equals("") String key = tfName.getText();boolean flag = SchoolOperate.del(key);if (flag) JOptionPane.showMessageDialog(jFrame, " else JOptionPane.showMessageDialog(jFrame, " else JOptionPane.showMessageDialog(jFrame, " else if (e.getActionCommand().equ
31、als("if (!tfName.getText().equals("")&& !cbRegion.getSelectedItem().equals("&& !tfArea.getText().equals("")&& !tfPopu.getText().equals("")&& !tfGDP.getText().equals("") Student cou = new Student();cou.setSname(tfName.g
32、etText();cou.setSpro(String)cbRegion.getSelectedItem();cou.setSdept(tfPopu.getText();cou.setSgrade(tfArea.getText();cou.setSaddress(tfGDP.getText();boolean flag = SchoolOperate.modify(cou);if(flag)JOptionPane.showMessageDialog(jFrame, else JOptionPane.showMessageDialog(jFrame, else JOptionPane.showM
33、essageDialog(jFrame,请填写相应的信息");public void setValues(Object obj) public void selectAll() String spro=cbRegion.getSelectedItem().toString();List<Student> list = SchoolOperate.queryFirst();Object datavalues = new Objectlist.size()5;for (int i = 0; i < list.size(); i+) Student co = list.g
34、et(i);datavaluesi0 = co.getSname();datavaluesi1 = co.getSpro();datavaluesi2 = co.getSdept();datavaluesi3 = co.getSgrade();datavaluesi4 = co.getSaddress();tm = new TableModel();this.setValues(datavalues);table = new JTable(tm);table.updateUI();JScrollPane jsp = new JScrollPane(table);jsp.setBounds(0,
35、 200, 600, 182);jContentPane.add(jsp);public void selectDownPage() List<Student> list = SchoolOperate.downPage();if (list != null) Object datavalues = new Objectlist.size()5;for (int i = 0; i < list.size(); i+) Student co = list.get(i);datavaluesi0 = co.getSname();datavaluesi1 = co.getSpro(
36、);datavaluesi2 = co.getSdept();datavaluesi3 = co.getSgrade();datavaluesi4 = co.getSaddress();this.setValues(datavalues);table.updateUI(); else JOptionPane.showMessageDialog(jFrame, " 已经是最后一页");public void selectUpPage() List<Student> list = SchoolOperate.upPage();if (list != null) Ob
37、ject datavalues = new Objectlist.size()5;for (int i = 0; i < list.size(); i+) Student co = list.get(i);datavaluesi0 = co.getSname();datavaluesi1 = co.getSpro();datavaluesi2 = co.getSdept();datavaluesi3 = co.getSgrade();datavaluesi4 = co.getSaddress();this.setValues(datavalues);table.updateUI(); e
38、lse JOptionPane.showMessageDialog(jFrame, " 已经是第一页");针对数据库的增删改查操作方法类;package edu;public class SchoolOperate static int i = 1;static int x = 0;public static List<Student> queryFirst() String sql = "select top 9 * from student order by sname"List<Student> list = query(s
39、ql);return list;public static List<Student> downPage() int y = queryCount();List<Student> list = null;int count = 0; / 总页数if (y % 5 = 0) count = y / 5; else count = y / 5 + 1;if (i < count) x = (+i) - 1) * 5;String sql = "select top "+ x+ " * from (select * from student
40、 where sname not in(select top"+ x + " sname from student order by sname) as A "list = query(sql); else if (i >= count) list = null;return list;public static boolean login(String userName,String password) boolean result=false;Connection con = DBConnection.getConnection();String sql
41、="select passWord from login where userName="PreparedStatement ps = null;ResultSet rs = null;tryps=con.prepareStatement(sql);ps.setObject(1, userName);rs=ps.executeQuery();while(rs.next()if(password.equals(rs.getString("passWord").trim() result=true;catch (SQLException e) / TODO
42、Auto-generated catch block e.printStackTrace();finallytryif(rs!=null)rs.close();catch(SQLException e)e.printStackTrace();try if(ps!=null)ps.close(); catch (SQLException e) e.printStackTrace();tryif(con!=null)con.close();catch(SQLException e)e.printStackTrace();return result;public static int queryCo
43、unt() int count = 0;Connection conn = DBConnection.getConnection();String sql = "select count(*) from student"Statement stmt = null;ResultSet rs = null;try stmt = conn.createStatement();rs = stmt.executeQuery(sql);while (rs.next() count = rs.getInt(1); catch (SQLException e) e.printStackTr
44、ace(); finally try if (rs != null) rs.close();if (stmt != null) stmt.close();if (conn != null) conn.close(); catch (SQLException e) e.printStackTrace();return count;public static List<Student> query(String sql) Connection conn = DBConnection.getConnection(); List<Student> list = new Arra
45、yList<Student>();Statement stmt = null;ResultSet rs = null;try stmt = conn.createStatement();rs = stmt.executeQuery(sql);while (rs.next() Student cou = new Student();cou.setSname(rs.getString(1);cou.setSpro(rs.getString(2);cou.setSdept(rs.getString(3);cou.setSgrade(rs.getString(4);cou.setSaddr
46、ess(rs.getString(5);list.add(cou); catch (SQLException e) e.printStackTrace(); finally try if (rs != null) rs.close();if (stmt != null) stmt.close();if (conn != null) conn.close(); catch (SQLException e) e.printStackTrace();return list;public static List<Student> upPage() List<Student> l
47、ist = null;if (i > 2) x = (-i) - 1) * 5;String sql = "select top "+ x+ " * from (select * from student where sname not in(select top+ x + " sname from student order by sname) as A "list = query(sql); else if (i = 2) list = queryFirst(); i-; else if (i < 2) list = null;
48、 return list;public static boolean add(Student cou) Connection conn = DBConnection.getConnection(); PreparedStatement pstmt = null;String sql = "insert into student values(,)"int x = 0;try pstmt = conn.prepareStatement(sql);pstmt.setString(1, cou.getSname();pstmt.setString(2, cou.getSpro()
49、;pstmt.setString(3, cou.getSdept();pstmt.setString(4, cou.getSgrade();pstmt.setString(5, cou.getSaddress();x = pstmt.executeUpdate(); catch (SQLException e) e.printStackTrace(); finally try if (pstmt != null) pstmt.close();if (conn != null) conn.close(); catch (SQLException e) e.printStackTrace();if
50、 (x = 1) return true; else return false;public static boolean del(String key) Connection conn = DBConnection.getConnection(); PreparedStatement stmt = null;String sql = "delete from student where sname ="int x = 0;try stmt = conn.prepareStatement(sql);stmt.setString(1, key);x = stmt.execut
51、eUpdate(); catch (SQLException e) e.printStackTrace(); finally try if (stmt != null) stmt.close();if (conn != null) conn.close(); catch (SQLException e) e.printStackTrace();if (x = 1) return true; else return false;public static boolean modify(Student cou) Connection conn = DBConnection.getConnection();PreparedStatement pstmt = null;String sql = "update student set spro=,sdept=,sgrade=,saddress= where sname ="int x = 0;try pstmt = conn.prepareStatement(sql);pstmt.setString(1, cou.getSpro();pstmt.setString(2, c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行春招考试时间复习策略试题及答案
- 福州市肿瘤医院招聘考试真题2024
- 2025广深铁路某合同段桥梁工程预应力锚具应用总结
- 2025公司股权转让合同样本
- 艺术家联展行业跨境出海战略研究报告
- 足球心理辅导服务企业制定与实施新质生产力战略研究报告
- 自行车比赛场所在线平台企业制定与实施新质生产力战略研究报告
- 草原博物馆企业制定与实施新质生产力战略研究报告
- 履约保证金担保服务行业跨境出海战略研究报告
- 政策性银行服务AI应用企业制定与实施新质生产力战略研究报告
- 安徽省合肥市2025届高三下学期3月二模试题 语文 含解析
- 命案防控讲座课件内容
- 2024年广西职业院校技能大赛中职组《大数据应用与服务》赛项竞赛样题
- 2025年郑州黄河护理职业学院单招职业适应性考试题库带答案
- 9.1日益完善和法律体系课件-2024-2025学年统编版道德与法治七年级下册
- 授权独家代理商合作协议2025年
- PE特种设备焊工理论复习题库(带解析)
- 精准医疗复合手术室
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 快板 绕口令 《玲珑塔》
- 台湾民法典目录
评论
0/150
提交评论