




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
福建信息职业技术学院软件工程系实验报告2012 2012 学年第 1 学期 任课老师: 余先锋 课程名称Java程序设计班级控制1011座号31姓名吴杏龙实验名称实验十一:数据库编程方法实验时间第 14 周星期 1 第 节实验目的进一步掌握数据库的连接方法掌握数据库的添加、更新和删除方法实验环境PC/windows2000/2003/XP/ Eclipse/ Jcreator Pro。实验内容安排必做题:【实验11-1】创建数据库db,并建立一个student数据表,表结构如图9-1a所示。同时向数据表输入若干个学生的信息数据(如图9-1b)。设计一个类Dbop,通过类的方法实现对数据库的连接以及数据表student的记录内容的显示。程序Experiment11.java应用该类完成数据库的连接和数据表的访问操作。图:实验11-1a 图:实验11-1b主要程序代码提示:a) 导入数据源访问和处理的API包:import java.sql.*;b) Access数据库连接字:jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ= + 数据库文件路径及文件名;c) 建立数据库连接:Connection conn = null;/conn和stmt为成员变量Statement stmt = null;void conn()/方法功能:完成数据库连接String dburl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ= +数据库文件名;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/加载数据库驱动程序catch(ClassNotFoundException e)System.out.println(加载数据库驱动程序错误!);try conn = DriverManager.getConnection(dburl, , );/创建数据库连接对象stmt = conn.createStatement();/创建SQL命令执行对象 catch(SQLException e)System.out.println(创建数据库连接错误!);d) 实现数据库查询:void selectAll()/方法功能:数据表查询ResultSet rs;/记录集对象String str = SELECT * FROM student;/SQL命令try rs = stmt.executeQuery(str); /执行SQL命令返回一个记录集System.out.println(学号tt姓名t性别t班级);while(rs.next() /读取每一条记录System.out.print(rs.getString(stu_id) + t); System.out.print(rs.getString(stu_name) + t);System.out.print(rs.getString(xb) + t);System.out.print(rs.getString(bj) + n);conn.close(); catch(SQLException e) System.out.println(访问数据表错误!); 要求:将数据库连接过程设计为类的方法conn(),并在构造方法当中完成数据库连接。 将数据表查询过程设计为类的一个方法selectAll();【实验11-2】在前一题所设计的类DBop中添加一个insert()方法,该方法在student数据表中添加一个学生的信息,其中学号、姓名、性别、班级、团员等作为方法的参数。程序提示:void insert(String id, String name, String xb, String bj, boolean ty)String str = INSERT INTO student(stu_id, stu_name, xb, bj, ty) VALUES(+id+,+name+,+xb+,+bj+,+ty+);/SQL命令try stmt.executeUpdate(str);/执行插入命令conn.close(); catch(SQLException e) System.out.println(插入数据记录错误!); 选做题:【实验11-3】同【实验11-2】,在类DBop中添加一个update()方法,该方法修改student数据表中某个学号同学的姓名(或性别、班级、团员等其他信息)。【实验11-4】同【实验11-2】,在类DBop中添加一个delete()方法,该方法修改将数据表中指定学号同学的记录删除。【实验11-5】修改【实验10-3】程序,将图形界面中所输入的学生信息,作为一条新的记录写入到数据表中。 程序保存为 Experiment11_5.java。程序代码提示:public void actionPerformed(ActionEvent e) String id, name, xb, bj, jj; Boolean ty;id = ; /读取学号name = ;/读取姓名;/读取其他学生信息/创建数据库连接String str = INSERT/建立SQL命令语句/执行SQL命令有关程序代码,可参照【实验11-2】程序。实验要点:完成本实验时,注意以下几个问题:1、 数据库操作基本步骤是:加载数据库驱动程序:Class.forName(驱动类名); 创建数据库连接对象:Connection conn = DriverManager.getConnection(url, uid, pwd);创建SQL命令执行对象Statement stmt = conn.createStatement();执行sql语句(Execute the SQL),分为查询和更新两种操作: 查询操作,执行SQL的SELECT命令,返回查询结果记录集对象:ResultSet rs = stmt.executeQuery(sql); 更新操作,执行DELETE、UPDATE、INSERT等SQL命令:stmt.executeUpdate(sql); 2、 对查询命令所返回的记录集对象,使用rs.next()等方法移动记录指针,并使用rs.getXXX(字段)方法读取记录字段内容。3、 数据库连接、SQL命令记录读取、记录字段的提取均需要进行异常处理。实验过程记录(学生写出实验步骤及中间的结果与现象,在实验中做了什么,怎么做,发生的现象和中间结果)实验结果分析与总结1、 程序运行结果或结果截图:实验一:实验二:2、你在实验过程中遇到的问题与解决方法:问同学老师 还有查百度3、实验过程中的发现与收获,未解决或需进一步解决的问题:作业与问题(答题内容请用蓝色字体)1、 数据库访问操作需要哪些步骤?加载连接驱动,创建连接,创建执行对象2、 如何创建数据库的连接?根据不同数据库,加载不同驱动和用不同的语句建立连接对象3、 Statement命令执行对象的作用是什么?查询与其他更新操作的命令执行方法有何区别?操作数据库数据。查询操作有返回结果集,其他更新操作没有。4、 如何创建ResultSet对象?如何从ResultSet对象中读出数据记录和字段?根据Statement对象创建ResultSet对象。根据字段名或字段位置读取数据。有乱码,还需字符串转型指导老师评阅意见指导老师: 年 月 日填写内容时,可把表格扩大。附:实验源程序代码实验一:import java.sql.*;import java.io.UnsupportedEncodingException;public class wxl01 public static void main(Stringargs)Dbop db=new Dbop();db.selectAll();class DbopConnection conn = null;/conn和stmt为成员变量Statement stmt = null; Dbop()/方法功能:完成数据库连接String dburl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=F:wxlwxl.mdb;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/加载数据库驱动程序catch(ClassNotFoundException e)System.out.println(加载数据库驱动程序错误!);try conn = DriverManager.getConnection(dburl, , );/创建数据库连接对象stmt = conn.createStatement();/创建SQL命令执行对象 catch(SQLException e)e.printStackTrace();System.out.println(创建数据库连接错误!); void selectAll()/方法功能:数据表查询 ResultSet rs;/记录集对象 String str = SELECT * FROM wxl;/SQL命令 try rs = stmt.executeQuery(str); /执行SQL命令返回一个记录集 System.out.println(学号tt姓名t性别t班级); while(rs.next() /读取每一条记录 try System.out.print(new String(rs.getBytes(stu_id),gbk) + t);System.out.print(new String(rs.getBytes(stu_name),gbk) + t);System.out.print(new String(rs.getBytes(xb),gbk) + t);System.out.print(new String(rs.getBytes(bj),gbk) + n); catch (UnsupportedEncodingException e) e.printStackTrace(); conn.close(); catch(SQLException e) System.out.println(访问数据表错误!); 实验二:import java.io.UnsupportedEncodingException;import java.sql.*;import java.util.Properties;import java.awt.BorderLayout;import java.awt.FlowLayout;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;class Frame1 extends JFrame implements ActionListenerJButton jb = new JButton(确定);JLabel jl1 = new JLabel(学号:), jl2 = new JLabel(姓名:), jl3 = new JLabel(性别:), jl4 = new JLabel(班级:), jl5 = new JLabel(简介:),jl6 = new JLabel(团员:);JTextArea text = new JTextArea(5,12);JTextField jtf1 = new JTextField(12), jtf2 = new JTextField(12);JPanel jp1 = new JPanel(), jp2 = new JPanel(), jp3 = new JPanel(),jp4 = new JPanel(), jp5 = new JPanel(), jp6 = new JPanel();JRadioButton jr1 = new JRadioButton(男), jr2 = new JRadioButton(女);ButtonGroup bg=new ButtonGroup();JCheckBox jc=new JCheckBox();JComboBox jcb=new JComboBox(new Object控制1011,控制1012);Frame1() jp1.add(jl1);jp1.add(jtf1);jp2.add(jl2);jp2.add(jtf2);jp3.add(jl3);bg.add(jr1);bg.add(jr2);jr1.setSelected(true);jp3.add(jr1);jp3.add(jr2);jp3.add(jl6);jp3.add(jc);jp4.add(jl4);jp4.add(jcb);jp5.add(jl5);jp5.add(text);text.setLineWrap(true);jp6.add(jb);jp1.setLayout(new FlowLayout(FlowLayout.LEFT);jp2.setLayout(new FlowLayout(FlowLayout.LEFT);jp3.setLayout(new FlowLayout(FlowLayout.LEFT);jp4.setLayout(new FlowLayout(FlowLayout.LEFT);jp5.setLayout(new FlowLayout(FlowLayout.LEFT);jp6.setLayout(new FlowLayout(FlowLayout.CENTER);setLayout(new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS);add(jp1);add(jp2);add(jp3);add(jp4);add(jp5);add(jp6);jb.addActionListener(this);setBounds(400, 300, 220, 300);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setVisible(true);public void actionPerformed(ActionEvent e) String id=jtf1.getText();String name=jtf2.getText();if(!id.trim().equals()&!name.trim().equals()text.replaceRange(, 0, text.getText().length();String sex;if(jr1.isSelected()sex=jr1.getText();elsesex=jr2.getText();Boolean dd;if(jc.isSelected()dd=true;else dd=false;String cls=jcb.getSelectedItem().toString();Dbop db = new Dbop();db.insert(id,name,sex,cls,true);db.selectAll();db.closeCon();text.append(学号:+id+n);text.append(姓名:+name+n);text.append(性别:+sex+n);text.append(团员:+dd+n);text.append(班级:+cls);else JOptionPane.showMessageDialog(this,学号和姓名不能为空!,警告,JOptionPane.WARNING_MESSAGE);public class wxl01public static void main(String args) new Frame1();class Dbop Connection conn = null; / conn和stmt为成员变量Statement stmt = null;Dbop() / 方法功能:完成数据库连接 String dburl = jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=F:wxlwxl.mdb;try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); / 加载数据库驱动程序 catch (ClassNotFoundException e) System.out.println(加载数据库驱动程序错误!);try conn = DriverManager.getConnection(dburl, , ); / 创建数据库连接对象stmt = conn.createStatement(); / 创建SQL命令执行对象 catch (SQLException e) e.printStackTrace();System.out.println(创建数据库连接错误!);void selectAll() / 方法功能:数据表查询ResultSet rs; / 记录集对象String str = SELECT * FROM wxl; / SQL命令try rs = stmt.executeQuery(str); / 执行SQL命令返回一个记录集System.out.println(学号tt姓名t性别t班级);while (rs.next() / 读取每一条记录try System.out.print(new String(rs.getBytes(stu_id), gbk)+ t);System.out.print(new String(rs.getBytes(stu_name), gbk)+ t);System.out.print(new String(rs.getBytes(xb), gbk)+ t);System.out.print(new String(rs.getBytes(bj), gbk)+ n); catch (UnsupportedEncodingException e) e.printStackTrace(); catch (SQLException e) System.out.pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社会热点问题解析:经济全球化影响分析课教案
- 企业税务申报自动化流程及报表工具
- 农业合作发展专项资金使用协议
- 遵循规则的交易商业伙伴合作承诺书(7篇)
- 企业宣传资料内容创作模板
- 健康食品独家销售代理协议
- 商业房地产租赁合同补充协议条款修订案
- 农业用地流转及开发合同书
- 电子病历系统操作流程说明
- 从比较中探寻发展之路:中韩纺织服装经济深度剖析与启示
- 新教材教科版五年级上册科学 第二单元 地球表面的变化 单元全套课时练
- 职业发展与就业创业指导ppt课件完整版
- 挠度计算模板表格(自动版)
- (中职中专)财经法规与会计职业道德课件完整版电子教案
- 宝钢集团生产安全事故案例汇编
- DB37T 5151-2019 园林绿化工程资料管理规程
- Q∕GDW 11612.43-2018 低压电力线高速载波通信互联互通技术规范 第4-3部分:应用层通信协议
- 贝多芬F大调浪漫曲—小提琴谱(带钢伴谱)
- 压力传感器(课堂PPT)
- 热力厂锅炉车间2#锅炉大修施工方案
- (施工方案)场地三通一平施工方案
评论
0/150
提交评论