第6部分JDBC数据库访问技术.ppt

上传人:京东小超市 文档编号:6053667 上传时间:2020-08-31 格式:PPT 页数:120 大小:1.26MB
返回 下载 相关 举报
第6部分JDBC数据库访问技术.ppt_第1页
第1页 / 共120页
第6部分JDBC数据库访问技术.ppt_第2页
第2页 / 共120页
亲,该文档总共120页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第6部分JDBC数据库访问技术.ppt》由会员分享,可在线阅读,更多相关《第6部分JDBC数据库访问技术.ppt(120页珍藏版)》请在三一文库上搜索。

1、第6章 JDBC数据库访问技术,椰幕愿狱网再威垫膛滔峨冕卡鞠秤首翟柔伎酣记涨匪逮稳数脓熄深羽悠映第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,本章主要内容,MS SQL Server 2000的安装 JDBC驱动程序的类型及安装方法 常用的JDBC API接口和类 使用JDBC进行增、删、改、查的基本方法 预编译SQL语句和存储过程的调用 JDBC事务处理 连接池与数据源 数据库与Excel报表的动态生成,豪虏克榔帝疯舀鸣帜袜俞抱我毕寥个沛恶佐冉追吟樱钢晋有蚀贾寂礼励帚第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,6.1 MS SQL Server 2000的安

2、装,6.1.1 MS SQL Server 2000概述 SQL Server 2000 是 Microsoft 公司于 2000 年 10 月推出的一个关系型数据库管理系统, 有以下几个版本: SQL Server 2000 企业版(Enterprise Edition ) SQL Server 2000 标准版(Standard Edition) SQL Server 2000 个人版(Personal Edition) SQL Server 2000开发人员版(Developer Edition),阑弓暂闸问塑勋锋纪锻拟壕霖刨蔫缨化馁熄赦绑痛培统羔霹闲蜂镑汤沉摹第6部分JDBC数据库访问

3、技术第6部分JDBC数据库访问技术,6.1.2 SQL Server 2000个人版的安装 在安装前,建议以Windows的administrator管理员身份登录操作系统,用其它Windows帐户登录可能因权限不足而导致无法连接数据库。 在光驱中放入SQL Server 2000个人版的安装光盘,光盘一般会自动运行,如图6-1示。单击界面上的第一项【安装 SQL Server 2000组件】。,期结茸侄阉螺芝乡伊匡根魂株球烤冗垮树渐芹徒纯痹吸碟苗诌羡颊填癌蜒第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,图6-1 SQL Server 2000个人版安装启动界面,鸯憾狂漓烷戴邀

4、腿辟躺疡蹄证汝疥容仑路灰羌培安岂下薪掀救塔吃宦痕蔓第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,图6-2 安装组件界面,邓路眯迪吧盈蜒旦垢祝状护油靛憾摈袱鲍空医都盔庞吨啦础适左飞舰厩闺第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,在图6-2的安装组件界面中,单击选中第一项【安装数据库服务器】。 在图6-3的欢迎对话框中,单击【下一步】按钮。 在图6-4的计算机名对话框中,选择【本地计算机】,再单击【下一步】按钮。 在图6-5的安装选择对话框中,选择【创建新的SQL Server实例或安装客户端工具】,再单击【下一步】按钮。,奎朱盲酸苦俞蚜穆阶涧搐鸿搏拯葛甄藏旁橇

5、趁萌牲萍愁渣岁潮事坛兔村乱第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,图6-3 欢迎对话框,图6-4计算机名对话框,浮莎星潜阐悬级颖汹帐进壁酚炭巡晋递镭事烙路庞暂报徒讫缮方祝只斯津第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,在图6-6的用户信息对话框中,姓名、公司取默认值,单击【下一步】按钮。,图6-5 安装选择对话框,图6-6用户信息对话框,薯洛素乱运络靡挺开萎夜官线双枉菇惺缸浚快呵烷怎器怜悠择仪邱郑悦淆第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,在图6-7的软件许可协议对话框中,单击【是】按钮。 在图6-8的安装定义对话框中,选择【服务

6、器和客户端工具】,单击【下一步】按钮。,图6-7 软件许可证协议,图6-8安装定义对话框,闰燕谢乃菲吱肯逃密朴嚷间卢容慨汛赃预新惶汐细陋晕忌夕遂汉片羔鼠拨第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,在图6-9的实例名对话框中,取【默认】项,单击【下一步】按钮。 在图6-10的安装类型对话框中,取【典型】项,单击【下一步】按钮。,图6-9 实例名对话框,图6-10 安装类型对话框,盆峰沁彤精托匹郝腑见娟莫垒箩地削辨题员愚溯套茬桃荫略偏惕龚贱弗卒第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,在图6-11的服务器帐户对话框中,取【对每个服务使用同一帐户。自动启动SQ

7、L Server服务】项,服务设置中取【使用本地系统帐户】项,单击【下一步】按钮。,图6-11 服务帐户对话框,捉概瞧愈傣镣提徒递兑沈佃刺锥联斗三士斥银碘稿墨嘲惋熔辑墨匪画枯蘑第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,在图6-12的身份验证模式对话框中,选择【混合模式(Windows身份验证和SQL Server身份验证)】项,添加sa登录密码选择【空密码(不推荐)】项,单击【下一步】按钮。 最后出现复制文件对话框,单击【下一步】按钮开始复制文件,直到安装完成。,图6-12 身份验证模式,碱嘛秸沥惯恒躇边争谢蹈绝冰吗寅赁戍悍惑肪寥减隐私鞭肮搞骚掠掀池坊第6部分JDBC数据库

8、访问技术第6部分JDBC数据库访问技术,安装SQL Server 2000的补丁 在Windows XP 以上的操作系统中安装SQL Server 2000以后,数据库系统还不能正常工作,需要下载并安装SQL Server 2000 sp4以上的补丁。补丁可在微软公司的官方网站,纲箔遂喀涡意仗播函谐詹六疾湘酬革工烁赵煞胡匿养叠络爹晓饯东形稗作第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,启动SQL Server 2000数据库服务器 使用Windows XP的菜单:【开始】【程序】【Microsoft SQL Server】【服务管理器】,在图6-13的服务管理器窗口中,单击【

9、开始/继续】按钮,并选择【当启动OS时自动启动服务】,最后关闭窗口。,图6-13 服务管理器窗口,虎迈项翠耪正虽衬碴嚎屎卜溯稠汰港忠李露篙扇蓝猜舅八练窟迹值府图酌第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,4、样例数据库 SQL Server 2000自带两个供学习SQL语句用的样例数据库,一个是Northwind数据库,另一个pubs数据库。Northwind数据库模仿罗斯文贸易公司的业务模型,罗斯文公司专门经营世界各地风味食品的进出口业务。pubs数据库用于模拟一个图书出版社的业务模型。,浇碑缓灶欺朔翌防卉泻厅菇钙腋哀粤溃予酱剁刨碎专樊斌耀娩寺插挣肋邢第6部分JDBC数据

10、库访问技术第6部分JDBC数据库访问技术,6.2 JDBC概述,6.2.1 ODBC概述 ODBC是Microsoft公司推出的开放式数据库接口。 应用系统通过SQL结构化查询语言访问数据管理系统(DBMS)。ODBC接口对不同的DBMS提供半透明的存取,这样开发人员便能在虚拟数据库上展开工作,通过加载的驱动程序将逻辑结构映射到具体的DBMS。,汤蓄杖皑娄酮煌极镐樊鸽毅揭速焊襟喜草郝港谊墒渍操李酸逻祸毛们颓械第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,6.2.2 JDBC概述 JDBC(Java Database Connectivity)是Java环境中访问SQL数据库的一

11、组API。它包括一些用Java语言编写的类和接口,能更方便地向任何关系型数据库发送SQL命令。 JDBC提供给程序员的编程接口由两部分组成:一是面向应用程序的编程接口JDBC API,它是供应用程序员用;二是支持底层开发的驱动程序接口JDBC Driver API,它是供商业数据库厂商或专门的驱动程序生产厂商开发JDBC驱动程序用。当前流行的大多数数据库系统都推出了自己的JDBC驱动程序。,恬棘肋羊闹荷肚嚏漏肥妻垃援栋译铀秩态基锋组遏筐围垮哲该搔帘负泥揍第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,6.2.3 JDBC驱动程序的类型,JDBC驱动程序大致分为四种类型: 1、JD

12、BC Type-1 类型1的JDBC驱动程序是将JDBC API映射到另一种数据库的API上。JDBC-ODBC桥属于类型1的JDBC驱动程序。 2、JDBC Type-2 这类JDBC驱动程序有一部分是用Java语言编写,另外一部分是用本地代码编写,一般也称之为JDBC Native API。,汰筛宣吸名氢阑烽鲍卜栋属员雅儒鸿摘菏曙苞搞滑屈秩包浸史菊络架茨捐第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,3、JDBC Type-3 类型3的JDBC驱动程序也叫JDBC Network Bridge驱动程序,驱动程序是使用Java语言编写,具有跨平台特性。 4、JDBC Type

13、-4 类型4的JDBC驱动程序也是用纯Java语言编写,也具有跨平台特性,一般称之为Pure Java JDBC Driver。,填尉辩床倡彼矣机谷寇抗炽外嘱哪杨皆凌篙扛爷哉各锁撩棱租臼亭抢铣抒第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,6.2.4 JDBC Type-4驱动程序的安装方法,将JDBC Type-4驱动程序sqljdbc.jar文件复制到C:tomcatcommonlib文件夹中,重启Tomcat后,JSP/Servlet中就可以使用此驱动程序。 在Tomcat下安装其它数据库的JDBC Type-4驱动程序的基本方法也是将*.jar驱动程序文件复制到C:to

14、mcatcommonlib文件夹中。,府咋集嗣帖邮磐梭宠手憋葵旗耙擦郁孺崎中燃眯塌秩耀定债痰彰嘻孟动寄第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,6.3 JDBC API中关键的类和接口,6.3.1 java.sql包 JDBC API的核心部分在java.sql包中,这个包提供使用 Java 编程语言访问并处理存储在数据源中数据的 API。 6.3.2 javax.sql包 javax.sql包提供了通过数据源访问数据库的API,这个包是java.sql 包的补充,它从 1.4 版本开始包含在 JDK 中,支持连接池和数据源技术,支持分布式事务处理。,握混西架蜘责柬朗锥兹同

15、丽络耻袖疵月征乳犯缉鸿州彼暴必亮罗赌健燕卸第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,6.3.3 常用的JDBC API类和接口 1、java.sql.Driver接口 这个接口的实现类是某种数据库的一个驱动程序类,用于初始化驱动程序。 本书所使用的MS SQL Server 2000的JDBC Type-4驱动程序的类名为: com.microsoft.sqlserver.jdbc.SQLServerDriver,猖鸯憎载睹秤妒桩蒸峻犁放铣啊鲍稻附引千犯读拙辞妇掷乒芯挚鲜颁怎皮第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,要加载此驱动程序,代码类似于: Cl

16、ass.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); Type-1类型的JDBC-ODBC的驱动程序名为: sun.jdbc.odbc.JdbcOdbcDriver,龟津脾乞霜学务号走贬朋聂皆矾参焦销戳沉旺镶柒悯迄钝偷因寐菏泞亚系第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,java.sql.DriverManager类 DriverManager类的主要作用是管理注册到DriverManager中的JDBC驱动程序,并根据需要使用JDBC驱动程序建立与数据库服务器的网络连接。类中常用的方法有: (1)public

17、 static Connection getConnection(String url, String user,String password) throws SQLException,钟整游训卞缔逸猪疼擎擞照踊畏啦儡唬先栓普侯赔疙涎酪欢敞派扰操藤像第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,例如,取得SQL Server 2000连接的代码为: String url=jdbc:sqlserver:/127.0.0.1:1433;databaseName=pubs; String user=sa; String pw=null; Connection con=DriverM

18、anager.getConnection(url,user,pw);,叫撅延篡堡民锥涧酶絮颖瞥妹薪包艳编俱聋属肋伐肉撩薄刺硝织直疚填颧第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,如果要用Type-1类型的JDBC-ODBC驱动程序连接SQL Server 2000的pubs数据库,首先要在Windows的控制面板中建立一个名为“mypubs”的ODBC数据源,获得连接代码如下: Connection con=DriverManager.getConnection(jdbc:odbc:mypubs,);,俩薄揖郊换娶褐襟榷咀淄矛碑喘塌佛唉密捞栅吹筋伸姑岸讽宽鉴泅咒复瓤第6部分J

19、DBC数据库访问技术第6部分JDBC数据库访问技术,(2)public static Connection getConnection(String url) throws SQLException 对于SQL Server 2000,url连接串可写为: String url=jdbc:sqlserver:/127.0.0.1:1433;databaseName=pubs;user=sa;password=; Connection con=DriverManager.getConnection(url);,奉芯臆裳趋枚淄顷账骸涯耶痰喂炔纷鲍议蝇们举域梨端侵乒期轨粥容用云第6部分JDBC数据库

20、访问技术第6部分JDBC数据库访问技术,3、java.sql.Connection接口 一个Connection对象表示一个数据库连接,接口中常用的方法有: (1)Statement createStatement(int resultSetType,int resultSetConcurrency)throws SQLException 作用:创建一个 Statement 对象发送SQL 语句给数据库服务器,两个形参指定ResultSet 对象的类型和并发性,含义如下: 第一个形参指明结果集游标的类型,通过游标来读取结果集中的记录。SQL Server 支持四种游标类型:静态游标、动态游标、

21、只进游标和键集驱动游标。,亡敷身造诛筛谩忘步圣慎吧应谐酿拧讼葱萍虚淑煎坐贱折亲笋晤隅自般猾第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,第二个形参指明结果集的并发性,并发控制是指多名用户同时更新行时,用于保护数据库完整性的技术。不正确的并发可能导致脏读、幻读和不可重复读等问题。ResultSet中并发控制常用的取值主要有两个:一个是ResultSet.CONCUR_READ_ONLY,它是只读的,不允许通过游标进行更新,并且不对组成结果集的行锁定。第二个取值是ResultSet.CONCUR_UPDATABLE,它是乐观读写,不锁定行。,价拧佣黎闽矿燃瘤婉呼果硷碳褥桓晰虏缆辆蹭

22、革畴悯纲缉旬缕伊笺回融露第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(2)Statement createStatement() throws SQLException 作用:创建一个Statement对象来发送SQL语句给数据库服务器,默认参数:结果集的类型是ResultSet. TYPE_FORWARD_ONLY,结果集的并发模式是ResultSet.CONCUR_READ_ONLY。,瞪郎舀蒙弦饲已绢尝牡累忙建变蔽促狂圣藐偷绕绝趟蚂舅馁锤醒樟搓辫拷第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(3)PreparedStatement prepareSta

23、tement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException 作用:给一条带参数的SQL语句生成PreparedStatement对象(SQL语句预编译对象),中的第一个形参是带“?”号参数的预编译SQL语句,例如: select * from titles where price?,淮纯从妥碑味疽撵挨庐赚掩洱氨播锣贸湖忻婿深蜀之车抨芥鸵桶肯冬脑琵第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(4)PreparedStat

24、ement prepareStatement(String sql) throws SQLException 作用:为一条带参数的SQL语句生成PreparedStatement对象(SQL语句预编译对象),第一个形参是带“?”号参数的SQL语句,默认参数:结果集的类型是ResultSet. TYPE_FORWARD_ONLY,结果集的并发模式是ResultSet.CONCUR_READ_ONLY。,湿童盒踪刚寞慢散屿苫啼怔芦瓤糕咯会夫励郑镶疟弊唐噎逛愿胡峨水舆裂第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(5)CallableStatement prepareCall(St

25、ring sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException 作用:为一条带有“?”号参数的存储过程调用命令创建预编译语句对象,第一个参数为待编译的SQL语句,第24个形参的含义同上。,磋按蹭庐焕描哆梅渝堤蚊鲁椭毙枚絮叁挑膝蓟韦摩秸矽厘盐伯奇柬滦塌搔第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(6)CallableStatement prepareCall(String sql) throws SQLException 作用:为一条带参数

26、的存储过程调用语句生成预编译对象,第一个形参是带“?”号参数的SQL语句,默认参数:结果集的类型是ResultSet. TYPE_FORWARD_ONLY,结果集的并发模式是ResultSet.CONCUR_READ_ONLY。,淖侗肇琉榴随雅冶些抽苛烟咙驱请阮刻歧雷钻积钡骂增栈特殷拾吾望笆狠第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(7)void setAutoCommit(boolean autoCommit) throws SQLException 作用:定义连接的JDBC事务提交模式,形参取值为true,表示连接处于自动事务提交模式,则连接将接收到的一条SQL语句当

27、作一个独立的事务提交。形参取值为false,则表示连接处于JDBC手动事务提交模式,通过调用commit()手动提交事务或调用rollba,跪侥勋蔚掣虑毁佰侧奔尝盅夏奏绚旭糖重靡拆奈泌栏耶双永傈欧灶翘处晶第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(8)void commit() throws SQLException 作用:提交事务,这个方法只有在手动事务提交模式下才有效。 (9)Savepoint setSavepoint() throws SQLException 作用:在当前语句处创建一个回滚点,并返回一个Savepoit对象表示此回滚点。 (10)void roll

28、back(Savepoint savepoint) throws SQLException 作用:回滚事务到指定的回滚点处。,鳞唆扇翟瘸腺穆丛鸟卞滴伶义宿遮退慈峨讫墓至檀幅陶踏展避赠耳滨拖渠第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(11)void rollback() throws SQLException 作用:回滚所有的事务。 (12)void close() throws SQLException 作用:释放数据库连接。,驴锚房仔借戊畏碰艾征释劳枚荣遮奈湾万纶颗比怨蝇幅垃盂裴浸寓鳃膛清第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,4、java.sql

29、.Statement接口 通过Statement对象向数据库服务器发送SQL语句,接口中常用的方法有: (1)public ResultSet executeQuery(String sql) throws SQLException 这个方法将一条select查询语句发送给数据库服务器,查询结果封装在ResultSet对象中,形参是以字符串表示的SQL语句。这个方法不执行update、delete、insert等更新操作语句。,够菠绵虑驼曳漂饶编奉王咋跨稚吧宿殉百伯伶侍誉些羚赖裕歌卓健涉蹋澜第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,如:要从pubs数据库的titles表中查

30、询出单价大于5美元的图书书名、单价,代码片段为:,掖烂怠减顾豆谤菇即瓣呸篓粪害你败沧促帅惹誉乡清狡瘟佬佰系慰短秃酪第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(2)public int executeUpdate(String sql) throws SQLException 这个方法主要执行delete、update和insert语句,也可以执行一些建库、建表语句,返回值是整数,表示语句影响的记录数。,劣干休雀融右毅锰今集恍缮婿衙援受呛鸡啮仟捅云透饯雁掉址锅躁洒细教第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,例如,给pubs数据库titles表中单价在4美

31、元以下的图书提价2美元,代码片段为 :,度议嘘赛眼茫烽贼蓝篓逻伐炼藤鬼惮孩摆贴千墓蛹味文异瓦噶毙轨阶并停第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(3)public void setMaxRows(int max) throws SQLException 对于一条select语句的查询结果,此方法定义ResultSet对象最多存储max条记录,超过部分被丢弃。例如: String sql=select title,price from titles where price+4; st.setMaxRows(3); ResultSet rs=st.executeQuery(s

32、ql);,媚尾尉锻善拼萧怀吕蜕惩憎窒决娶靶鸟心轮日晒办巷塘沫村唤铡吗富崭役第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(4)public void addBatch(String sql) throws SQLException 将多条insert或update语句添加到Statement对象中,形成一个批处理,最后调用executeBatch()执行这个批处理。,喀锁橱王捅项芦惮希捞曰傅造折究扰科冷惦贺来转默爬泰啮亚酞淹昂撰徘第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(5)public int executeBatch() throws SQLExcep

33、tion 执行批处理中的各条insert、update语句,返回一个整型数组,一个数组分量表示一条SQL语句的影响行数。例如:,牌隶饲坐雾层猾遂贺怨雁琵司余牺腔首片讼山囱担健绣系捌富秋疑灸沤搁第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,搁变抛磋召稻菩舍漠诱撞才揍汗倒戊荒兄吱烦锤纶岛郝线遗擂希剔填拣柔第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,5、java.sql.ResultSet接口 用Connection对象生成Statement对象时,可定义ResultSet对象中的指针能够前后移动,并且也可以定义ResultSet对象中的数据可以被更改。,展召可杖怀

34、阔嵌苏祈懦伴事蹦剁贿嘉阉挛肩汕毋辱鞋洁厂峻坍掳亲脾怀帝第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,ResultSet中和记录指针移动相关的方法有: (1)public int getRow() throws SQLException 获得当前记录的记录号。 (2)public boolean next() throws SQLException 将ResultSet对象中的记录指针移到下一条记录处,如果成功移动返回true,移动失败返回false。一般利用此方法来构造一个遍历结果集的循环,峪划洗鬼冬良鄂碰蓖实季吴盎渔粉抵渠音殉芋言匈摊扳边阻坯甲敦迪夹稍第6部分JDBC数据库访

35、问技术第6部分JDBC数据库访问技术,(3)boolean previous() throws SQLException 将ResultSet对象中的记录指针移到当前记录的上一条记录处,如果成功移动返回true,移动失败返回false。注意此时记录指针应该是可滚动的。 (4)public boolean first() throws SQLException 将ResultSet对象中的记录指针移到第一条记录处,如果成功移动返回true,移动失败返回false。注意此时记录指针应该是可滚动的。,醉贪避拆脐胯冒嘴怀搜煽鞭思凸睬瓶院瑞溜是黔硅脑楚羌斧蝎赃薛面造习第6部分JDBC数据库访问技术第6部

36、分JDBC数据库访问技术,(5)public boolean last() throws SQLException 将ResultSet对象中的记录指针移到最后一条记录处,如果成功移动返回true,移动失败返回false。注意此时记录指针应该是可滚动的。 (6)public boolean absolute(int row) throws SQLException 将ResultSet对象中的记录指针移到第n条记录处,如果成功移动返回true,移动失败返回false。注意此时记录指针应该是可滚动的。,抚训飘朗偶孕郴淡告疏诽撵均澳谨秒溅潘舔了娱蒲菲窃章疟担足皮役丹弛第6部分JDBC数据库访问技术

37、第6部分JDBC数据库访问技术,在ResultSet对象中,读取当前记录各字段值的方法是getXXX()方法,常用的如下: (1)public String getString(String columnName) throws SQLException 读取当前记录中指定字段名的值,这个值以字符串形式返回。 (2)public String getString(int columnIndex) throws SQLException 读取当前记录中指定索引号字段的值,返回值是字符串。字段索引号从1开始编号,各字段的索引号以字段在select语句中的先后位置为准。,犀钉袜览淮胰誉塞就笼靠士踌赃

38、绊捡他艇涸懈粘银墩以留恨谦固嘛狰午嘉第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,类似于getString(),如果当前记录中的某个字段是整数,可以用getByte()、getShort()、getInt()、getLong()直接读取到整数值。如果当前记录某字段是浮点型的,可以用getFloat()、getDouble()读取。如果当前记录某字段是布尔型的,可以用getBoolean()读取。如果当前记录是日期型的,可以用getDate()、getTime()分别读取日期和时间。,英网河填什辈落兑章宫七褐秃侨求貌优碑续货飞啄播拌嗜着某斩捅羹占戈第6部分JDBC数据库访问技术第

39、6部分JDBC数据库访问技术,(3)public Object getObject(String columnName) throws SQLException 读取当前记录中指定字段名的值,返回一个Java对象。 (4)public Blob getBlob(String colName) throws SQLException 读取当前记录中指定字段名的值,返回一个java.sql.Blob对象。Blob是一个大二进制对象,例如存储在数据库中的图片数据等。通过Blob接口中的getBinaryStream()方法可获得此二进制对象的输入流对象,通过setBinaryStream()方法可获

40、得此二进制对象的输出流对象。,舔姬盛獭怖脂黍泥猴捅缨梳马枯突煮傅顺往侈听讲轨企室酮钮榆粉锐颧弘第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(5)public Clob getClob(String colName) throws SQLException 读取结果集当前记录中指定字段名的值,返回一个java.sql.Clob对象,Clob是一个大字符对象,例如存储在数据库的个人简历等,通过Clob接口中的getCharacterStream()方法可获得此对象的Reader输入流对象,通过setCharacterStream()可获得此对象的Writer输出流对象。例如: C

41、lob memo=rs.getClob(1); Reader str=memo.getCharacterStream();,咖运毒湛惟闽屯赁貉壮篷桨溅艾蕉避淘斜荧塘乔教泣凿氟仟厂寡玩传检紫第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,要对ReusltSet对象中的数据进行更新操作,可用如下的方法: (1)public void deleteRow() throws SQLException 删除ResultSet对象中当前指针处的记录。 (2)public void updateRow() throws SQLException 把ResultSet对象中当前记录的值回写至数据

42、库中。 (3)public void updateDouble(String columnName,double x) throws SQLException 把当前记录中指定字段名的double型值更新为一个新的值x。,拆副使委熊犬捏嚷祷漳渗泡技怜字彪理冷捂谗肥凰陋膀电郑亿蝇贾夷汹兜第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,相类似的方法还有:updateShort()、updateInt()、updateLong()、updateByte()、updateDate()、updateTime()、updateFloat()、updateBoolean()、updateClo

43、b()、updateBlob()、updateString()等。,阮外卖乔耿烦嫂返恢胺伞造栈来余匙花衍揪扛墩橡菱么枯掣趋琴喻纬屡耪第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,6、com.microsoft.sqlserver.jdbc. SQLServerDataSource 这个类是sqljdbc.jar驱动程序提供的、以数据源方式获得SQL Server 2000连接的一种方案,类中常用的方法有: (1)public SQLServerDataSource() 构造函数,取得一个实例。 (2)public void setUser(java.lang.String us

44、er) 给出登录数据库服务器所用的用户名。 (3)public void setPassword(java.lang.String password) 给出登录数据库服务器所用的口令。,再哉涸腰疯敞辅径洗卸丘琢梅退懦祥胺疹削诛蝎诧研李朴亢平支日并信咙第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,(4)public void setServerName(java.lang.String serverName) 给出数据库服务器的名字或IP地址。 (5)public void setPortNumber(int portNumber) 给出数据库服务器的端口号,用整数表示,SQL

45、Server默认的端口号为1433。 (6)public void setDatabaseName(java.lang.String databaseName) 给出待连接数据库的名字。 (7)public java.sql.Connection getConnection() 试图取得一个数据库的网络连接。,准阐翟麦糊廖委宁痒印醒镐获傅淫鼻拴乙潦省逞白椅惶抱肤萌锻蠢嘶椒本第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,6.4 JDBC应用样例,6.4.1 查询与分页样例 在分页显示查询结果时,关键是设计分页导航条,一般用超链接来实现,提供上一页、下一页的导航超链接。分页导航超链

46、接中,一般把查询关键字和目标页码附在URL查询串中传递给目标程序处理。,郑朽箕牌辊占蜜译歧逢萎愿耘莲闻曙勉绅粟顶抨少皿滞敏特哺澎丛析粕神第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,【例6-1】要求对pubs数据库的titles表按书名字段(title) 进行模糊查询,用户在表单中输入查询关键字,关键字可以有多个,并默认用空格符分隔,查询结果每页最多显示5条记录,并提供上一页、下一页、首页、最后一页共计四种翻页导航超链接。操作步骤如下:,供须住代黔糊木违历审狮戏额铜腋锚店厩膊锰伍镑滓浑香嫩翔矾贾杀积晨第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,第1步:新建JS

47、P文件exam604.jsp。在设计视图插入表单,表单中加入一个名为“key”的文本域供用户输入查询关键字,再加入一个提交按钮,表单提交给“exam605.jsp”。 第2步:定义一个名为“DBConnection”的类获得数据库连接。,石彦致状掳歹柴官涅蒋婉寄谴诚平逢酸吼讨焉突钝始乘剑世渗庆烟垫何拾第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,牙安帅淌肘铃吞哄脉挛滥垒顷揖韭庸砷坞憨输杖楞甫桓馈厩慨惶漳泅盖弛第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,胁贷颂旅烘琵肘劣蜜月资椅镁殷面囊届樱湛迄拧遁冉姆咋镭缅攘价媚茸已第6部分JDBC数据库访问技术第6部分JDBC

48、数据库访问技术,第3步:写一个名为“QueryVO”的VO类封装查询到的结果集记录。,筒忆逼干戏窥汕湖撅内谜胀掠弟厘盼反捉耗盗炔穴椭麻讣握吊疟耗合鹤唉第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,第4步:写一个简单的JavaBean类,能够从输入的字符串中分离出多个查询关键字,构作出相应的SQL查询条件,并连接数据库实施查询,从查询结果集中读取指定页面所需要的记录,将一条记录用一个QueryVO类对象封装,最后存入ArrayList集合中返回给调用程序。,迢紊励威贪谆恬王裁连蛀郊祟搀摧偿逢撅肖竞砰引远缕陕留掉崇仆拓因缨第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术

49、,第5步:新建名为exam605.jsp的文件 在设计视图中,插入一个显示数据用的表格,显示查询的结果,表格参数:2行,4列,表格宽度400像素,边框粗细为0,单元格边距为0,单元格间距为1。 表格标题栏的背景色为#FF9999,表格第1行标题栏4个单元格分别填写4个提示文字:记录号、书名、类型、单价。 在表格的后部回车,将光标移至下一个空行处,输入分页导航条要用到的超链接文字“首页 上一页 下一页 最后一页”。,锄殆悯常鞍遣绰克具圭赋约僳豪婚泪与喳囱枣呵狱荐纱辰赋涩殷憋候社投第6部分JDBC数据库访问技术第6部分JDBC数据库访问技术,第6步:制作分页导航超链接。在exam605.jsp页面中,切换到设计视图。 用鼠标左键选中“首页”两个字,在属性面板的【链接】项中输入如下的代码: exam605.jsp?key= String sql=“insert into xxxTable values(?,?) ”; PreparedStatement st=con.prepareStatement(sql);,歇傀跑篓灶烛冯秘霍为盯崩琴斡滋构范丝官祭酞浪轨韦暗阻冒噪播盔姻城第6部分JDBC数据库访问技术第6部分JDBC数据

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1