Java 程序设计实验大纲.doc

上传人:创****公 文档编号:3029472 上传时间:2019-05-17 格式:DOC 页数:10 大小:160.50KB
下载 相关 举报
Java 程序设计实验大纲.doc_第1页
第1页 / 共10页
Java 程序设计实验大纲.doc_第2页
第2页 / 共10页
Java 程序设计实验大纲.doc_第3页
第3页 / 共10页
Java 程序设计实验大纲.doc_第4页
第4页 / 共10页
Java 程序设计实验大纲.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、 1 Java 程序设计 实验 4 主 讲 教师 姬广永 济南大学泉城学院 1 实验 四 数据库编程实验 【实验目的】 1、 掌握数据库编程技术,能够 通过 JDBC 方式 连接数据库 。 2、 能对数据库中信息进行查询、 插 入 、 删除 、修改。 【实验 学时 】 实验学时 : 4 学时 【 实验要求 】 实验课期间不得从事与本实验无关的活动; 可 独立或合作完成实验内容 ,按时完成实验作业 ; 将 实验作业 提交到 ftp:/192.168.3.127。 【实 验内容】 1. 建立学生数据库: stu.mdb (数据库可以用 Access、 SQL Server 2000), 以及学生信

2、息 表: stu_info。 2、 编写程序完成学生信息的添加,以及删除功能。 【 实验步骤及注意事项 】 1. 创建 数据库 以及学生信息 表 ,表 中字段如下图所示: 2 字段 Snum 为主键。 添加测试数据。 2. 编写程 序 ,能够向数据库添加学生信息,添加成功后应弹出添加成功提示 窗口 。 运行后如下图所示: 3. 完成学生信息的删除功能。 删除成功后弹出删除成功提示窗口。 运行后如下图所示: 3 【 参考 代码 】 /添加 学生信息 .java import java.awt.Container; import java.awt.event.ActionEvent; import

3、 java.awt.event.ActionListener; import javax.swing.*; public class 添加学生信息 /implements: 加入接口 ( 加入动作事件处理接口 ) JFrame frame; /数据声明 : 声明框架名称 frame JLabel num,name,sex,mz,birth,year,add,pro,college,remark;/声明 : 标签 JTextField tnum,tname,tsex,tmz,tbirth,tyear,tadd,tpro,tcollege;/声明 : 文本框 JTextArea aremark;

4、/声明 : 文本区 JButton ok,cancel; /声明 : 按钮 void view() /定义 : 程序功能方法 /创建并设置框架 ; /创建框架 并设置标题为: =添加学生信息 = frame.setLayout(null); ; /设 置显 示位 置: 框 架坐 标 x,y 及宽 度和 高 度 分 别为300,200,500,450。 Container panel=frame.getContentPane(); /创建“学号”标签及文本框: num=new JLabel(“学号 “); /创建标签: num,加入文字:学号 tnum=new JTextField(20); /

5、建文本框 num.setBounds(30, 10, 30, 25); / 标签 num“学号”在容器中左上角坐标 (x,y),宽 W,高 H tnum.setBounds(70, 10,100, 25); /设置文本框 tnum 显示位置:在容器中左上角坐标 x, y,宽度,高度 /创建“姓名”标签及文本框: name=new JLabel(“姓名 “); /(同上) tname=new JTextField(20); name.setBounds(200, 10, 30, 25); tname.setBounds(240, 10, 100, 25); /创建“性别”标签及文本框: sex=

6、new JLabel(“性别 “); tsex=new JTextField(5); sex.setBounds(360, 10, 30, 25); tsex.setBounds(400, 10, 60, 25); 4 /创建“民族”标签及文本框: mz=new JLabel(“民族 “); tmz=new JTextField(5); mz.setBounds(360, 50, 30, 25); tmz.setBounds(400, 50, 60, 25); /创建“出生日期”标签及文本框: birth=new JLabel(“出生日期 “); tbirth=new JTextField(2

7、0); birth.setBounds(10, 50, 60, 25); tbirth.setBounds(70, 50,100, 25); /创建“入学年份”标签及文本框: year=new JLabel(“入学年份 “); tyear=new JTextField(10); year.setBounds(180, 50, 60, 25); tyear.setBounds(240, 50,100, 25); /创建“专业”标签及文本框: pro=new JLabel(“专业 “); tpro=new JTextField(20); pro.setBounds(200, 90, 30, 25)

8、; tpro.setBounds(240, 90, 100, 25); /创建“学院”标签及文本框: college=new JLabel(“学院 “); tcollege=new JTextField(20); college.setBounds(30, 90, 30, 25); tcollege.setBounds(70, 90, 100, 25); /创建“籍贯”标签及文本框: add=new JLabel(“籍贯 “); tadd=new JTextField(50); add.setBounds(30, 130, 30, 25); tadd.setBounds(70, 130, 27

9、0, 25); /创建“备注”标签及文本框: remark=new JLabel(“备注 “); aremark=new JTextArea(); remark.setBounds(30, 170, 30, 25); aremark.setBounds(70, 170, 390, 150); /创建按钮:“添加”: ok=new JButton(“添加 “); /创建按钮 ok 5 ok.setBounds(100, 350, 60, 25); /设置按钮 ok 显示位置 ; /注册监听 器 /创建按钮:“取消”: cancel=new JButton(“取消 “); /创建按钮 cancal

10、 cancel.setBounds(290, 350, 60, 25); ; /注册监听 器 /组件加入面板 panel.add(num);panel.add(tnum); panel.add(name);panel.add(tname); panel.add(sex);panel.add(tsex); panel.add(mz);panel.add(tmz); panel.add(birth);panel.add(tbirth); panel.add(year);panel.add(tyear); panel.add(add);panel.add(tadd); panel.add(pro);

11、panel.add(tpro); panel.add(college);panel.add(tcollege); panel.add(remark);panel.add(aremark); panel.add(ok);panel.add(cancel); ; /显示框架 /( 4)主程序 public static void main(String args) /主程序 添加学生信息 stuInfo=new 添加学生信息 (); /创建本程序对象 ; /运行 stuInfo 对象的 view()方法 /( 5)动作响应处理程序 public void actionPerformed(Actio

12、nEvent e) /监听动作 if( ) /监听到单 击:按钮 ok /( 6)获取各文本框中键入的数据并赋值给相应的变量 String num,name,sex,birth,year,minzu,col,pro,jiguan,remark; /声明 10 个字符串变量(准备存入数据库的数据) num= ; /获取文本框 tnum 中键入的字符串并赋值给变量 num name=tname.getText(); sex=tsex.getText(); birth=tbirth.getText(); year=tyear.getText(); minzu=tmz.getText(); col=t

13、college.getText(); 6 pro=tpro.getText(); jiguan=tadd.getText(); remark=aremark.getText(); DB_StuInfo dbStuInfo=new DB_StuInfo();/运行 DB_StuInfo.java ; /携带 10 个实参值,运行 DB_StuInfo 类 的 insert_info ()方法 /从子程序“ DB_StuInfo.java”中返回后,清空各文本框,为下次键入作准备 : /显示对话框 tnum.setText(null); /清空文本框 tnum tname.setText(null

14、);/(同上) tsex.setText(null); tbirth.setText(null); tyear.setText(null); tmz.setText(null); tcollege.setText(null); tpro.setText(null); tadd.setText(null); aremark.setText(null); /( 10)单击了按钮 cancel 组件:退出程序 if( )/监听到单击:按钮 “取消 “ ; /框架 frame 释放所占内存 /if 语句体结束 / actionPerformed(ActionEvent e)方法体结束 /“添加学生信息

15、”类体结束 /添加学生 信息到数据库 DB_StuInfo.java import java.sql.*; import javax.swing.JOptionPane; public class DB_StuInfo /公共类 Connection con; /声明:连接字符串变量 con PreparedStatement stmt; /声明预编译 SQL对象 stmt ResultSet rs; /记录集存取对象 rs void insert_info(String str,String str1,String str2,String str3,String str4,String st

16、r5,String str6,String str7,String str8,String str9)/方法 try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“);/加载数据库驱动 /若系统环境属性中已经包含了该驱动的路径,则无需此语句。 catch (ClassNotFoundException e) /处理异常 e.printStackTrace(); 7 String URL=“jdbc:odbc:driver=Microsoft Access Driver (*.mdb); DBQ= “;/数据库连接字符串:给定数据库名、类型 try co

17、n=DriverManager.getConnection(URL); /连接数据库 stmt= .prepareStatement(“insert into (Snum,Sname,Ssex,Sminzu,Sjiguan,Syear,Smajor,Scollege,Sbirth,Sremark) values(?,?,?,?,?,?,?,?,?,?)“); /SGL语句 10个虚数据?存入数据库 10个字段 stmt.setString(1, ); /str是第 1个?代表的数据 stmt.setString(2, str1); /。 stmt.setString(3, str2); stm

18、t.setString(4, str3); stmt.setString(5, str4); stmt.setString(6, str5); stmt.setString(7, str6); stmt.setString(8, str7); stmt.setString(9, str8); stmt.setString(10, str9); catch (Exception e) System.out.println(e); try stmt.executeUpdate(); stmt.close(); ;/关闭数据库、连接 ;/弹出添加成功对话框 catch (Exception e) J

19、OptionPane.showMessageDialog(null,“添加失败,学号为空或重复! “); 学生信息的删除功能参考代码: import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class 删除学生信息 implements JFrame frame; /数据声明 : 声明框架名称 frame JLabel num;/声明 : 标签 JTextField tnum;/声明 : 文本框 JButto

20、n del; /声明 : 按钮 8 void view() /定义 : 程序功能方法 /( 2.1) 创建并设置框架 ; /创建 : 框架并设置标题为: =删除学生信息 = frame.setLayout(null); ; /设置显示位置 : 框架左上角坐标 x,y及宽度 W和高度 H分别为 300,200,450,350 Container panel=frame.getContentPane(); /创建 “ 学号 ” 标签及文本框 : num=new JLabel(“请输入要删除学生的学号: “); /创建标签: num ; /建文本框 num.setBounds(30, 20, 160

21、, 25);/ 标签 num“学号”在容器中左上角坐标 (x,y),宽 W,高 H tnum.setBounds(200, 20,120, 25); /设置文本框 tnum显示位置:在容器中左上角坐标 x, y,宽度,高度 del=new JButton(“删除 “); /创建按钮 del del.setBounds(340, 20, 60, 25); /设置按钮 del显示位置:在容器中左上角坐标x, y,宽度,高度设置位置、大小 ; /del按钮上注册监听器 ;将 num标签添加到面板 panel panel.add(tnum); panel.add(del); ; /显示框架 publi

22、c static void main(String args) 删除学生信息 delInfo=new 删除学生信息 ();/创建本程序对象 delInfo.view(); public void actionPerformed(ActionEvent e) if( ) /监听到单击:按钮 “删除 “ /若单击删除按钮,则: String i= ; /获取文本框 tnum中 输入 的学号 DEL_StuInfo delStu=new DEL_StuInfo(); ; /*调用 “ DEL_StuInfo.java“的 delete方法删 除学号为 i的学生记录 */ 9 /DEL_StuInfo

23、.java import java.sql.*; import javax.swing.JOptionPane; public class DEL_StuInfo Connection con; Statement stmt; PreparedStatement pstmt; /预编译 sql语句接口 ResultSet rs; /*删除学生信息 */ void delete(String snum) try ; /加载数据库驱动 catch (ClassNotFoundException e) e.printStackTrace(); String URL=“jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ= “; try ; /连接数据库 String sql=“ “;/sql语句:删除学号为 snum的学生记录 pstmt=con.prepareStatement(sql); ;/执行删除操作 pstmt.close(); con.close(); ;/显示对话框 ,提示删除成功 catch (Exception e) ;/显示对话框 ,提示删除失败 【 实验思考题与总结 】 总结实验中遇到的问题及解决方法。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。