数据库综合性实验.docx

上传人:b****4 文档编号:12051292 上传时间:2023-04-16 格式:DOCX 页数:22 大小:229.54KB
下载 相关 举报
数据库综合性实验.docx_第1页
第1页 / 共22页
数据库综合性实验.docx_第2页
第2页 / 共22页
数据库综合性实验.docx_第3页
第3页 / 共22页
数据库综合性实验.docx_第4页
第4页 / 共22页
数据库综合性实验.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

数据库综合性实验.docx

《数据库综合性实验.docx》由会员分享,可在线阅读,更多相关《数据库综合性实验.docx(22页珍藏版)》请在冰豆网上搜索。

数据库综合性实验.docx

数据库综合性实验

 

本科生综合性实验报告

 

学院:

信息工程学院

课程名称:

JSP网页设计—学生信息管理系统

专业班级:

08级计算机学与技术系软件工程

实验小组:

5北226

组长姓名:

组员:

 

2010年12月

实验报告须知

1、学生上交实验报告时,必须为打印稿(A4纸)。

页面空间不够,可以顺延。

2、学生应该填写的内容包括:

封面相关栏目、实验地点、时间、目的、设备环境、内容、结果及分析等。

3、教师应该填写的内容包括:

实验成绩、教师评价等。

4、教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。

综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。

任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。

5、未尽事宜,请参考该课程的实验指导书。

《数据库原理》课程综合性实验报告

开课实验室:

计算机基础实验中心B207机房2010年12月

实验题目

使用JSP开发动态网站连接数据库的综合实例

一、实验目的

1.熟练使用JSP进行网页设计;

2.熟练使用数据库软件Oracle,掌握数据源的连接方法;

3.实现学生档案的查询、插入、删除等功能。

二、设备与环境

硬件:

PC兼容机;

软件:

Windows操作系统、MyEclipse、Oracle9i、Dreamweaver、Tomcat

三、实验原理

JDBC连接数据库

----JDBC(JavaDataBaseConnectivity)是Java和数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程式编程接口(API),他由Java语言编写的类和接口组成,旨在让各数据库研发商为Java程式员提供标准的数据库API。

JDBCAPI定义了若干Java中的类,表示数据库连接、SQL指令、结果集、数据库元数据等。

他允许Java程式员发送SQL指令并处理结果。

通过驱动程式管理器,JDBCAPI可利用不同的驱动程式连接不同的数据库系统。

 

----JDBC和ODBC都是基于X/Open的SQL调用级接口,JDBC的设计在思想上沿袭了ODBC,同时在其主要抽象和SQLCLI实现上也沿袭了ODBC,这使得JDBC容易被接受。

JDBC的总体结构类似于ODBC,也有四个组件:

应用程式、驱动程式管理器、驱动程式和数据源。

 

----JDBC保持了ODBC的基本特性,也独立于特定数据库。

使用相同原始码的应用程式通过动态加载不同的JDBC驱动程式,能访问不同的DBMS。

连接不同的DBMS时,各个DBMS之间仅通过不同的URL进行标识。

JDBC的DatabaseMetaData接口提供了一系列方法,能检查DBMS对特定特性的支持,并相应确定有什么特性,从而能对特定数据库的特性予以支持。

和ODBC相同,JDBC也支持在应用程式中同时建立多个数据库连接,采用JDBC能非常容易地用SQL语句同时访问多个异构的数据库,为异构的数据库之间的互操作奠定基础。

 

----不过,JDBC除了具有ODBC的上述特点外,更具有对硬件平台、操作系统异构性的支持。

这主要是因为ODBC使用的是C语言,而JDBC使用的是Java语言。

Java语言具有和平台无关、移植性强、安全性高、稳定性好、分布式、面向对象等众多好处,而JDBC确保了“100%纯Java”的解决方案,利用Java的平台无关性,JDBC应用程式能自然地实现跨平台特性,因而更适合于Internet上异构环境的数据库应用。

 

----此外,JDBC驱动程式管理器是内置的,驱动程式本身也可通过Web浏览器自动下载,

无须安装、设置;而ODBC驱动程式管理器和ODBC驱动程式必须在每台客户机上分别安装、设置。

---JSP是一种基于JavaServlet的Web研发技术,他和ASP非常相似,但又有差别:

在JSP下,嵌入HTML页面的程式代码是Java代码;页面中嵌入的程式代码被编译成Servlet(这种编译操作仅在对JSP页面的第一次请求时发生)并由Java虚拟机执行。

这里Java代码能通过JDBC访问多个异构的数据库,其平台无关性特别好。

当前,Internet上的数据库应用已越来越多,JDBC和ODBC必将在Internet上的异构数据库访问中发挥重要的作用。

 

四、实验步骤

 Class.forName("oracle.jdbc.driver.OracleDriver");//加载驱动

ConnectionconDB=DriverManager.getConnection

("jdbc:

oracle:

thin:

@10.1.1.41:

1521:

DAT1","astro","123698");

//建立连接

Statementst=conDB.createStatement();//新建对象结果集

ResultSetrt=st.executeQuery("select*fromsys.STUDENT");

//返回结果集

程序开发环境MyEclipse

 

五、实验内容

1.实验背景分析

本系统利用JDBC-ODBC连接数据库的功能,实现对数据库信息的管理。

2.系统功能设计

 

查询信息模块,添加信息模块,删除信息模块;

 

3.根据系统功能作数据库表设计

数据库:

DAT1

学生信息表(student):

 

字段名

类型

长度

sname

char

10

sno

number

10

ssex

char

10

ssage

number

10

sdept

char

10

 

4.系统运行界面

 

查询信息界面:

 

添加信息界面:

 

5.代码设计

在web工程中的src目录下com包中包含两个JAVA文件

DBUtil.java

代码如下:

/**

*

*/

packagecom;

/**

*@authorwenmingrui

*

*/

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.ResultSet;

importjava.sql.SQLException;

importjava.sql.Statement;

importjava.util.ArrayList;

importjava.util.List;

publicclassDBUtil{

publicstaticConnectiongetConnection(){

ConnectionconDB=null;

try{

Class.forName("oracle.jdbc.driver.OracleDriver");

conDB=DriverManager.getConnection("jdbc:

oracle:

thin:

@localhost:

1521:

DAT1","astro","123698");

//System.out.println(conDB);

}catch(Exceptione){

System.out.println(e);

}

returnconDB;

}

publicListgetQuery()throwsException{

ConnectionconDB=getConnection();

Statementst=conDB.createStatement();

ResultSetrs=st.executeQuery("select*fromSTUDENT");

try{

Listlist=newArrayList();

while(rs.next()){

Studentstu=newStudent();

stu.setSname(rs.getString("sname"));

stu.setSno(rs.getString("sno"));

stu.setSsex(rs.getString("ssex"));

stu.setSsage(rs.getString("ssage"));

stu.setSdept(rs.getString("sdept"));

//list.add(rs.getString("sname"));

//list.add(rs.getString("sno"));

//list.add(rs.getString("ssage"));

//list.add(rs.getString("sdept"));

list.add(stu);

}

returnlist;

}catch(Exceptione){

throwe;

}finally{

if(rs!

=null)rs.close();

if(st!

=null)st.close();

if(conDB!

=null)conDB.close();

}

}

publicvoiddelete(intno)throwsException{

ConnectionconDB=getConnection();

Statementst=conDB.createStatement();

st.executeQuery("deletefromstudentwheresno='"+no+"'");

st.close();

conDB.close();

}

publicvoidinsert(Stringname,intsno,Stringsex,intage,Stringdept)

{

ConnectionconDB=getConnection();

Statementst=null;

try{

st=conDB.createStatement();

st.executeQuery("insertintostudent(sname,sno,ssex,ssage,sdept)values('"+name+"',"+sno+",'"+sex+"',"+age+",'"+dept+"')");

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

try{

st.close();

conDB.close();

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

publicstaticvoidmain(String[]args){

/****测试数据库连接**********************

testConnection();//

/****测试数据库查询**********************/

try{

Listl=newDBUtil().getQuery();

for(Studentstu:

l)

System.out.println(stu.getSname());

//DBUtildbUtil=newDBUtil();

//dbUtil.insert("温明睿",2008100838,"男",20,"软件工程");

//for(Studentstu:

l)

//System.out.println(stu.getSname());

}catch(Exceptione){

e.printStackTrace();

}

/**************************/

}

}

此代码包含所有实现的功能,添加、插入、查询等。

Student.java

代码如下:

/**

*

*/

packagecom;

/**

*@authorwenmingrui

*

*/

publicclassStudent{

privateStringsname,sno,ssex,ssage,sdept;

publicStringgetSname(){

returnsname;

}

publicvoidsetSname(Stringsname){

this.sname=sname;

}

publicStringgetSno(){

returnsno;

}

publicvoidsetSno(Stringsno){

this.sno=sno;

}

publicStringgetSsex(){

returnssex;

}

publicvoidsetSsex(Stringssex){

this.ssex=ssex;

}

publicStringgetSsage(){

returnssage;

}

publicvoidsetSsage(Stringssage){

this.ssage=ssage;

}

publicStringgetSdept(){

returnsdept;

}

publicvoidsetSdept(Stringsdept){

this.sdept=sdept;

}

}

此类的功能是临时保存学生的信息。

Web根目录下包涵8个文件以及一个图片文件,分别是delete_success.jsp,delete.jsp,delete2.jsp,error.jsp,insert.jsp,insert2.jsp,login.html,select.jsp

login.html代码如下:

studentinformationsystem

 

 

08计算机科学与技术学生信息管理系统





查询信息添加信息删除信息修改信息

select.jsp代码如下:

<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.util.List,com.DBUtil,com.Student"errorPage="error.jsp"%>

学生信息查询

 

学生信息查询

姓名

学号

性别

年龄

专业

<%DBUtilutil=newDBUtil();

Listlist=util.getQuery();

for(Studentstu:

list){

%>

<%=stu.getSname()%>

<%=stu.getSno()%>

<%=stu.getSsex()%>

<%=stu.getSsage()%>

<%=stu.getSdept()%>

<%}%>

//localhost:

8086/web2/login.html">返回主页

 

insert.jsp代码如下:

<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.util.List,com.DBUtil,com.Student"errorPage="error.jsp"%>

<%@pageimport="java.sql.*"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

增加记录

姓名:


学号:


性别:


年龄:


专业:


insert2.jsp代码如下:

<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.util.List,com.DBUtil,com.Student"errorPage="error.jsp"%>

<%@pageimport="java.sql.*"%>

DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http:

//www.w3.org/TR/html4/loose.dtd">

Inserttitlehere

<%

Stringname=request.getParameter("name");

Stringchangeno=request.getParameter("sno");

intno=Integer.parseInt(changeno);

Stringsex=request.getParameter("sex");

Stringchangeage=request.getParameter("age");

intage=Integer.parseInt(changeage);

Stringdept=request.getParameter("dept");

DBUtildbUtil=newDBUtil();

dbUtil.insert(name,no,sex,age,dept);

%>

<%=name%>

<

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

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

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

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