实验八基于图形用户界面的JDBC程序开发.docx

上传人:b****6 文档编号:5810858 上传时间:2023-01-01 格式:DOCX 页数:14 大小:46.91KB
下载 相关 举报
实验八基于图形用户界面的JDBC程序开发.docx_第1页
第1页 / 共14页
实验八基于图形用户界面的JDBC程序开发.docx_第2页
第2页 / 共14页
实验八基于图形用户界面的JDBC程序开发.docx_第3页
第3页 / 共14页
实验八基于图形用户界面的JDBC程序开发.docx_第4页
第4页 / 共14页
实验八基于图形用户界面的JDBC程序开发.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

实验八基于图形用户界面的JDBC程序开发.docx

《实验八基于图形用户界面的JDBC程序开发.docx》由会员分享,可在线阅读,更多相关《实验八基于图形用户界面的JDBC程序开发.docx(14页珍藏版)》请在冰豆网上搜索。

实验八基于图形用户界面的JDBC程序开发.docx

实验八基于图形用户界面的JDBC程序开发

实验4基于图形用户界面的JDBC程序开发

(2)

淮海工学院计算机科学系

实验报告书

课程名:

__Java___________

题目:

_基于图形用户界面的JDBC程序开发

班级:

_____________

学号:

____________

姓名:

_____________

 

一、实验目的

熟练运用GUI标准组件和布局管理器,正确合理地利用常用AWT和Swing组件进行图形界面的设计;理解Java的事件处理机制,正确运用Java的事件处理机制及事件委托模型编写图形界面组件的事件处理程序;理解Java多线程机制,掌握线程使用方法。

理解JDBC的数据库访问编程原理,正确利用JDBC技术编写以数据库应用为核心的软件系统,并在设计中灵活运用之前所学的Java语言面向对象的编程技术。

二、实验环境

操作系统:

windows2000或WindowXP

集成开发环境:

JDK1.6及以上版本

三、实验学时

2学时,必做实验。

四、实验内容

(1)进一步熟悉JavaGUI标准组件和布局管理器、正确合理地利用常用AWT和Swing组件进行图形界面的设计;理解Java的事件处理机制,正确运用Java的事件处理机制及事件委托模型编写图形界面组件的事件处理程序;实践程序调试方法、纠错能力及编程规范性等;理解JDBC的数据库访问编程原理,正确利用JDBC技术编写以各种数据库应用;

(2)按以下各题目具体要求调试或编写相关算法程序

五、实验步骤与结果

1请按照以下功能要求编写并调试相关程序

(1)请定义一个抽象的“科学图书”类,其中包含1个公共的抽象方法:

图书介绍;1个属性为:

图书类别(字符串类型);

(2)定义一个“计算机图书”子类(继承于“科学图书”类),其中包括2个域:

出版社、定价;2个构造方法:

一个为无参构造方法,在该无参构造方法中将“图书类别”设置为“计算机图书”,一个带2个参数(出版社、定价);不少于2个成员方法:

分别用来查看出版社、修改定价,图书介绍文字可自编,并编写输出计算机图书全部信息的toString()方法。

(3)编写一个图形用户界面,用来测试能否正确创建计算机图书类的对象、能否正常调用其方法,参考界面如下。

必须实现的基本功能是:

1)单击图中的“新增计算机图书”按钮,则可显示出新增的计算机图书信息(显示信息的控件不限,用文本域、列表框、表格均可),要求添加的计算机图书不少于2本,如下图所示:

图1运行截图——新增计算机图书

2)单击图中的“修改定价”按钮,可修改其中某本图书的定价,并在下方显示出修改后的结果

请按照实验内容具体要求完成相关设计与编程,实验步骤;

(1)程序代码

importjava.awt.*;

importjava.awt.event.*;

classCMextendsFrameimplementsActionListener

{

CMBookstart;//当做链表的开头

Panel操作栏;

Label出版社,定价,显示;

TextField出版社栏,定价栏;

Button新增计算机图书,修改定价;

TextArea显示内容;

CM()

{

super("计算机图书类操作图形用户界面");

start=null;

显示=newLabel();

显示内容=newTextArea();

显示内容.setSize(80,50);

新增计算机图书=newButton("新增计算机图书");

修改定价=newButton("修改定价");

新增计算机图书.addActionListener(this);

修改定价.addActionListener(this);

操作栏=newPanel();

操作栏.setSize(60,5);

出版社=newLabel("出版社");

定价=newLabel("定价");

出版社栏=newTextField(10);

定价栏=newTextField(5);

操作栏.add(出版社);操作栏.add(出版社栏);

操作栏.add(定价);操作栏.add(定价栏);

操作栏.add(新增计算机图书);操作栏.add(修改定价);

setTitle("计算机图书类操作的图形界面");

add(操作栏,BorderLayout.NORTH);

add(显示内容,BorderLayout.CENTER);

add(显示,BorderLayout.SOUTH);

setBounds(300,300,500,500);

setVisible(true);

validate();

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==新增计算机图书)

{

Stringone=出版社栏.getText();

Stringtwo=定价栏.getText();

if(Integer.parseInt(two)<0)

{

显示.setText("价格不能为负数");

}

else

{

CMBookmid=newCMBook(one,Integer.parseInt(two));

mid.next=start;

start=mid;

显示内容.append(mid.toString());

}

}

elseif(e.getSource()==修改定价)

{

intpricenew;

CMBookpoint;

Stringone,two,three;

one=出版社栏.getText();

two=定价栏.getText();

point=start;

while(true)

{

if(point==null)

{

显示.setText("查找不到该类别");

break;

}

if(point.出版社.equals(one))

{

point.定价=Integer.parseInt(two);

显示内容.append("价格修改完成"+point.toString());

break;

}

else

{

point=point.next;

}

}

}

}

}

abstractclassBook

{

String图书类别;

abstractString图书介绍();

}

classCMBookextendsBook

{

CMBooknext;//额外增加一个引用

String出版社;

int定价;

String图书介绍()

{

return"书籍是人类进步的阶梯";

}

CMBook()

{

图书类别="计算机图书";

next=null;

}

CMBook(String出版社,int定价)

{

this.出版社=出版社;

this.定价=定价;

图书类别="计算机图书";

next=null;

}

String查看出版社()

{

return出版社;

}

void修改定价(int定价)

{

this.定价=定价;

}

publicStringtoString()

{

return("类别"+图书类别+"|出版社"+出版社+"|定价"+定价+"图书介绍|书籍是人类进步的阶梯\n");

}

}

publicclassBookcdx

{

publicstaticvoidmain(Stringargs[])

{

newCM();

}

}

(2)相应运行结果

2、(选做题)改正以下程序中出现的错误,并进行注释说明

importjava.applet.applet;

importjava.awt.*;

publicclasstestextendsApplet

{

Labelprompt1,prompt2;

TextFieldinputNo1,inputName1

DepartmentMyDept1;

voidinit()

{prompt1=newLabel("请输入部门的编号:

");

inputNo1=newTextField(5);

prompt2=newLabel("请输入部门的名称:

");

inputName1=newTextField(5);

add(prompt1);

add(inputNo1);

add(prompt2);

add(inputName1);

MyDept1=newDepartment();

inputNo1.addAction(this);

}

publicpaint(graphicg)

{

g.drawstring(MyDept1.toString(),20,100);

}

publicvoidaction(ActionEvente)

{

if(e.getSource==inputNo1)

MyDept1.setDeptNo(inputNo1.getText());

elseif(e.getSource()=inputName1)

MyDept1.m_DeptName=newString(inputName1.getText());

repaint();

returnTrue;

}

}

finalclassDepartment

{

intm_DeptNo=10;

staticm_DeptName;

StringgetDeptNo()

{

returnm_DeptNo;

}

setDeptNo(intnewno)

{

if(newno>0)

{

m_DeptNo=newno;

returntrue;

}

else

returnfalse;

}

publicStringtoString()

{

return("部门编号:

"+getDeptNo()+";"

+"部门名称:

"+m_DeptName+";");

}

}

改正:

importjava.applet.*;//引入包

importjava.awt.*;//引入包

importjava.awt.event.*;//分号

publicclassTestextendsAppletimplementsActionListener//extend错误

{

Labelprompt1,prompt2;

TextFieldinputNo1,inputName1;//分号

DepartmentMyDept1;

publicvoidinit()//少public

{prompt1=newLabel("请输入部门的编号:

");

inputNo1=newTextField(5);

prompt2=newLabel("请输入部门的名称:

");

inputName1=newTextField(5);

add(prompt1);

add(inputNo1);

add(prompt2);

add(inputName1);//添加inputName1

MyDept1=newDepartment();

inputNo1.addActionListener(this);//添加this

inputName1.addActionListener(this);

this.setVisible(true);//显示输出

}

publicvoidpaint(Graphicsg)//单词错误Graphics

{

g.drawString(MyDept1.toString(),20,100);//drawString

}

publicvoidactionPerformed(ActionEvente)//action拼写错误

{

if(e.getSource()==inputNo1)

MyDept1.setDeptNo(Integer.parseInt(inputNo1.getText()));//类型转换成字符

elseif(e.getSource()==inputName1)//判断是相等用==

MyDept1.m_DeptName=newString(inputName1.getText());

//repaint();

//returnTrue;//返回为空不需要

}

}

classDepartment//final不需要

{

intm_DeptNo=10;//分号

Stringm_DeptName;//类型没有给出

StringgetDeptNo()//S

{

returnInteger.toString(m_DeptNo);//类型

}

booleansetDeptNo(intnewno)//返回类型没有给出

{

if(newno>0)

{

m_DeptNo=newno;

returntrue;

}

else

returnfalse;

}

publicStringtoString()//S

{

return("部门编号:

"+getDeptNo()+";"

+"部门名称:

"+m_DeptName+";");

}

}

3、(选做题)请按照以下功能要求编写并调试相关程序

实验内容:

(1)熟练Tomcat安装与配置;

(2)熟练servlet部署、三种开发方式;(3)练习JDBC连接;(4)练习基于JDBC与Servlet的数据库查询、更新(添加、删除、修改)

(一)实验步骤:

熟悉Tomcat安装,servlet部署步骤;

(1)依次创建WEB-INF、classes、lib、web.xml等目录结构

(2)完成相关Servlet程序并调试

(二)以继承HttpServlet方式开发Servlet,完成基于Servlet的JDBC连接(数据库选择SQLServer2000以上)和数据查询应用。

(1)选择SQLServer2000数据库,建立Test数据库和相关users表(字段userid,username,userpass),用户名111,密码111;

(2)以继承HttpServlet方式开发Servlet,完成以下数据库查询显示代码并调试相关结果。

packagejs.hit;

importjavax.servlet.http.*;

importjava.sql.*;

importjava.io.*;

publicclassDataSelextendsHttpServlet{

publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres){

try{

res.setContentType("text/html;charset=gbk");

PrintWriterout=res.getWriter();

Stringurl="jdbc:

microsoft:

sqlserver:

//127.0.0.1:

1433;DatabaseName=test";

Stringuser="111";

Stringpassword="111";

Stringsqlsel="selectuserid,username,userpassfromusers";

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

Connectioncn=DriverManager.getConnection(url,user,password);

Statementsm=cn.createStatement();

ResultSetrs=sm.executeQuery(sqlsel);

while(rs.next())

{

out.println(rs.getString

(1)+"");

out.println(rs.getString

(2)+"");

out.println(rs.getString(3)+"");

out.println("
");

}

rs.close();

sm.close();

cn.close();

}

catch(Exceptionex){

}

}

publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres){

this.doGet(req,res);

}

}

(三)在上例数据库基础上,继续以继承HttpServlet方式开发另一个Servlet,完成基于Servlet的数据更新应用,参考代码如下。

packagejs.hit;

importjavax.servlet.http.*;

importjava.io.*;

importjava.sql.*;

publicclassDataUpdextendsHttpServlet{

publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres){

try{

res.setContentType("text/html;charset=gbk");

PrintWriterout=res.getWriter();

Stringurl="jdbc:

microsoft:

sqlserver:

//127.0.0.1:

1433;DatabaseName=test";

Stringuser="111";

Stringpassword="111";

Stringsqlupd="updateuserssetuserpass='8'whereuserid=3";

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

Connectioncn=DriverManager.getConnection(url,user,password);

Statementsm=cn.createStatement();

sm.executeUpdate(sqlupd);

sm.close();

cn.close();

}

catch(Exceptionex){

}

}

publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres){

this.doGet(req,res);

}

}

六、实验分析与体会

(1)请简述使用JDBC技术编写数据库应用关键步骤

1、装库,建库;

2、找到相应的数据库连接包,sql、oracle都有对应的jar包;

2、写一个类,结合对应的jar包来连接数据库;

3、再写一个类,通过第二步的类用来对数据库操作。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1