版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 工程数据库设计与应用 实验报告 实验五 数据库应用的基本操作之一学号: 1030412612 班级:计算机1206 姓名:王成义成绩 指导教师:戴月明一、实验目的通过实验熟练掌握调用数据库的方法,掌握如何通过链接字调用数据库的方法。二、实验内容1、创建一个新的数据库链接字。2、建立一个新的窗体,在窗体上使用控件来对数据库进行相应操作。三、实验完成情况1、数据库连接测试:源码:/*Test.java*/import java.sql.*;public class Test public static void main(String srg) String driverName = "
2、;com.microsoft.sqlserver.jdbc.SQLServerDriver" / 加载JDBC驱动String dbURL = "jdbc:sqlserver:/localhost:1433; DatabaseName=Student" / 连接服务器和数据库testString userName = "sa" / 默认用户名String userPwd = "root" / 用户密码Connection dbConn;try Class.forName(driverName);dbConn = Driver
3、Manager.getConnection(dbURL, userName, userPwd);System.out.println("Connection Successful!"); / 如果连接成功/ 控制台输出Connection/ Successful! catch (Exception e) e.printStackTrace();结果截图:(图1)2、 工程目录:(图2)3、 数据库连接类:/*DBConnection.java*/package edu;import java.sql.*;public class DBConnection public st
4、atic Connection getConnection() Connection conn = null;String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver" / 加载JDBC驱动String url = "jdbc:sqlserver:/localhost:1433; DatabaseName=Student" / 连接服务器和数据库testString username = "sa"String password = "root"try
5、 Class.forName(driver);conn = DriverManager.getConnection(url, username, password); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return conn;4、 生成学生表对应的get,set方法:/*Student.java*/package edu;public class Student private String Sid;private String Sna
6、me;private String Ssex;private String Sclass;private String Stel;public String getSid() return Sid;public void setSid(String sid) Sid = sid;public String getSname() return Sname;public void setSname(String sname) Sname = sname;public String getSsex() return Ssex;public void setSsex(String ssex) Ssex
7、 = ssex;public String getSclass() return Sclass;public void setSclass(String sclass) Sclass = sclass;public String getStel() return Stel;public void setStel(String stel) Stel = stel;5、 实现方法,学生信息系统管理界面:/*StudentInfo.java*/package edu;import java.awt.Rectangle;import java.awt.event.ActionEvent;import
8、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 javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextFi
9、eld;import javax.swing.SwingUtilities;public class StudentInfo implements ActionListener private JFrame jFrame;private JPanel jContentPane;private JLabel lblName = null;private JTextField tfName = null;private JLabel lblRegion = null;private JTextField cbRegion = null;private JLabel lblArea = null;p
10、rivate 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 JButton btnQuery = null;private JButton btn
11、UpPage = 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;private JTextField getCbRegion() if (cbRe
12、gion = null) cbRegion = new JTextField();cbRegion.setBounds(new Rectangle(360, 17, 229, 28);return cbRegion;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) tfPo
13、pu = new JTextField();tfPopu.setBounds(new Rectangle(360, 61, 229, 28);return tfPopu;private JTextField 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.setB
14、ounds(new Rectangle(46, 152, 71, 30);btnAdd.addActionListener(this);btnAdd.setText("添加");return btnAdd;private JButton getBtnUpPage() if (btnUpPage = null) btnUpPage = new JButton("上一页");btnUpPage.addActionListener(this);btnUpPage.setBounds(200, 390, 80, 30);return btnUpPage;priv
15、ate JButton getBtnDownPage() if (btnDownPage = null) btnDownPage = new JButton("下一页");btnDownPage.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
16、, 71, 30);btnDel.addActionListener(this);btnDel.setText("删除");return btnDel;private JButton getBtnModify() if (btnModify = null) btnModify = new JButton();btnModify.setBounds(new Rectangle(342, 152, 71, 30);btnModify.addActionListener(this);btnModify.setText("更新");return btnModif
17、y;private JButton getBtnQuery() if (btnQuery = null) btnQuery = new JButton();btnQuery.setBounds(new Rectangle(484, 152, 71, 30);btnQuery.addActionListener(this);btnQuery.setText("查找");return btnQuery;public static void main(String args) SwingUtilities.invokeLater(new Runnable() public voi
18、d run() StudentInfo application = new StudentInfo();application.getJFrame().setVisible(true););private JFrame getJFrame() if (jFrame = null) jFrame = new JFrame();jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jFrame.setBounds(new Rectangle(450, 250, 610, 454);jFrame.setContentPane(getJConten
19、tPane();jFrame.setTitle("学生信息管理-王成义-1030412612-计算机1206");return jFrame;private JPanel getJContentPane() if (jContentPane = null) lblGdp = new JLabel();lblGdp.setBounds(new Rectangle(15, 106, 63, 27);lblGdp.setText("电话");/5lblPopu = new JLabel();lblPopu.setBounds(new Rectangle(285
20、, 61, 63, 27);lblPopu.setText("班级");/4lblArea = new JLabel();lblArea.setBounds(new Rectangle(15, 61, 63, 27);lblArea.setText("性别");/3lblRegion = new JLabel();lblRegion.setBounds(new Rectangle(285, 17, 63, 27);lblRegion.setText("姓名");/2lblName = new JLabel();lblName.setB
21、ounds(new Rectangle(15, 17, 63, 27);lblName.setText("学号");/1jContentPane = 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);j
22、ContentPane.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);jContentPane.add(get
23、BtnQuery(), null);jContentPane.add(getBtnUpPage(), null);jContentPane.add(getBtnDownPage(), null);return jContentPane;public void actionPerformed(ActionEvent e) if (e.getActionCommand().equals("查找") selectAll(); else if (e.getActionCommand().equals("下一页") selectDownPage(); else i
24、f (e.getActionCommand().equals("上一页") selectUpPage(); else if (e.getActionCommand().equals("添加") if (tfName.getText().equals("")| cbRegion.getText().equals("")| tfArea.getText().equals("")| tfPopu.getText().equals("")| tfGDP.getText().equal
25、s("") JOptionPane.showMessageDialog(jFrame, "请填写相关信息"); else Student stu = new Student();stu.setSid(tfName.getText();stu.setSname(cbRegion.getText();stu.setSsex(tfArea.getText();stu.setSclass(tfPopu.getText();stu.setStel(tfGDP.getText();boolean flag = StudentOperate.add(stu);if (
26、flag) JOptionPane.showMessageDialog(jFrame, "添加成功"); else JOptionPane.showMessageDialog(jFrame, "添加失败"); else if (e.getActionCommand().equals("删除") if (!tfName.getText().equals("") String key = tfName.getText();boolean flag = StudentOperate.del(key);if (flag)
27、JOptionPane.showMessageDialog(jFrame, "删除成功"); else JOptionPane.showMessageDialog(jFrame, "删除失败"); else JOptionPane.showMessageDialog(jFrame, "请填写一个学号"); else if (e.getActionCommand().equals("更新") if (!tfName.getText().equals("")&& !cbRegion.
28、getText().equals("")&& !tfArea.getText().equals("")&& !tfPopu.getText().equals("")&& !tfGDP.getText().equals("") Student stu = new Student();stu.setSid(tfName.getText();stu.setSname(cbRegion.getText();stu.setSsex(tfArea.getText();stu.se
29、tSclass(tfPopu.getText();stu.setStel(tfGDP.getText();System.out.println(tfName.getText()+'|'+cbRegion.getText()+'|'+tfArea.getText()+'|'+tfPopu.getText()+'|'+tfGDP.getText();boolean flag = StudentOperate.modify(stu);if (flag) JOptionPane.showMessageDialog(jFrame, &quo
30、t;更新成功"); else JOptionPane.showMessageDialog(jFrame, "更新失败"); else JOptionPane.showMessageDialog(jFrame, "请填写相应的信息");public void setValues(Object obj) this.tm.setDatavalues(obj);public void selectAll() List<Student> list = StudentOperate.queryFirst();Object datavalues
31、= new Objectlist.size()5;for (int i = 0; i < list.size(); i+) Student stu = list.get(i);datavaluesi0 = stu.getSid();datavaluesi1 = stu.getSname();datavaluesi2 = stu.getSsex();datavaluesi3 = stu.getSclass();datavaluesi4 = stu.getStel();tm = new TableModel();this.setValues(datavalues);table = new J
32、Table(tm);table.updateUI();JScrollPane jsp = new JScrollPane(table);jsp.setBounds(0, 200, 600, 182);jContentPane.add(jsp);public void selectDownPage() List<Student> list = StudentOperate.downPage();if (list != null) Object datavalues = new Objectlist.size()5;for (int i = 0; i < list.size();
33、 i+) Student stu = list.get(i);datavaluesi0 = stu.getSid();datavaluesi1 = stu.getSname();datavaluesi2 = stu.getSsex();datavaluesi3 = stu.getSclass();datavaluesi4 = stu.getStel();this.setValues(datavalues);table.updateUI(); else JOptionPane.showMessageDialog(jFrame, "已经是最后一页");public void s
34、electUpPage() List<Student> list = StudentOperate.upPage();if (list != null) Object datavalues = new Objectlist.size()5;for (int i = 0; i < list.size(); i+) Student stu = list.get(i);datavaluesi0 = stu.getSid();datavaluesi1 = stu.getSname();datavaluesi2 = stu.getSsex();datavaluesi3 = stu.ge
35、tSclass();datavaluesi4 = stu.getStel();this.setValues(datavalues);table.updateUI(); else JOptionPane.showMessageDialog(jFrame, "已经是第一页");6、 事件操作方法实现:/*TableModel.java*/package edu;import javax.swing.table.AbstractTableModel;public class TableModel extends AbstractTableModel public final st
36、atic String columnHeaders = "学号", "姓名", "性别","班级", "电话" ;private Object datavalues = " ", " ", " ", " ", " " ;public int getColumnCount() return datavalues0.length;public int getRowCount() return data
37、values.length;public Object getValueAt(int rowIndex, int columnIndex) return datavaluesrowIndexcolumnIndex;public String getColumnName(int column) return columnHeaderscolumn;public void setDatavalues(Object datavalues) this.datavalues = datavalues;/*StudentOperate.java*/package edu;import java.sql.C
38、onnection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;public class StudentOperate static int i = 1;static int x = 0;public static List<Student> queryFirst() String sql = &quo
39、t;select top 5 * from S order by Sid"List<Student> list = query(sql);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;S
40、tring sql = "select top "+ 5+ " * from (select * from S where Sid not in(select top "+ x + " Sid from S order by Sid) as A "list = query(sql); else if (i >= count) list = null;return list;public static int queryCount() int count = 0;Connection conn = DBConnection.get
41、Connection();String sql = "select count(*) from S"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.printStackTrace(); finally try if (rs != null)rs.close();if (stmt != nul
42、l)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 ArrayList<Student>();Statement stmt = null;ResultSet rs = null
43、;try stmt = conn.createStatement();rs = stmt.executeQuery(sql);while (rs.next() Student stu = new Student();stu.setSid(rs.getString(1);stu.setSname(rs.getString(2);stu.setSsex(rs.getString(3);stu.setSclass(rs.getString(4);stu.setStel(rs.getString(5);list.add(stu); catch (SQLException e) e.printStack
44、Trace(); 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> list = null;if (i > 2) x = (-i) - 1) * 5;String sql = "select top
45、"+ 5+ " * from (select * from S where Sid not in(select top "+ x + " Sid from S order by Sid) as A "list = query(sql); else if (i = 2) list = queryFirst();i-; else if (i < 2) list = null;return list;public static boolean add(Student stu) Connection conn = DBConnection.getConnection();PreparedStatement pstmt = null;String sql = "insert into S values(?,?,?,?,?)"int x = 0;try pstmt = conn.prepareStatement(sql);pstmt.setString(1, stu.getSid();pstmt.setSt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026初中家务劳动第一课课件
- 风险评估与应对策略模板适用于多种行业
- 农业生产质量与安全控制方案
- 品味生活之美写物7篇
- 2026幼儿园身体隐私保护课件
- 民族地区教育均衡发展承诺书(5篇)
- 健康医疗品质提升责任书(4篇)
- 贵司服务评价反馈及改进措施的函告4篇范本
- 协调物流配送时间商洽函(9篇)
- 公司员工培训教育品质承诺书(6篇)
- 兼职保密员培训
- DL∕T 1841-2018 交流高压架空输电线路与对空情报雷达站防护距离要求
- 乙烯基酯玻璃钢防腐施工方案
- 《建筑基坑工程监测技术标准》(50497-2019)
- 乳房假体和植入物的机械性并发症护理
- 产品合格证出厂合格证A4打印模板
- 数字经济学导论-全套课件
- 蔡旭伟-食管癌术后靶区-济南20170706
- 植入式静脉输液港的并发症及护理
- 心肺复苏我国专家共识
- 井巷冒顶片帮必讲课
评论
0/150
提交评论