《数据库技术A》实验报告册V3(李欣).doc
,数 据 库 技 术实验报告册20 19 - 20 20 学年 第 一 学期班 级: 学 号: 姓 名: 授课教师: 实验教师: 实验学时: 36h 实验组号: 信息管理系2019年12月湖北汽车工业学院学 生 实 验 守 则(2001年6月)第一条 实验室是实验教学和科研的重要场所,不作它用,非实验人员,未经允许不得入内。为保证良好的实验环境,特制定本守则。要求所有实验的学生在进入实验室后要认真遵守本守则。第二条 所有实验的学生要服从实验室管理人员或指导教师的管理,严格设备遵守操作规程和各项制度,注意安全。爱护仪器,节约药品和材料。保持室内整洁,废液倒在废液桶内,不允许随意混合各种药品,以免发生意外。第三条 严格遵守学院实验考勤制度,认真完成实验任务。第四条 实验前要认真做好预习。明确实验目的、要求,了解实验基本原理、操作步骤、方法和注意事项。未预习者不准进行实验。第五条 进入实验室要衣冠整齐,实验中不得高声喧哗到处走动,影响他人实验。严禁在实验室内吸烟、饮食或将食具带入实验室第六条 爱护一切设施,禁止乱刻乱画。实验中如发现设备有异常情况,应及时报告指导教师,不得自行处理。实验完毕,应把实验台、实验器材等整理干净放还原处。值日小组做好清洁,关好水电,经教师同意后才能离开。第七条 以严肃认真的态度进行实验。实验中要正确操作,仔细观察,作好记录,反复思考。实验后按时上交实验报告,实验报告要求数据准确,字迹工整。第八条 实验室一切设施器材不准拿出室外,如有特殊需要,须经管理人员按审批手续办理。实验中不得随意挪动、拆卸实验设备,不准超负荷使用。使用精密贵重仪器和成套仪器,需在教师指导下进行,经教师检查后方可启动。第九条 若发生意外事故,应保持镇静,不要惊慌。遇有烧伤、烫伤、割伤时,应立即报告教师,及时处理。爱护国家财产,如有违章损坏仪器设备者,根据学院有关制度进行处理。第十条 本办法自颁布之日起实行,原有相应规章制度作废。其他未尽事宜参照学院有关规章制度执行。目 录实验一 SQL Server数据库创建及使用1实验二 基本SQL语句使用与Java连接SQL Server数据库5实验三 使用Servlet与JSP显示数据库表信息8实验四 使用Servlet与JSP添加一条记录12实验五 使用Servlet与JSP删除一条记录14实验六 使用Servlet与JSP修改一条记录17实验一 SQL Server数据库创建及使用一、实验目的1、学习使用SQL Server数据库;2、学习如何创建数据库及数据表;3、学习如何分离数据库、附加数据库及导入数据;4、学习使用SQL语句创建数据库及数据表;5、学习排除数据库使用的基本连接错误;二、实验内容1、使用SQL Server 2008 R2 Studio Manager连接数据库实例2、使用Studio Manager图形界面创建数据库3、使用Studio Manager图形界面分离数据库,并将其保存在个人U盘中4、使用Studio Manager图形界面附加数据库5、使用SQL语句创建数据库study2,并将其保存在D:Data文件夹下6、使用Studio Manager图形界面在study2数据库中创建数据表student,其格式要和提供的素材中学生表保持一致7、在study2数据库中使用SQL语句创建数据表teacher,其格式要和提供的素材中教师表保持一致8、使用Studio Manager图形界面为student表添加一行数据9、使用SQL语句为teacher表添加一行数据10、使用Studio Manager的导入数据功能将素材中的其余三张表格导入study2数据库中三、实验过程1、使用SQL Server 2008 R2 Studio Manager连接数据库实例:方法:启动SQL Server 2008系统,选择“Windows用户”,点击“连接”,即可完成操作。2、使用Studio Manager创建数据库study1:方法:双击SQL Server 2008 R2 Studio Manager,“Windows用户”登录,展开用户选项,右击数据库,点击“新建数据库”,在“数据库名称”一栏输入“study1”,点击“确定”,数据库study1就安装好了。3、使用Studio Manager分离数据库study1,并将其保存在个人U盘中:方法:(1) 启动SQL Server 2008,右击数据库“study1“,选择”属性“(2) 在属性的左侧边栏,点击“选项“,点击状态一栏”限制访问“的下拉菜单,选择”SINGLE_USER“,点击确定(3) 完成后,数据库“study1“后面会出现一个”单个用户“字样,则可进行下一步(4) 右击数据库“study1”,点击“任务”,在右侧栏点击“分离”4、使用Studio Manager附加刚刚分离的数据库study1:方法:(1) 启动SQL Server 2008系统,展开用户选项,右击“数据库“,点击”附加“(2) 在右侧栏点击”添加“,找到.mdf文件,并找到所需添加的数据库”study1“,点击”确定“,再次点击”确定“,则附加刚刚分离的数据库”study1“就完成了。5、使用SQL语句创建数据库study2,并将其保存在D:Data文件夹下:方法:(1) 打开D盘,新建文件夹“Data“(2) 启动SQL Server 2008系统,点击左上方“新建查询“(3) 输入语句:gocreate database study2on primary(name=study2_data,filename=D:Datastudy2_data.mdf)点击执行,即完成操作。6、使用Studio Manager创建数据表student:方法:(1) 打开数据库“study2”的下拉菜单,右击“表”,点击菜单中的“新建表”选项。(2) 打开“第一次上机素材”,按照要求输入“列名”,并且选择相应的数据类型。(3) 点击保存,在弹出的对话框中输入“student”,点击“确定”,表格就建立完成7、使用SQL语句创建数据表teacher:方法:(1) 点击“新建查询”。(2) 在弹出的界面输入create table teacher(教师号 char(10) primary key,姓名 varchar(20) not null,性别 char(2),学位 varchar(20),职称 varchar(20),年龄 int,单位编号 char(10) )(3) 点击“执行”,显示命令已完成,即成功建立表。8、使用Studio Manager图形界面为student表添加一行数据:方法:(1) 右击“dbo.student”,选择“编辑前200行”,在中间界面输入“第一次上机素材”中的相应信息填入进去。(2) 输入完成一行后点击“保存”,若没有显示出错,即添加数据完成。9、使用SQL语句为teacher表添加一行数据:方法:(1) 点击“新建查询”。(2) 在弹出界面输入insert into teacher values(5,毛高波,男,硕士,研究院,57,2)(3) 点击“执行”,显示命令已完成,即数据添加成功。10、使用Studio Manager的导入数据功能将素材中的其余三张表格导入study2数据库中:方法:(1) 右击数据库“study2”,选择“任务”,在右侧菜单中点击“导入数据”。(2) 在弹出的界面中点击“下一步”。(3) 在右上方“数据源”选择EXCEL,“Excel文件路径”点击“浏览”选择“第一次上机素材”,点击“下一步”。(4) 在数据库一栏中选择“stuey2”,其他均为默认值不变,点击“下一步”。(5) 继续点击“下一步”。(6) 选择需要导入的表格,选择不带后缀的表格,点击“下一步”。(7) 默认不变,点击“下一步”,点击“完成”,等待片刻后显示“成功”,方可关闭界面,即数据导入完成。四、实验心得体会实验中遇到的问题及解决办法?问题:导入数据修改数据类型失败。方法:导入时不修改数据类型,保持默认,导入成功后,点击“工具>选项>Designers”在“阻止保存要求重新创建表的更改(S)”一栏前面把去掉并保存,然后右击表点击“设计”,就可以修改表格数据类型。实验二 基本SQL语句使用与Java连接SQL Server数据库一、实验目的1、学习使用基本的SQL查询、添加、更新、删除语句;2、学习配置数据库并允许远程访问;3、学习使用Myelipse软件连接数据库,并显示数据库中的表格; 4、通过实际操作排除程序出现的问题,掌握利用搜索引擎查找解决方法的能力;二、实验内容1、使用SQL语句显示学生表、教师表、单位表、课程表、课程学分表的所有数据。2、使用SQL语句显示带有条件的数据1)、年龄大于35且小于50岁的女教师2)、来自重庆或民族是壮族的学生3)、每个班级的学生数量4)、职称是教授的教师的最小年龄5)、每个学生都上了多少门课6)、每个单位有多少职称为讲师的人3、配置SQL Server数据库,使之允许远程访问,并创建一个新的登录名,并使用这个新的登录名访问数据库4、使用Myelipse软件创建控制台应用程序,使用新创建的用户名与密码连接数据库study2,并显示单位表的数据三、实验过程1、使用SQL语句显示学生表、教师表、单位表、课程表、课程学分表的所有数据:方法:(1) 新建查询,输入语句:select * from student,执行,可查询学生表中的所有数据(2) 新建查询,输入语句:select * from unit,执行,可查询学生表中的所有数据(3) 新建查询,输入语句:select * from teacher,执行,可查询学生表中的所有数据(4) 新建查询,输入语句:select * from course_selection,执行,可查询学生表中的所有数据(5) 新建查询,输入语句:select * from course,执行,可查询学生表中的所有数据。2、使用SQL语句显示带有条件的数据:方法:1) 、年龄大于35且小于50岁的女教师 select *from teacherwhere 年龄>35 and 年龄<50 and 性别=女2) 、来自重庆或民族是壮族的学生select *from studentwhere 来源=重庆市 or 民族=壮族3) 、每个班级的学生数量select 班级 ,count(学号) as 人数from studentgroup by 班级;4) 、职称是教授的教师的最小年龄select 教师号,姓名,职称,年龄from teacherwhere (年龄=(select min(年龄) from teacher where 职称=教授) and 职称=教授5) 、每个学生都上了多少门课select course_selection.学号,student.姓名 ,count(课程编号) as 数量from student,course_selectionwhere student.学号=course_selection.学号group by course_selection.学号,student.姓名;6)、每个单位有多少职称为讲师的人select unit.单位名称,teacher.职称,count(unit.单位编号) as 人数from unit,teacherwhere unit.单位编号=teacher.单位编号 and teacher.职称=讲师group by unit.单位名称,teacher.职称;3、配置SQL Server数据库,使之允许远程访问,并创建一个新的登录名,并使用这个新的登录名访问数据库:方法:(1) 启动SQL Server,用本地账号登录。右击数据库“local”,在右侧栏选择“属性”。(2) 在弹出界面的左侧,点击“连接”。选择“允许远程连接到此服务器”,点击“确定”。(3) 展开“安全性”下拉菜单,右击“登录名”,点击“新建登录名”。(4) 在弹出界面,填写新建的登录名称以及密码,选择“SQL Server身份验证”,在左侧栏点击“状态”,在是否允许连接到数据库引擎下点击“授予”,在登录下点击“启用”,在点击“确定”4、使用Myelipse软件创建控制台应用程序,连接数据库study2,并显示单位表的数据:方法:(1) 打开eclipse ,点击“File”,新建一个java project,命名为test1.新建名为pkg的package,在包里面新建一个class,命名为Main输入下面的代码package pkg;import java.sql.*;public class Main public static void main(String args) String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver" String dbURL="jdbc:sqlserver:/127.0.0.1:1433;DatabaseName=study2" String userName="sa" String userPwd="123456" tryClass.forName(driverName); System.out.println("加载驱动成功!");catch(Exception e) e.printStackTrace(); System.out.println("加载驱动失败!");try Connection dbConn=DriverManager.getConnection(dbURL,userName,userPwd); System.out.println("连接数据库成功!"); Statement statement =dbConn.createStatement(); ResultSet rs=statement.executeQuery("select * from study2.dbo.unit"); while(rs.next() System.out.println("单位编号:"+rs.getString(1)+"|"+"单位名称:"+rs.getString(2); ;catch(Exception e) e.printStackTrace(); System.out.print("SQL Server连接失败!"); (2) 下载并解压sqljdbc_4.0,点击sqljdbc_4.0,再点击chs文件夹,复制sqljdbc4的java文件,打开eclipse,在test1右击选择粘贴,选择sqljdbc4右击点击Bulid Path,,在右侧栏选择Add to Bulid Path。(3) 右击Main.Java,选择Run As,点击Java Application,等待片刻,出现以下页面即完成四、实验心得体会实验中遇到的问题及解决办法?问题:eclipse 连接数据库失败。方法:查看Bulid Path中是否添加进sqljdbc_4.0;若添加进查看代码中连接的地址是否为可用的ipv4地址,并且查看是否有端口号1433,注意用冒号将地址与端口号隔开;查看SQL语句是否正确,在数据库中使用查询执行一遍;若上述操作均不行,将sqljdbc_4.0添加进项目的WebC ontent下的WEB-INF的lib文件下,并添加进Bulid Path中。实验三 使用Servlet与JSP显示数据库表信息一、实验目的1、学习配置Tomcat服务器、Myelipse;2、学习配置Servlet的访问地址;3、学习使用Servlet显示数据库中的数据;4、学习使用JSP显示数据库中的数据;5、学习解决WEB网页开发中遇到的问题二、实验内容1、配置Tomcat并运行服务,使用浏览器打开localhost:8080端口,保证Tomcat运行无误2、使用Myelipse配置Tomcat,使其可以在Myelipse中运行3、使用Myelipse创建Web项目webLearn,并配置Web.xml文件,发布它,使其可以在浏览器中访问4、新建一个Servlet,配置其访问地址为hello.view,并在浏览器中访问它5、新建一个Servlet,配置其访问地址为deptView.do,并在其中连接数据库study2,显示其中的单位表,并在浏览器中访问它6、新建一个Jsp网页,其名为deptView.jsp,同样显示study2数据库中的单位表,并在浏览器中访问它7、查看deptView.jsp生成的class文件,并比较其与Servlet的相同与不同之处三、实验准备1、配置Tomcat并运行服务,使用浏览器打开localhost:8080端口,保证Tomcat运行无误:方法:(1) 打开浏览器,在网站栏输入“apache.org”,点击搜索。(2) 在网页最下面一栏点击“Tomcat”,点击“Tomcat 9”,在Binary Distributions找到Core点击下载“64-bit Windows zip”,在Source Code Distributions点击下载“zip”。并解压下好的文件。(3) 安装jdk,右击“此电脑”,点击“属性”,在弹出页面左侧点击“高级系统设置”,在弹出页面点击“环境变量”,在系统变量下面点击“新建”变量名为“JAVA_HOME”变量值为jdk的根文件目录如“C:Program FilesJavajdk1.8.0_172”点击“确定”,新建变量名为CLASSPATH,变量值为%JAVA_HOME%lib;%JAVA_HOME%libdt.jar;%JAVA_HOME%tools.jar点击“确定”选择“Path”点击编辑,在最下方新建%JAVA_HOME%bin,点击确定,在用户变量新建path变量值为C:Program FilesJavajdk1.8.0_172,点击确定,再次点击两次确定。(4) 打卡cmd,依次输入“java”“javac”“java -vesion”,确保java环境配置成功。再次打开“环境变量”,新建CATALINA_HOME变量值为D:tomcatapache-tomcat-9.0.26点击确定,选择Path点击“编辑,在最下方新建“%CATALINA_HOME%bin”“%CATALINA_HOME%libservlet-api.jar”点击确定,再点击两次确定。(5) 找到并打开apache-tomcat-9.0.26文件夹,打开bin目录,找到startup.bat文件并双击,会弹出一个Tomcat界面,在最后一行有类似Server startup in 664 milliseconds英文出现,则表示tomcat环境配置成功,打开浏览器输入http:/localhost:8080/,网页出现一只猫,则表示Tomcat运行无误。2、使用Myelipse配置Tomcat,使其可以在Myelipse中运行:方法:(1) 运行eclipse,打开window的下拉菜单,选择preferences.(2) 在弹出界面的左侧栏打开Server的下拉菜单,选择点击Runtime Environments,在右侧点击“ADD”,选择“Apache Tomcst v9.0”,点击next 点击Browse,选择apache-tomcat-9.0.26文件,点击Finish,点击OK。(3) 在eclipse操作界面,找到Servers,双击Tomcat v9.0 Server at localhost,选择Use Tomcat installation,在Deploy path右侧更改为webapps。关闭界面,点击YES。(4) 在eclipse操作界面,找到Servers,点击运行,即完成了配置Tomcat。3、使用Myelipse创建Web项目webLearn,并配置Web.xml文件,发布它,使其可以在浏览器中访问:方法:(1) 点击file选择Dynamic Web Project,在name框中输入webLearn,点击两次NAXT,勾选“Generate web.xml deployment descriptor”一栏,点击Finish。(2) 打开webLearn项目,打开WebContent文件夹,再打开WEB-INF,若该文件夹下面有web.xml文件,则可以进行下一步。(3) 右击WebContent文件夹,新建JSP File项目,在name一栏输入项目名称如lala.jsp,点击Finish。(4) 双击lala.jsp,把里面的“ISO-8859-1”全部更改为“UTF-8”,在<body></body>中间输入想在网址上显示的内容。(5) 在lala.jsp界面右击,选择Run As,点击Run on Server,出现类似于一下界面即完成操作。4、新建一个Servlet,配置其访问地址为hello.view,并在浏览器中访问它:方法:(1) 右击webLearn项目,选择新建class,在package一栏输入“com.itheima”在name一栏输入项目名称,如helloServlet,点击finish。(2) 在helloServlet.java中输入相应代码并在有错误的地方导入相应类的包,代码如下:public class helloServlet extends GenericServlet public void service(ServletRequest req,ServletResponse res) throws ServletException, IOExceptionres.getOutputStream().write("Hello Servlet!".getBytes();(3) 右击webLearn项目,新建servlet,在“Use an exisiting Servlet class or JSP”一栏打钩,在class name中选择helloServlet点击ok,点击next,点击finish。(4) 打开webLearn下的WebContent文件下的WEB-INF,打开web.xml,把<url-pattern>/helloServlet</url-pattern>中间的访问地址改为/hello.view,即完成操作5、新建一个Servlet,配置其访问地址为deptView.do,并在其中连接数据库study2,显示其中的单位表,并在浏览器中访问它:方法:(1) 右击webLearn,选择新建servlet,输入java package名称com.sy3,输入servlet名称deptView,点击finish。(2) 输入连接数据库的代码,这里要注意一下地址是否正确,点击运行。(3) 若运行失败,把sqljdbc4.jar粘贴到webLearn项目中,右击sqljdbc4,选择Build Path,点击Add Build Path,再次运行程序。(4) 若仍然运行不成功,把sqljdbc4粘贴到webLearn项目WEB-INF文件下的lib文件中,并选择Build Path,点击Add Build Path,再次运行程序,即完成操作。(5) 找到deptView.java中的WebServlet("/deptView")语句,把/deptView地址更改为/deptView.do,即完成操作。关键代码:protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver" String dbURL="jdbc:sqlserver:/10.13.11.164:1433;DatabaseName=study2" String userName="sa" String userPwd="123456" try Class.forName(driverName); System.out.println("加载驱动成功!");catch(Exception e) e.printStackTrace(); System.out.println("加载驱动失败!");tryConnection dbConn=DriverManager.getConnection(dbURL,userName,userPwd); System.out.println("连接数据库成功!"); Statement statement =dbConn.createStatement(); ResultSet rs=statement.executeQuery("select * from study2.dbo.unit"); response.setContentType("text/html;charset=utf-8"); PrintWriter out=response.getWriter(); out.println("<center>"); out.println("<table border=1>");out.println("<tr><th>单位编号</th><th>单位名称</th></tr>"); while(rs.next() out.println("<tr>"); out.println("<td>"+rs.getString(1)+"</td>"); out.println("<td>"+rs.getString(2)+"</td>"); out.println("</tr>"); ; out.println("</table>");catch(Exception e) e.printStackTrace(); System.out.print("SQL Server连接失败!");response.getWriter().append("Served at: ").append(request.getContextPath();6、新建一个Jsp网页,其名为deptView.jsp,同样显示study2数据库中的单位表,并在浏览器中访问它:方法:(1) 右击webLearn项目,新建deptView.jsp并输入连接数据库的代码。(2) 注意代码中的IP地址是否正确,并把jsp中的ISO-8859-1改为utf-8。关键代码:<body><%String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver"String dbURL="jdbc:sqlserver:/10.13.11.164:1433;DatabaseName=study2"String userName="sa"String userPwd="123456"tryClass.forName(driverName);catch(Exception e) e.printStackTrace(); out.println("加载驱动失败!<br/>");try Connection dbConn=DriverManager.getConnection(dbURL,userName,userPwd); %> <center> <hl>单位表</hl> </center> <table border="2" align="center"> <tr> <td align="center">单位编号</td> <td align="center">单位名称</td> </tr> <% Statement statement =dbConn.createStatement(); ResultSet rs=statement.executeQuery("select * from study2.dbo.unit"); while(rs.next() %> <tr> <td align="center"><%=rs.getString(1) %></td> <td><%=rs.getString(2) %></td> </tr> <% ;catch(Exception e) e.printStackTrace(); out.print("SQL Server连接失败!<br/>"); %></table></body></html>7、查看deptView.jsp生成的class文件,并比较其与Servlet的相同与不同之处:方法:不同点:(1) Servlet里面编写java语句很方便,而编写dtl语句很麻烦,需要用到out.println输出。Jsp中编写dtl语句很方便,编写java语句很麻烦,需要导相应的sql语句的包。即jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.(2) Servlet的应用逻辑是在java文件中,并且完全从表示层中的HTML里分离开来。JSP是Java和HTML可以组合成一个扩展名为.jsp的文件。相同点:JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。四、实验心得体会实验中遇到的问题及解决办法?问题1:Lala.jsp 第一行一直报错。方法:1.先右击webLearn项目选择“Build Path”,点击“Configure Build Path”。2.在弹出界面中右上方选择栏点击“Libraries”,看是否有tomcat文件,若没有点击“Add Library”选择“Server Runtime”点击NEXT,选择tomcat点击finish,点击ok。3.若上诉操作完成后第一行仍有错误,在tomcat文件夹中点击lib文件,找到servlet-api.jar文件,把其复制到webLearn项目中,右击servlet-api选择Build Path点击“Add Build Path”。操作完成后错误就消失了。问题2:在servlet连接数据库失败。方法:1.检查代码中的IP地址是否为当前的IP地址。2.把sqljdbc4.jar添加到web项目的build Path中,若仍然不行,把sqljdbc4再次添加到web项目WEB-INF文件下的lib文件的Build Path中,运行程序。实验四 使用Servlet与JSP添加一条记录一、实验目的1、学习使用JSP与Servlet配合添加数据库中的数据并改正常见错误;2、学习使用JSP中的JSTL标准标签;3、比较Servlet方法与JSP方法的异同;二、实验内容1、新建一个Servlet并命名为insertDept.java,并配置web.xml使它的访问地址为insertDept.do2、新建一个JSP网页并在网页中创建需要添加的Input元素。(dept表包含几个列应该添加几个输入框,还有一个按钮)3、配置JSP的form元素的属性,使action指向insertDept.do。4、在insertDept.java中改写doPost方法,接收JSP网页中传递的参数并编写SQL插入语句为数据库表插入数据,并返回deptView.jsp表。5、新建一个Jsp网页,其名为deptView.jsp,同样显示dept表,并在浏览器中访问它三、实验准备1、新建一个Servlet并命名为insertDept.java,并配置web.xml使它的访问地址为insertDept.do:方法: <servlet> <description></description> <display-name>insertDept</display-name> <servlet-name>insertDept</servlet-name> <servlet-class>web.insertDept</servlet-class> </servlet> <servlet-mapping> <servlet-name>insertDept</servlet-name> <url-pattern>/insertDept.do</url-pattern> </servlet-m