




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12章数据库项目应用实践12.1JDBC技术简介12.2JDBC应用实例12.3ASP.net应用实例
学会了数据库,一定要到项目中去应用,这样才能体现数据库的价值。本章任务: 在项目中应用SQLServer数据库。12.1JDBC技术简介12.1.1JDBC的概念
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驱动程序必须在每台客户机上分别安装、配置。12.1.2JDBC对象模型
1. Connection对象
Connection对象用于联接数据源,包含诸如DatabaseURL(数据源)、UserID(用户名)和Password(密码)等访问特定数据源所需的属性。命令是通过联接进行传输的,而结果集以流的形式返回,该流可以通过ResultSet读取。目前,JDBC2.0~JDBC3.0都不支持DataSet对象(不过,最新的JDBC4.0支持DataSet对象)。
2. Statement对象
Statement类似于ADO.NET的Command对象,用于对数据源执行命令。一个命令可以是一个存储过程调用、一条更新语句或者一条返回结果的语句,也可以使用输入和输出参数,并且返回值。例如,可以对数据库执行查询、新增、修改和删除数据等命令。3.ResultSet对象
ResultSet类似于ADO.NET的DataReader对象,用于在只读和只进的联接模式下从数据源读取数据。ResultSet对象是用来读取数据库的最简单方式,它只能读取,不能写入。ResultSet支持正向读取、反向读取,也可读取中间某条数据。不过要注意的是,默认情况下只能正向读取,且数据的每个列(字段)只能读一次(可从Statement对象设置)。12.2JDBC应用实例12.2.1安装
(1)安装环境:Windows2000Server,SQLServer2000。
(2)安装软件:jdk1.5和Tomcat5.0以上。
(3)安装方法:将光盘中的college_java.rar解压到本地,并将解压出的文件夹下的build\web文件夹复制到Tomcat安装路径\webapps下,并重命名为college_java即可。如果用netbeanIDE5.0,则按下面的顺序操作:打开文件→打开项目→选择解压的文件夹→打开项目文件夹→右键点击打开项目→运行项目。12.2.2数据库配置用文本编辑器打开Tomcat安装路径\webapps\college_java\WEB-INF下的web.xml文件,分别修改以下位置并保存:
(1)找到下列两行语句:
<param-name>DatabaseDriver</param-name><param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value>
把 “sun.jdbc.odbc.JdbcOdbcDriver” 改为SQLServer数据库jdbc驱动 “com.microsoft.jdbc.sqlserver.SQLServerDriver”。
(2)找到下列语句:
<param-name>Databaseurl</param-name><param-value>jdbc:odbc:Driver={MicroSoftAccessDriver(*.mdb)};
DBQ=c:/college.mdb</param-value>
将“jdbc:odbc:Driver={MicroSoftAccessDriver(*.mdb)};DBQ=c:/college.mdb”改为“jdbc:microsoft:sqlserver://25:1433;DatabaseName=college”(其中,25为数据库地址url,1433为SQL用的端口号,college为数据库名称)。
(3)找到下列语句:
<param-name>User</param-name><param-value>sa</param-value><param-name>Password</param-name><param-value>sa</param-value>
把两个sa分别改为数据库用户名和密码。12.2.3应用实现在浏览器地址栏输入:http://localhost:8084/college_java/index.jsp,显示如图12-1所示。
1.增加学生信息先查出可增加新学生的班级,然后根据输入学号、姓名等学生信息添加到数据库,并显示操作的SQL语句。实现上述功能的代码是:stu_insert_java.jsp、stu_insert_success_java.jsp,这些代码可从出版社指定的网站上下载。如图12-1所示进行填写,按“增加”后得到结果,如图12-2所示。图12-1使用jdbc的数据库记录添加界面图12-2记录添加成功stu_insert_java.jsp的内容如下:
<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><%@pageimport="dbsetup.dbname"%><html><head><title>增加学生</title></head><body><formname="form1"method="post"action="stu_insert_success_java.jsp"><divalign="center"><tablewidth="48%"border="1"><tr><tdwidth="51%"><divalign="center">学号:</div></td><tdwidth="49%"><inputtype="text"name="stuno"></td></tr><tr><td><divalign="center">姓名:</div></td><td><inputtype="text"name="stuname"></td></tr><tr><td><divalign="center">性别:</div></td><td><selectname="stusex"><optionvalue="男">男</option><optionvalue="女">女</option></select></td></tr><tr><td><divalign="center">出生年月:</div></td><td><inputtype="text"name="stubirth"></td></tr><tr><td><divalign="center">班级:</div></td><td><%Class.forName(dbname.forname).newInstance();Stringurl=dbname.url;System.out.println(url);Stringuser=dbname.user;Stringpassword=dbname.password;Connectionconn=DriverManager.getConnection(url,user,password);Stringsql="select*from班级表";Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery(sql);%><selectname="stuclass"><%while(rs.next()){%><optionvalue="<%=rs.getString("班级编号")%>"><%=rs.getString("班级名称")%></option><%}rs.close();stmt.close();conn.close();%></select></td></tr><tr><td><divalign="center">电话:</div></td><td><inputtype="text"name="stutele"></td></tr><tr><td><divalign="center">地址:</div></td><td><inputtype="text"name="stuaddress"></td></tr><tr><td><divalign="center">身份证:</div></td><td><inputtype="text"name="stuid"></td></tr><tr><tdcolspan="2"><divalign="center"><inputtype="submit"name="Submit"value="提交"><inputtype="reset"name="reset"value="重置"></div></td></tr></table></div></form></body></html>stu_insert_success_java.jsp的内容如下:
<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><%@pageimport="dbsetup.dbname"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>增加学生</title></head><body><%Class.forName(dbname.forname).newInstance();//读取并初始化jdbc驱动程序
Stringurl=dbname.url;//数据库路径
Stringuser=dbname.user;//用户名
Stringpassword=dbname.password;//密码
Connectionconn=DriverManager.getConnection(url,user,password);//获取数据库联接
Stringsql="insertinto学生表(学号,姓名,性别,出生年月,班级编号,电话,地址,身份证)values('"+dbname.trans(request.getParameter("stuno"))+"','"+dbname.trans(request.getParameter("stuname"))+"','"+dbname.trans(request.getParameter("stusex"))+"','"+dbname.trans(request.getParameter("stubirth"))+"','"+dbname.trans(request.getParameter("stuclass"))+"','"+dbname.trans(request.getParameter("stutele"))+"','"+dbname.trans(request.getParameter("stuaddress"))+"','"+dbname.trans(request.getParameter("stuid"))+"')";//定义SQL语句Statementstmt=conn.createStatement();//初始化新的执行命令对象stmt.executeUpdate(sql);//执行SQL语句stmt.close();//关闭执行命令对象conn.close();//关闭数据库联接out.println("增加学生成功!");%><br><%out.println("操作语句:"+sql);//显示执行的数据库SQL语句%></body></html>2.查询学生信息根据输入的学号、姓名、出生日期(起始)、出生日期(结束)这几个条件查询符合条件的学生。实现代码在文件index.jsp和stu_select_success_java.jsp中。按照图12-3进行操作,查询结果如图12-4所示。
3.修改学生信息根据查询出的学生信息(学号),查出该学生的学生信息并显示,然后根据修改的学生信息对该学生的信息进行更新,并显示操作的SQL语句。实现代码在文件stu_update_java.jsp和stu_update_success_java.jsp中。按照图12-5进行操作,修改记录成功后的界面如图12-6所示。图12-3查询出生日期符合条件记录的显示界面图12-4查询生日范围内姓李的学生记录的显示界面图12-5修改学生记录的界面图12-6修改学生记录成功的界面4.删除学生信息根据查询出的学生信息(学号),删除该学生的信息,并显示操作的SQL语句。实现代码在文件stu_delete_success_java.jsp中。按照图12-7进行操作,删除记录成功后的界面如图12-8所示。图12-7删除学生记录的界面图12-8删除学生记录成功的界面12.3ASP.net应用实例12.3.1安装安装环境如下:
(1)操作系统:Windows2000Server或WindowsXP。
(2)选择的工具:VisualStudio2005。
(3)数据库:SQLServer2000。12.3.2初始化先创建数据库。在查询分析器中打开相关的文件,如图12-9所示。在查询分析器中选中刚刚打开的文件,运行所有代码就可以创建数据库和表。图12-9“打开查询文件”界面(2)运行VisualStudio2005,如图12-10所示。点击菜单栏中的“文件”选项,选择“打开”项里的网站,如图12-11所示。打开指定的文件(WebApplication1),如图12-12所示。图12-10VisualStudio2005的界面图12-11在VisualStudio2005中选择“打开”项里的网站界面图12-12打开文件WebApplication1的界面12.3.3应用实现的关键代码
(1)在图12-12中,数据库联接的代码如下:
mycon.ConnectionString="userid=sa;password=sa;"//数据的用户名是sa,密码也是sa&"initialcatalog=college;//college为数据库名
Server=WWW-77B34AFC674;"//服务器的选择。如服务器为xjsb430,则写为Server=xjsb430mycon.Open()//调用数据库;
(2)下面分析其中的一段调用数据的代码。
Dimconnstr,selectcmdAsStringconnstr="userid=sa;password=sa;"&"initialcatalog=college;Server=WWW-77B34AFC674;"selectcmd="selectdistinct班级编号from班级表"//本行代码说明选择了数据库后,再选择调用数据库中的表(3)下面的代码可实现添加功能(在insert.aspx.vb页面中)。
mycmd.CommandText="insertinto学生表(学号,姓名,性别,出生年月,
班级编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 茶叶购销合作合同模板
- 家族遗产合同样本
- 天津市实习学生劳动合同细则
- 电梯加装项目合同模板
- 施工队劳动合同简明合同模板
- 农村地区私人租地合同样本协议
- 新版团体人身意外伤害保险合同条款解析
- 房地产公司合同审核与管理制度
- 信息系统的测试与质量保证考核试卷
- 孤残儿童心理关爱与支持体系构建方法研究考核试卷
- 《行政伦理学教程(第四版)》课件 第1、2章 行政伦理的基本观念、行政伦理学的思想资源
- 拆除工程施工拆除进度安排
- 绝缘技术监督上岗员:厂用电设备技术监督考试资料一
- 卫生监督村医培训课件
- 动物的感觉器官
- 猎头项目方案
- 2024年家庭教育指导师考试(重点)题库及答案(含各题型)
- 直肠癌术后的康复护理
- 性商老师课程培训课件
- 拆除锅炉可行性报告
- 全套ISO45001职业健康安全管理体系文件(手册及程序文件)
评论
0/150
提交评论