2023年JSP笔记之五JSP和数据库应用.pdf





《2023年JSP笔记之五JSP和数据库应用.pdf》由会员分享,可在线阅读,更多相关《2023年JSP笔记之五JSP和数据库应用.pdf(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JS P笔记之五第 五 章JS P与数据库应用本章中,我们使用SQL Se rver 2 02 3 数据库管理系统。特别约定,建立新的数据库名为:s t u d e n t,在其下创建表:表 Lstuden t;表 2:log i n。数据源名:js p d b 5.1访问SQL Ser ver数据库和案例115.1.1 W eb数据库程序设计基础下面给出一个存取w e b 数据库的JSP数据库网络架构图。图中,服务器端由Web应用程序服务器和数据库服务器组成,前者负责执行JSP程序。JS P 程序通过J DBC(Java Da t aB a se C o nnect i v ity)接口和数
2、据库服务器相连,并取得数据库中的数据。JSP程序也通过JDBC向数据库发送SQL命令,对数据库进行新增、删除和修改记录等操作,这一切都需要依靠J DBC提供的类与方法来完毕。5.1.2数据库的基本概念5 .1.3 在 SQL Se r ve r 2023中创建数据库打开SQ L Server 20 2 3 的“公司管理器”,在其中创建数据库jspdb。5.1.4 JDBC 简介JDBC是 Java数据库连接A P I,它由一些J a v a 类和接口组成。在 J S P 中可以使用JDBC实现对数据库中表记录的查询、修改、插入和删除等操作。JDBC技术在JSP开发中占有很重要的地位。经常使用J
3、DBC进行如下操作:(1)与一个数据库建立连接(2)向已连接的数据库发送SQL语句(3)解决SQL语句返回的结果1.JSP 与数据库连接的常用方式应用程序必须一方面与数据库建立连接。通常有四种连接方式,见 书 第 176至 177页。一般常用两种连接方式:JDBC-ODBC桥接器和纯Jav a数据库驱动程序。不同的连接方式相应着网页中不同的代码段。2.JD B C 中常用的类和接口(1)DriverM a n a g e r 类:驱动管理类D riverMa n ager类对象负责管理JD B C 驱动程序,使 用 D r i verMan a g e r 的方法getConnec t ion
4、()可以生成Connection对象。(2)C o nn e ctio n 类:连接类Con n e c t ion类对象实现与数据源的连接,通 过 Connection类的c real e Statement。方法可以生成S t atem ent对象。(3 )Sta t em e nt接口:语句接口用于发送简朴的SQL语句,实现SQL语句的执行。(4)R e s u ItSet接口:结果集接口实现对数据的解决,维护记录指针,记录指针所指记录为当前记录。R esu ltS et对象用于包含符合S Q L 语句中条件的所有记录,并且通过一套g e t 方法提供了对这些记录中数据的访问。(5)Pr
5、epa r ed S t a tement 接 口:预解决语句接 口用于发送带有一个或多个输入参数(1N参数)的SQL语句,PreparedS t ateme n t 对象代表一个预编译的SQL语句。执行速度较快,需要执行多次的语句应当创建为PreparedSt atemen t 对象。P r e pare d S t atem e nt对象中的SQL语句可具有若干个参数,执行语句前用s e tXXX方法来提供。5.1.5 Dr i ve r Manager 类Drive r Man a g e r 类负责管理JDB C 驱动程序,是 JD B C 的管理层,作用于用户和驱动程序之间。它跟踪可
6、用的驱动程序,并在数据库和相应驱动程序之间建立连接。与 D r ive r Man a g e r 类相关的方法重要有 Class.forN a me(S t ri n g driver)和 Stat ic Connec t ion g e tConnection(S t ring ur 1 ,Strin g u s er,S tring pass word)前者用于加载注册驱动程序,后者用于取得对数据库的连接。关于它们的用法,在下一节中立即介绍。5.1.6使用JDB C-ODB C桥接器方式连接数据库。使 用 JDBC-ODBC桥接器方式与数据库建立连接,要通过:创建O D B C 数据源一
7、一 建立JDBC-ODBC桥接器一一和ODBC数据源指定的数据库建立连接 共 3 个环节。1.创建ODBC数据源:环节见教材。操作入口:控制面板9 管理工具分数据源(ODBC)T打 开“ODBC数据源管理器”窗口,选 择“系 统 DSN”选项卡分“添加”按 钮)设立驱动程序:SQL Se r ver 数据源名:j spdb,服务器:(k)c a 1)登录方式:选择默认设立:如下图,选 择“使用网络登录I D 的 W i ndows N T 验证(W)o MSQL S e r v e r应 该 如 何 验 证 登 录I D的真伪?使 用网络 登 蓑 苗,的 苗 苗 谕.游验 证 连 门使 用 用
8、 户 输 入 登 录I D和 宏 码 的SQL S e r v e r验 证 母).要 更 改 用 于 与SQL S o w e r通讯的网络 库,的 单 击“客户端配置”勾 上“更改默认的数据库为):”中,输入数据库:jspdb。其它采用默认设立,不需要修改。创建后,测试一下数据源。2.建立J DBC-ODBC桥接器。为了连接js p d b 数据源的j s p d b 数据库,一方面要建立一个JDBCO D BC桥接器.这个建立过程是通过下面这句代码实现的:Class,f o rName(s u n.jdb c.odbc.JdbcOdb c D r iv e r);/或 C 1 a ss.
9、f orN a me(usun.jdbc.odbc.J dbc 0 dbc Driver),newlnstance();。建立桥接器时也许发生异常,因此捕获这个异常。所以建立桥接器的标准语句是:t r y(Cl a ss.f o rN a m e(sun.jd b c.odbc.Jdb c OdbcDriver);或 Class.for N a m e(usun.jdbc.od b c.JdbcO d b c Dri v er).n ewins t ance();Ca t ch(Cl a s sNo t FoundE x c ep t i o n e)o ut.prin t ln(e)3.与O
10、DB C 数据源指定的数据库建立连接编写连接数据库的Java代码不会出现数据库的名称,只能出现数据源的名字。先使用 ja v a.sql包中的C o n n ection类声明一个连接对象,然后再使用类Driv e rM a nager调用它的静态方法getCo n n e ction创建这个对象:Conne c tio n c on=Dr i verMagager.g e t C o nn e ct i o n(j dbc:o dbc:数据源名字,login name,pass wo r d );其中log i n name和 p a s sw o rd 是建立数据源时所使用的用户名和密码。
11、建立连接时应捕获SQLExcepti o n 异常:try(0Co n ne c t i o n con=Dr i ve r Man a g e r.getCo n n ec t i o n(j dbc:odbc:s t ud ent,s s a);)c a t c h(SQ L Exc e p t ion e)。out.pr i ntln(e);。这样就与数据源s t udent建立了连接。应用程序一旦与某个数据源建立连接,就可以通过SQ L语句与该数据源所指定的数据库中的表交互信息,如查询、修改、更新表中的记录。下例中是一个简朴的JS P 页面,该页面中的Jav a 程序片代码负责连接到数
12、据源j sp d b,查询该数据源中的数据库jspdb中的表tra d e 的所有记录。表 tr a d e 的字段设计和所有记录见书1 7 5 页 1 7 6 页。例1用 JDBC ODBC桥接器方式连接数据库,并显示表tr a d e 中的所有记录。网页文献名e xampl e l.j s p序列号 fo n t f ace=宋体”,商品名称 类型 供应商v/fontv/TR 价格 数量 v/f ontx/TR o 执行后,效果如下图:型料料科科供应商价格数量美华食品1 5.0 0 0 01 0 0美莲达一|3.0 0 0 0 1 0 016.00001 0 0可口可乐5.0 0 0 01
13、 0 0类饮饮饮饮序列号 商品名称汁啡乐橙咖可1234汁果苹 案 例 1 1 访问SQL S e r v e r 数据库采 用 JD B C-O D B C 桥接器方式连接数据库中的表t r a deo请同学们学习连接代码中参数的设立。网页文献名jspodbc.js p访问 SQL Serve r 数据库v/t i tle访问 SQL S e r v er 数据库%下面程序段用于连接到数据库加载类 s u n.j d be.o dbc.JdbcOdb c D r iv e r,并通过 newlnst a n ce()方法实例化 C 1 as s.f orName(H s u n.jd b c.
14、o d be.J dbcOdb c Dri v e r M).n ew I nstance();fiou t.pr i ntln(数据库驱动注册成功!M);。设立 u 门 为 ODBC匚 打 的 j sp d b St r in g u r l=Hjdbc:od b c:is p d b u;。St r ing u s er=n s a;S t rin g p a sswor d=,n;建立与数据库的连接,将连接赋给conn0 co n necti o n c o n n=D riv erM a n a ger.g e tConn e c t io n(u r 1,user,pass word
15、);out.print 1 n(”数据库连接成功!vb r X h r );“/通过 C onnection 类的 c reateSt a t ement()方法创建 S tat e men t 实例,并赋给s tm t,以方便操作数据库Sta t ement stmt=co n n.c r e a t e S t a t e m e n t(ResultSe t.TY P E_S CROLL.SENSIT I VE,o oR esu 1 tSet.CO NCU R_UPD ATA BLE);/创建SQL查询字符串,以选择数据表t r ade中的记录。S t rin g sq 1 =usele
16、c t*from tr a de;“/通过 St a t e me n t 类的 e x e cu t e Q ue r y()方法创建 ResultSet 对象 r s,以方便对数据表的操作oRes u ItS e t r s=stmt.e xecuteQ u er y(sql);移动到数据表的第一条记录rs.fi r st();。/下面的语句将显示记录中各字段的内容%qd:o 商品名称:。供应商:。类别:v%=r s.getObjec t(*cla s s u)%单价:数量:数据库访问成功!obr。数据库已关闭!运营后效果如下图:访问S Q L S e r v e r数据库数据库驱动注册成
17、功!数据库连接成功!单 价.15.0000数量:100数据库访问成功!数樵隹己去闲!5.1.7 通过本地协议纯Java驱动程序访问SQL Server 20 2 3 数据库用 Jav a语言编写的驱动程序称为纯Jav a 驱动程序。简朴地说,JDBC可以调用本地协议纯Java驱动程序和相应的数据库建立连接。这种连接数据库方式要通过2 个环节:加载纯Java驱动程序一 与指定的数据库连接。1.加载纯J a v a 驱动程序:这种方式下不需要设立数据源,由于不依赖于ODBC,使得应用程序具有很好的移植性。目前,许多数据库厂商都提供了自己的相应的纯Jav a 驱动程序。当使用纯Java驱动程序访问数
18、据库时,必须保证:在连接数据库的JS P 网页程序所驻留的计算机上安装相应DBM S提供的纯J a v a 驱动程序。比如,Tom cat服务器上的某个W e b 应用程序,想访问SQL S e rv er 2 0 2 3 数据库管理系统所管理的数据库,则 Tome a t 服务器所驻留的计算机上必须要安装SQL Server 202 3 提供的纯Ja v a 驱动程序。我们这里,使用的是MS SQL Server 20 2 3 数据库管理系统。所以需要把该厂商提供的 ja r 包:m s s q 1 s e rve r.j a r、m s uti 1 .j a r、msb a se.j ar
19、 挎贝至ij Java 的jreli b e x t 中,或复制到Tom cat服务器安装目录的文献夹的c ommon 1 i b 中。并且修改 c 1 a sspath环境变量:在 classpath的当前值中,再添加3 个jar包,即修改完cla s spa t h 后,其值为:class p ath=.;%Java_ h ome%1 ibdt.j ar;%J a v a_h o m e%1 i b t o o Is.jar;%t omcat_ hom e%common libmsbase.jar;%t omcat_ h o me%c ommo n 1i bm s util,j ar;%l
20、 o mcat_home%commonl i b ms s q 1 s er v e r.jar;%tomcat_home%common 1 ibservle t.jar;/红色部分就是新添加的部分。除此之外,尚有一件很重要的事,就是安装SQL Serve r 2023 sp3 补丁。S QL S e r ver 202 3 SP3补丁可以直接在网上下载,其文献名为c h s_s q 12k sp3.exe。下载完后,双击该文献安装SQL S erv er 2023 SP3补丁。准备好了后,加 载 纯 Jav a 驱动程序:/注意,这里的参数和ODBC桥接器方式不同样。t ry(C 1 ass
21、.fo r N am e(com.m i crosoft.jdbc.sq 1 ser v e r.SQLSe r ve r D r i ver),newlns t ance();)c a t ch(Ex c eption e)ou t.print 1 n(e);2.和指定的数据库建立连接假设网页程序要与SQL S erver数据库服务器管理的数据库j spdb建立连接,而有权访问数据库j s p db的用户的id和密码分别是sa、空,那么建立连接的代码如下:try aS t r i n g u rl=,jdbc:microsoft:s q 1 serv e r:/lo c alhos t:1
22、433;D atabaseName=j spdb”;Stri ng u s er=s a”;S t rin g p a sswo r dcon=D r iv e r Mana g er.getConnectio n(u r 1 ,user,p a s swor d);oc a tch(S QLExcep t i o n e)o out.p ri n tln(e);6)。下面的例子是采用纯Jav a 数据库驱动程序方式来实现上一个例题的例子。例 2使用纯Java数据库驱动方式显示表中的所有记录网页文献名example2.j s p%C onn e ction co n;aS t atem e n
23、t s q 1;Results e tr s;t ry(。C 1 as s.fbrNam e(c om.mic r osoft.jdbc.sql s erv e r.SQLServerDrive r).newln s t ance();)catc h(E xcep t ion e)。out.pri n t(e);out.p r i nt(n*);out.print();61 ry(String u r 1;ur 1 =ujdb c:micr o soft:sq 1 s e r ver:/localhos t:1433;D a tabaseName=jsp db;Stri n g u s e r
24、=H s a”;t r i ng passwo r d=,H;econ=D riverMana g er.get C o n n ection(ur 1 ,u s e r,pa s sword);Q sql=co n.crea t eS t at e ment();rs=sql.e xec u t eQue r y(SE L ECT*FROM t rade);%序列号 TH w i dth=1 OOXfo n t face=宋体”商品名称 类型V/TRYTH wid t h=5 Oxfon t fa c e =”宋体”价格 V/TRYTH w i dth=50数量v/f o ntx/TR YT
25、D 运营后,效果同例1完全同样。拓展案例18 通过本地协议纯J a v a 驱动程序访问SQL Serv e r2023数据库网页文献名 j spSQ L Se r ver.jspvtitle通过本地协议纯J a v a 驱动程序访问SQL Serv e r2023数据库通过本地协议纯Java驱动程序访问SQL Se r ve r 20 2 3 数据库 id:。商品名称:。供应商:类别:V%=rs.getObject(c lass )%单价:V%=r s.g e 10 bjec t(p r i cen)%数量:运营后,效果同案例11。上述网页在运营中,假如出现关于用户adm i n 的错误提醒
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 JSP 笔记 数据库 应用

限制150内