太原理工大学硬件实验1.docx
《太原理工大学硬件实验1.docx》由会员分享,可在线阅读,更多相关《太原理工大学硬件实验1.docx(15页珍藏版)》请在冰豆网上搜索。
![太原理工大学硬件实验1.docx](https://file1.bdocx.com/fileroot1/2023-1/2/75ddc94e-91f9-4133-9934-08245edfb72c/75ddc94e-91f9-4133-9934-08245edfb72c1.gif)
太原理工大学硬件实验1
本科实验报告
课程名称:
Web系统与技术
实验项目:
使用JDBC连接数据库
实验地点:
致远楼301
专业班级:
软件1222班学号:
2012005612
学生姓名:
王兆晖
指导教师:
师锋洋
2014年12月20日
一、实验目的和要求
1.掌握JSP与数据库的连接技术——JDBC
2.掌握JSP数据库编程技术。
二、实验内容和原理
利用数据库建立一个职工数据表,然后通过JDBC编写一系列基于Web方式的JSP程序,来对职工数据表的数据库进行添加、查询等功能,要求在网页上显示出来。
实验步骤
1.建立数据库
建立名为employDB的Access数据库,在库中建立employb表,字段包括:
字段名
中文含义
数据类型
id
职工号
文本
name
姓名
文本
sex
性别
文本
salary
工资
数值
title
职称
文本
对数据表employb,输入5条记录,如课本P191习题7.7所示。
2.创建数据源名
打开数据源(ODBC);添加MicrosoftAccessDriver(*.mdb)数据源驱动程序。
数据源名称:
employDB;更改默认数据库,选择employDB。
3、编写JSP程序,共有3个程序。
程序1:
课本P191习题7.8。
程序2:
课本P191习题7.10。
(把课本习题7.10改为:
编写JSP程序读取习题7.8的职工表,在该表最后插入一条新记录(由自己设计),并显示插入后的表的内容。
程序3:
课本P191习题7.11。
4.运行所编写的应用程序
启动MyEclipse,建立项目exp1,将编写的程序放入该项目的WebRoot下,右键点击WebRoot,选择“刷新”。
运行时,执行3个步骤。
第1步,把程序部署在Tomcat服务器上。
第2步,启动Tomcat服务器。
第3步,在MyEclipseWebBrowser浏览器或外部的IE,或360浏览器中输入运行的URL,如http:
//localhost:
8080/exp1/xiti7_8.jsp可运行程序1,即课本P191习题7.8,并查看运行结果。
三、主要设备和软件
Hp笔记本、tomcat7、myeclipse、Access数据库
四、实验结果与分析
数据库的建立
建立连接:
关键代码:
1、
<%@pagelanguage="java"import="java.util.*"import="java.sql.*"pageEncoding="utf-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
Access数据库
Access中读取数据并删除对应的记录
职工号 | 姓名 | 性别 | 工资 | 职称 |
<%
response.setCharacterEncoding("utf-8");
StringdriveName="sun.jdbc.odbc.JdbcOdbcDriver";
StringdbName="employDB";
StringtableName="employb";
StringuserName="";
StringuserPasswd="";
StringconURl="jdbc:
odbc:
"+dbName;
Stringsql="SELECT*FROM"+tableName;
Class.forName(driveName);
Connectioncon=DriverManager.getConnection(conURl,userName,userPasswd);
Statements=con.createStatement();
ResultSetrs=s.executeQuery(sql);
while(rs.next())
{
out.print("
");out.print("
"+rs.getString("职工号")+" | ");out.print("
"+rs.getString("姓名")+" | ");out.print("
"+rs.getString("性别")+" | ");out.print("
"+rs.getString("工资")+" | ");out.print("
"+rs.getString("职称")+" | ");out.print("
");}
rs.close();
%>
删除对应项以后为:
职工号 | 姓名 | 性别 | 工资 | 职称 |
<%
PreparedStatementps=con.prepareStatement("deletefromemploybwhere职工号in(1001,1005)");
ps.execute();
ps.close();
//更新并显示出来
Statements1=con.createStatement();
ResultSetrs1=s1.executeQuery(sql);
while(rs1.next())
{
out.print("
");out.print("
"+rs1.getString("职工号")+" | ");out.print("
"+rs1.getString("姓名")+" | ");out.print("
"+rs1.getString("性别")+" | ");out.print("
"+rs1.getString("工资")+" | ");out.print("
"+rs1.getString("职称")+" | ");out.print("
");}
rs1.close();
s1.close();
con.close();
%>
实验结果:
2、
<%@pagelanguage="java"import="java.util.*"import="java.sql.*"pageEncoding="utf-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
Access数据库
--
-->
Access中读取数据并工资增加五十存入
职工号 | 姓名 | 性别 | 工资 | 职称 |
<%
response.setCharacterEncoding("utf-8");
StringdriveName="sun.jdbc.odbc.JdbcOdbcDriver";
StringdbName="employDB";
StringtableName="employb";
StringuserName="";
StringuserPasswd="";
StringconURl="jdbc:
odbc:
"+dbName;
Stringsql="SELECT*FROM"+tableName;
Class.forName(driveName);
Connectioncon=DriverManager.getConnection(conURl,userName,userPasswd);
Statements=con.createStatement();
ResultSetrs=s.executeQuery(sql);
while(rs.next())
{
out.print("
");out.print("
"+rs.getString("职工号")+" | ");out.print("
"+rs.getString("姓名")+" | ");out.print("
"+rs.getString("性别")+" | ");out.print("
"+rs.getString("工资")+" | ");out.print("
"+rs.getString("职称")+" | ");out.print("
");}
rs.close();
%>
更新以后为:
职工号 | 姓名 | 性别 | 工资 | 职称 |
<%
PreparedStatementps=con.prepareStatement("updateemploybset工资=工资+50;");
ps.execute();
ps.close();
//更新并显示出来
Statements1=con.createStatement();
ResultSetrs1=s1.executeQuery(sql);
while(rs1.next())
{
out.print("
");out.print("
"+rs1.getString("职工号")+" | ");out.print("
"+rs1.getString("姓名")+" | ");out.print("
"+rs1.getString("性别")+" | ");out.print("
"+rs1.getString("工资")+" | ");out.print("
"+rs1.getString("职称")+" | ");out.print("
");}
rs1.close();
s1.close();
con.close();
%>
实验结果:
3、
<%@pagelanguage="java"import="java.util.*"import="java.sql.*"pageEncoding="utf-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+":
//"+request.getServerName()+":
"+request.getServerPort()+path+"/";
%>
DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
">
Access数据库
--
-->
修改后插入数据
职工号 | 姓名 | 性别 | 工资 | 职称 |
<%
response.setCharacterEncoding("utf-8");
StringdriveName="sun.jdbc.odbc.JdbcOdbcDriver";
StringdbName="employDB";
StringtableName="employb";
StringuserName="";
StringuserPasswd="";
StringconURl="jdbc:
odbc:
"+dbName;
Stringsql="SELECT*FROM"+tableName;
Class.forName(driveName);
Connectioncon=DriverManager.getConnection(conURl,userName,userPasswd);
Statements=con.createStatement();
ResultSetrs=s.executeQuery(sql);
while(rs.next())
{
out.print("
");out.print("
"+rs.getString("职工号")+" | ");out.print("
"+rs.getString("姓名")+" | ");out.print("
"+rs.getString("性别")+" | ");out.print("
"+rs.getString("工资")+" | ");out.print("
"+rs.getString("职称")+" | ");out.print("
");}
rs.close();
%>
更新以后为:
职工号 | 姓名 | 性别 | 工资 | 职称 |
<%
PreparedStatementps=con.prepareStatement("updateemploybset工资=工资+50;");
ps.execute();
ps.close();
//更新并显示出来
Statements1=con.createStatement();
ResultSetrs1=s1.executeQuery(sql);
while(rs1.next())
{
out.print("
");out.print("
"+rs1.getString("职工号")+" | ");out.print("
"+rs1.getString("姓名")+" | ");out.print("
"+rs1.getString("性别")+" | ");out.print("
"+rs1.getString("工资")+" | ");out.print("
"+rs1.getString("职称")+" | ");out.print("
");}
rs1.close();
s1.close();
%>
插入数据后为:
职工号 | 姓名 | 性别 | 工资 | 职称 |
<%
PreparedStatementps1=con.prepareStatement("insertintoemploybvalues(?
?
?
?
?
)");
ps1.setString(1,"5612");
ps1.setString(2,"王兆晖");
ps1.setString(3,"男");
ps1.setString(4,"520");
ps1.setString(5,"工程师");
ps1.execute();
ps1.close();
//更新并显示出来
Statements2=con.createStatement();
ResultSetrs2=s2.executeQuery(sql);
while(rs2.next())
{
out.print("
");out.print("
"+rs2.getString("职工号")+" | ");out.print("
"+rs2.getString("姓名")+" | ");out.print("
"+rs2.getString("性别")+" | ");out.print("
"+rs2.getString("工资")+" | ");out.print("
"+rs2.getString("职称")+" | ");out.print("
");}
rs2.close();
s2.close();
con.close();
%>
实验结果:
五、实验总结
这次实验,我主要是看书和问舍友才完成的,建立数据库连接时,我找不到在哪打开数据库驱动器。
然后在使用myeclipse时,因为版本的问题,一直在找代码的错误,浪费了不少时间,就把软件重新安装了一下,运行了一次,结果就出来了。
这次实验收获很多,了解了关于数据库的一些知识。
展开阅读全文
相关搜索