ImageVerifierCode 换一换
格式:PPT , 页数:45 ,大小:1.32MB ,
资源ID:13366834      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/13366834.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(第11章 JDBC数据库操作.ppt)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

第11章 JDBC数据库操作.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,11,章,JDBC,数据库操作,11.1 Microsoft Access,数据库管理系统,11.1.1,建立数据库,单击“开始”“所有程序”“,Microsoft,Office”“Microsoft,Access”,,在新建数据库界面选择“空,Access,数据库”,然后命名、保存新建的数据库,在这里我们命名的数据库是,shop,,保存在,C:ch11,中,图,11.1,建立新,Access,的数据库,图,11.2,保存,Access,的数据库,11.1.2,创建表,创建好数据库后,就可以在该数据

2、库下建立若干个表。我们准备在,shop,数据库中创建名字为,goods,的表。在,shop,管理的“表”的界面上选择“使用设计器创建表”,然后单击界面上的“设计”菜单,将出现相应的建表界面,我们建立的表是,goods,,该表的字段(属性)为:,number(,文本,)name(,文本,),madeTime,(,日期,)price(,数字,双精度,),。,其中,“,number”,字段为主键(在该字段上单击鼠标右建来设置字段是否是主建),在,shop,管理的“表”的界面上,用鼠标双击已创建的,goods,表可以为该表添加记录,图,11.3 goods,表及字段属性,图,11.4,向,goods,

3、表添加记录,11.2 JDBC,为了使,Java,编写的程序不依赖于具体的数据库,,Java,提供了专门用于操作数据库的,API,,即,JDBC,连接,使用,JDBC,之应用程序所驻留的计算机,应用程序,JDBC,数据库,使用,图,11.5,使用,JDBC,操作数据库,我们经常使用,JDBC,进行如下的操作:,与一个数据库建立连接,,向已连接的数据库发送,SQL,语句,,处理,SQL,语句返回的结果。,11.3,连接数据库,11.3.1,连接方式的选择,和数据库建立连接的常用两种方式是:建立,JDBCODBC,桥接器和加载纯,Java,数据库驱动程序,为了便于教学,本章使用,JDBCODBC,

4、桥接器方式和数据库建立连接,JDBCODBC,桥接器的优点是:,ODBC(Open,DataBase,Connectivity),是,Microsoft,引进的数据库连接技术,提供了数据库访问的通用平台,而且,ODBC,驱动程序被广泛的使用,建立这种桥接器后,使得,JDBC,有能力访问几乎所有类型的数据库。缺点是:使得应用程序依赖于,ODBC,,移植性较差,也就是说,应用程序所驻留的计算机必须提供,ODBC(,使用加载纯,Java,数据库驱动程序连接数据库的优点是不依赖平台,),。,图,11.6,使用,JDBC,ODBC,桥接器方式,ODBC,数据源,1,(Oracle,数据库,),ODBC,

5、数据源,2,(Access,数据库,),ODBC,数据源,3,(,SQLServer,数据库,),连接,使用,JDBC,之应用程序所驻留的计算机,应用程序,JDBC,使用,ODBC,连接,连接,建立桥接器,11.3.2,建立,JDBC-ODBC,桥接器,JDBC,使用,java.lang,包中的,Class,类建立,JDBC-ODBC,桥接器。,Class,类通过调用它的静态方法,forName,加载,sun.jdbc.odbc,包中的,JdbcOdbcDriver,类建立,JDBC-ODBC,桥接器。建立桥接器时可能发生异常,必须捕获这个异常,建立桥接器的代码是:,try,Class.for

6、Name(sun.jdbc.odbc.JdbcOdbcDriver,);,catch(ClassNotFoundException,e),System.out.println(e,);,11.3.3 ODBC,数据源,1,创建、修改或删除数据源,选择“控制面板”“管理工具”“,ODBC,数据源”(某些,window/,xp,系统,需选择“控制面板”“性能和维护”“管理工具”“,ODBC,数据源”),图,11.7,添加、修改或删除数据源,2,为数据源选择驱动程序,在图,11.7,所示的界面上选择单击“添加”按钮,出现为新增的数据源选择驱动程序界面,图,11.8,为新增的数据源选择驱动程序,3,数

7、据源名称及对应数据库的所在位置,在图,11.8,界面单击完成按钮将出现设置数据源具体项目的对话框,图,11.9,设置数据源的名字和对应的数据库,11.3.4,建立连接,编写连接数据库代码不会出现数据库的名称,只能出现数据源的名字。首先使用,java.sql,包中的,Connection,类声明一个对象,然后再使用类,DriverManager,调用它的静态方法,getConnection,创建这个连接对象:,Connection con=,DriverManager.getConnection(jdbc:odbc,:,数据源名字,login name,password);,假如没有为数据源设置

8、login name,和,password,,那么连接形式是:,Connection con=,DriverManager,.,getConnection(jdbc:odbc,:,数据源名字,);,为了能和数据源,myData,交换数据,建立连接时应捕获,SQLException,异常:,try Connection con=,DriverManager.getConnection(jdbc:odbc:myData,);,catch(SQLException,e),11.4,查询操作,1,向数据库发送,SQL,查询语句,首先使用,Statement,声明一个,SQL,语句对象,然后让已创建的

9、连接对象,con,调用方法,createStatment,(),创建这个,SQL,语句对象,代码如下:,try Statement,sql,=,con.createStatement,();,catch(SQLException,e),2,处理查询结果,有了,SQL,语句对象后,这个对象就可以调用相应的方法实现对数据库中表的查询和修改,并将查询结果存放在一个,ResultSet,类声明的对象中。也就是说,SQL,查询语句对数据库的查询操作将返回一个,ResultSet,对象,,ResultSet,对象是以统一形式的列组织的数据行组成。,ResultSet,对象一次只能看到一个数据行,使用,ne

10、xt(),方法走到下一数据行,获得一行数据后,,ResultSet,对象可以使用,getXxx,方法获得字段值,将位置索引(第一列使用,1,,第二列使用,2,等等)或列名传递给,getXxx,方法的参数即可,11.4.1,顺序查询,怎样知道一个表中有哪些字段呢?通过使用,JDBC,提供的,API,,可以在查询之前知道表中的字段的个数和名字,这有助于编写可复用的查询代码,当创建好连接对象,con,之后,那么该连接对象调用,getMetaData,(),方法可以返回一个,DatabaseMetaData,对象,例如:,DatabaseMetaData,metadata=,con.getMetaDa

11、ta,();,Metadata,对象再调用,getColumns,可以将表的字段信息以行列的形式存储在一个,ResultSet,对象中,例如:,ResultSet,tableMessage,=,metadata.getColumns(null,null,goods,null,);,如果,goods,表有,n,个字段,,tableMessage,就刚好有,n,行、每行,4,列。每行分别含有和相应字段有关的信息,信息的次序为:“数据库名”、“数据库扩展名”、“表名”,“字段名”。,tableMessage,对象调用,next,方法使游标向下移动一行,(,游标的初始位置在第,1,行之前,),,然后,

12、tableMessage,调用,getXXX,方法可以查看该行中列的信息,11.4.2,控制游标,有时候需要在结果集中前后移动、显示结果集中某条记录或随机显示若干条记录等。这时,必须要返回一个可滚动的结果集。为了得到一个可滚动的结果集,需使用下述方法获得一个,Statement,对象:,Statement stmt=,con.createStatement(int,type,int,concurrency);,然后,根据参数的,type,、,concurrency,的取值情况,,stmt,返回相应类型的结果集:,ResultSet,re=,stmt.executeQuery(SQL,语句,);

13、type,的取值决定滚动方式,取值可以是:,ResultSet.TYPE_FORWORD_ONLY,:结果集的游标只能向下滚动。,ResultSet.TYPE_SCROLL_INSENSITIVE,:结果集的游标可以上下移动,当数据库变化时,当前结果集不变。,ResultSet.TYPE_SCROLL_SENSITIVE,:返回可滚动的结果集,当数据库变化时,当前结果集同步改变。,Concurrency,取值决定是否可以用结果集更新数据库,,Concurrency,取值:,ResultSet.CONCUR_READ_ONLY,:不能用结果集更新数据库中的表。,ResultSet.CONCUR

14、UPDATABLE,:能用结果集更新数据库中的表。,滚动查询经常用到,ResultSet,的下述方法:,public,boolean,previous(),:将游标向上移动,该方法返回,boolean,型数据,当移到结果集第一行之前时返回,false.,public void,beforeFirst,:将游标移动到结果集的初始位置,即在第一行之前。,public void,afterLast,(),:将游标移到结果集最后一行之后。,public void first(),:将游标移到结果集的第一行。,public void last(),:将游标移到结果集的最后一行。,public,bool

15、ean,isAfterLast,(),:判断游标是否在最后一行之后。,public,boolean,isBeforeFirst,(),:判断游标是否在第一行之前,public,boolean,ifFirst,(),:判断游标是否指向结果集的第一行。,public,boolean,isLast,(),:判断游标是否指向结果集的最后一行。,public,int,getRow,(),:得到当前游标所指行的行号,行号从,1,开始,如果结果集没有行,返回,0,public,boolean,absolute(int,row),:将游标移到参数,row,指定的行号。,11.4.3,条件查询,见例,11-4,

16、11.4.4,排序查询,可以在,SQL,语句中使用,ORDER BY,子语句对记录排序,例如,按,price,排序查询的,SQL,语句:,SELECT*FROM goods ORDER BY price,11.4.5,模糊查询,可以用,SQL,语句操作符,LIKE,进行模式般配,使用“,%”,代替零个或多个字符,用一个下划线“,_”,代替一个字符,用,abc,代替,a,、,b,、,c,中的任何一个。比如,下述语句查询商品名称中含有“电”或“箱”的记录:,rs,=,sql.executeQuery(SELECT,*FROM goods WHERE name LIKE,电箱,%);,11.5,更新

17、添加与删除操作,Statement,对象调用方法:,public,int,executeUpdate,(,String,sqlStatement,),;,通过参数,sqlStatement,指定的方式实现对数据库表中记录的更新、添加和删除操作。更新、添加和删除记录的,SQL,语法分别是:,UPDATE SET =,新值,WHERE,INSERT INTO,表,(,字段列表,)VALUES,(对应的具体的记录)或,INSERT INTO,表,(VALUES,(对应的具体的记录),DELETE FROM WHERE,11.6,使用预处理语句,Java,提供了更高效率的数据库操作机制,就是,Pre

18、paredStatement,对象,该对象被习惯地称作预处理语句对象。,11.6.1,预处理语句优点,如果应用程序能针对连接的数据库,事先就将,SQL,语句解释为数据库地层的内部命令,然后直接让数据库去执行这个命令,显然不仅减轻了数据库的负担,而且也提高了访问数据库的速度。,对于,JDBC,,如果使用,Connection,和某个数据库建立了连接对象,con,,那么,con,就可以调用,prepareStatement(String,sql,),方法对参数,sql,指定的,SQL,语句进行预编译处理,生成该数据库地层的内部命令,并将该命令封装在,PreparedStatement,对象中,那么

19、该对象调用下列方法都可以使得该地层内部命令被数据库执行,,ResultSet,executeQuery,(),boolean,execute(),int,executeUpdate,(),只要编译好了,PreparedStatement,对象,那么该对象可以随时地执行上述方法,显然提高了访问数据库的速度。,11.6.2,使用统配符,在对,SQL,进行预处理时可以使用统配符“?”来代替字段的值,只要在预处理语句执行之前再设置统配符所表示的具体值即可。例如:,sql,=,con.prepareStatement(SELECT,*FROM goods WHERE salary?);,那么在,sql,

20、对象执行之前,必须调用相应的方法设置统配符“?”代表的具体值,比如:,sql.setFloat(1,76.98);,指定上述预处理,SQL,语句中统配符“?”代表的值是,76.389,通配符按着它们在预处理,SQL,语句中从左到右依次出现的顺序分别被称做第,1,个、第,2,个,第,m,个统配符。比如,下列方法:,void,setFloat(int,parameterIndex,int,x),用来设置通配符的值,其中参数,parameterIndex,用来表示,SQL,语句中从左到右的第,parameterIndex,个统配符号,,x,是该统配符所代表的具体值,尽管,sql,=,con.prep

21、areStatement(SELECT,*FROM goods WHERE price?);,sql.setFloat(1,30.98);,的功能等同于,sql,=,con.prepareStatement(SELECT,*FROM goods WHERE price 3000);,之后立刻关闭连接:,con.close,();,那么输出结果集中的数据的代码:,while(rs.next,(),就无法执行。在前面的诸多例子,必须在操作结果集,ResultSet,的语句之后才执行关闭连接:,con.close,();,com.sun.rowset,包提供了,CachedRowSetImpl,类,

22、该类实现了,CachedRowSet,接口。,CachedRowSetImpl,对象可以保存,ResultSet,对象中的数据,而且,CachedRowSetImpl,对象不依赖,Connnection,对象,这意味着一旦把,ResultSet,对象中的数据保存到,CachedRowSetImpl,对象中后,就可以关闭和数据库的连接。,CachedRowSetImpl,继承了,ResultSet,的所有方法,因此可以像操作,ResultSet,对象一样来操作,CachedRowSetImpl,对象。将,ResultSet,对象,rs,中的数据保存到,CachedRowSetImpl,对象,rowSet,中的代码如下:,rowSet.populate(rs,);,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服