1、java可视化界面操作数据库编程天津理工大学实验报告学院(系)名称:计算机与通信工程学院姓名晴小天学号201356xxxx专业计算机科学与技术班级2013级2班实验项目实验五:小型信息管理系统设计开发课程名称Java语言程序设计课程代码0667056实验时间2015年11月12日、20日、25日第3、4节实验地点7-219批改意见成绩教师签字: 实验内容:1. 参考实验资料,自拟题目,设计制作一个小型信息管理系统。实验目的:1理解并掌握Java数据库访问技术。2掌握对数据进行增加、删除、修改、查询。实验要求:1按照要求编制程序;3为增加程序可读性,请在程序中对类成员进行适当注释说明;4整理上机
2、步骤,总结经验和体会;5认真完成并按时提交实验报告。【实验过程记录(源程序、测试用例、测试结果及心得体会等)】一、MIS系统系统名称:学生信息管理系统操作系统: Window8.1Java环境; jdk 1.7.0_21 、jre 1.7.0_21集成开发环境:MyEclipse Professional 2013数据库软件版本:SQL Server 2010 连接驱动:jdbc-odbc二、系统主要功能本项目主要实现了java界面的登录功能,以及登陆后的增删改查功能,主要是对student表实现增加一条学生信息、删除一条学生信息记录、更新学生信息表,以及查询学生信息表的数据三、数据库结构1.
3、数据库名称:SchoolDB2.数据表:student表具体字段信息如下表:字段名类型长度小数点不是nullsname(主键)varchar200snamevarchar200sdeptvarchar200sgradevarchar200saddressvarchar200sname, sname, sdept, sgrade、saddress分别保存学生的姓名、专业、学院、成绩、家庭住址等学生基本信息,其中sname为主键且不为空。四、关键功能界面截图1.登陆界面用户输入数据库中存在的用户名和密码后,便可登陆成功,否则提示密码错误1正确的用户名,错误的密码正确的用户名正确的密码后进入学生信息
4、管理系统:2.添加功能:输入界面中的所有数据之后,点击添加,即可向数据库中加入一条学生记录3.删除功能:输入姓名,即可把数据库中对应姓名的一条学生信息删除4.更新功能:输入要修改学生的信息,即可修改该学生在数据库中的记录5.查找功能:点击查找可以查询数据库中的所有学生信息,每页9条记录,其余的学生信息的点击下一页,可以查看,还可以点击上一页,来切换数据点击下一页:五、关键代码分析DBConnetion用于连接数据库:package edu;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLEx
5、ception;public class DBConnection public static Connection getConnection() Connection conn = null; String driver = sun.jdbc.odbc.JdbcOdbcDriver; String url = jdbc:odbc:schoolData; String username = sa; String password = 123456; try Class.forName(driver); conn = DriverManager.getConnection(url,userna
6、me,password); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace(); return conn; 登陆的窗体类LoginFrame、JFrame:package edu;import java.awt.Container;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.Act
7、ionListener;import java.sql.Connection;import java.sql.SQLException;import javax.swing.JButton;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.SwingUtilities;public class Jswing impl
8、ements ActionListener private LoginFrame frame; private JLabel lname; private JLabel lpassword; private JTextField tname; private JPasswordField tpassword; private JButton byes; private JButton bno; private JPanel p1; private JPanel p2; private JPanel p3; private String userName,password; /* * 初始化窗口
9、数据 */ 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(密 码: ); tname=new JTextField(8); tpassword=new JPasswordField(8); byes=new JButton(确定); bno=new JBu
10、tton(取消); 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.add(p3); frame.setVisible(true); byes.addActionListener(this); bno.addActionListener(this); userName=null; password=null
11、; Override public void actionPerformed(ActionEvent e) if(e.getSource()=bno) System.exit(1); else if(e.getSource()=byes) userName=tname.getText().trim(); password=new String(tpassword.getPassword(); boolean result=false; result=SchoolOperate.login(userName, password); if(result) frame.setVisible(fals
12、e); SwingUtilities.invokeLater(new Runnable() public void run() SchoolInfoGui application = new SchoolInfoGui(); application.getJFrame().setVisible(true); ); else String error=null; if(result=false) error=用户名或密码错误,请重试!; JOptionPane.showMessageDialog(null, error); public static void main(String args)
13、 new Jswing().initData(); package edu;import java.awt.HeadlessException;import javax.swing.JFrame;public class LoginFrame extends JFrame public LoginFrame(String title) throws HeadlessException super(); setTitle(title); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(540,200, 280, 200); 学生
14、信息管理系统主界面的SchoolInfoGui:package edu;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.List;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import
15、 javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.SwingUtilities;public class SchoolInfoGui implements ActionListener private JFrame jFrame; private JPanel jContentPane; private JLabel lblName = null; private JTextField tfNa
16、me = null; private JLabel lblRegion = null; private JComboBox cbRegion = 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 = nul
17、l; private JButton btnDel = null; private JButton btnModify = null; private JButton 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) tfNa
18、me = new JTextField(); tfName.setBounds(new Rectangle(89, 17, 173, 27); return tfName; private JComboBox getCbRegion() if (cbRegion = null) String str = 请选择, 计算机科学与技术, 信息安全, 网络工程, 信息与计算科学, 物流工程, 软件工程; cbRegion = new JComboBox(str); cbRegion.setBounds(new Rectangle(360, 17, 229, 28); return cbRegion;
19、 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 JTextFie
20、ld getTfGDP() 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(添加); return
21、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(下一页); btnDownPage.addActionListene
22、r(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 JButton getBtnModify() if (btnModi
23、fy = 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(new Rectangle(484, 152, 71, 30); btnQ
24、uery.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.setContentPane(getJContentPane(); jFrame.setTitle(学生信息管理
25、系统); 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, 63, 27); lblPopu.setText(成绩); lblArea = new JLabel(); lblArea.s
26、etBounds(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(new Rectangle(15, 17, 63, 27); lblName.setText(姓名); jContentPane = new JPanel(); jContentPane.se
27、tLayout(null); jContentPane.add(lblName, null); jContentPane.add(getTfName(), null); jContentPane.add(lblRegion, null); jContentPane.add(getCbRegion(), null); jContentPane.add(lblArea, null); jContentPane.add(getTfArea(), null); jContentPane.add(lblPopu, null); jContentPane.add(getTfPopu(), null); j
28、ContentPane.add(lblGdp, null); jContentPane.add(getTfGDP(), null); jContentPane.add(getBtnAdd(), null); jContentPane.add(getBtnDel(), null); jContentPane.add(getBtnModify(), null); jContentPane.add(getBtnQuery(), null); jContentPane.add(getBtnUpPage(), null); jContentPane.add(getBtnDownPage(), null)
29、; return jContentPane; public void actionPerformed(ActionEvent e) if (e.getActionCommand().equals(查找) selectAll(); else if (e.getActionCommand().equals(下一页) selectDownPage(); else if (e.getActionCommand().equals(上一页) selectUpPage(); else if (e.getActionCommand().equals(添加) if (tfName.getText().equals() | cbRegio