欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    应用JDBC进行数据库开发.ppt

    • 资源ID:6279892       资源大小:318.49KB        全文页数:55页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    应用JDBC进行数据库开发.ppt

    第10章 应用JDBC进行数据库开发,本章学习目标:,了解JDBC的用途、体系结构和驱动器类型。了解JDBC连接数据库的方法。掌握JDBC访问数据的过程。掌握Statement接口及相关常用方法。掌握PreparedStatement接口及相关常用方法。了解CallableStatement接口。掌握ResultSet处理结果集。了解使用JDBC连接其他数据库。掌握连接池的原理及如何配置。熟悉从数据库中存取各种二进制文件。熟悉分页技术。,10.1 JDBC概述,JDBC是一种可用于执行SQL语句的Java API(Application Programming Interface应用程序设计接口)。它由一些Java语言编写的类和页面组成。,10.1.1 JDBC的用途,简单地说,JDBC主要有3种作用,分别是:与数据库连接发送SQL语句处理语句执行结果。,10.1.2 JDBC的典型用法,JDBC支持两层模型,也支持三层模型访问数据库。在两层模型中,一个Java Applet或者一个Java应用直接同数据库连接。,在三层模型中,命令将被发送到服务的“中间层”,而“中间层”将SQL语句发送到数据库。,10.1.3 JDBC体系结构,10.1.4 驱动器类型,1.JDBC-ODBC桥驱动程序2.部分本地API Java驱动程序3.JDBC纯网络Java驱动程序4.本地协议的纯Java驱动程序,10.1.5 安装驱动器,(1)下载压缩包名为,解压缩至硬盘,目录下名为的文件就是JDBC驱动。(2)将文件复制到%TOMCAT_HOME%/common/lib目录下(3)将C:Program FilesApache Software FoundationTomcat 5.5commonlib写入CLASSPATH,10.2 JDBC连接数据库的方法,1.与数据源直接通信,2.通过JDBC驱动程序通信,3.与ODBC数据源通信JDBC通过JDBC-ODBC桥与ODBC数据源相连,从而实现Java与数据库的连接,这是一种最容易和最常用的实现方法。,10.3 使用JDBC操作数据库,JDBC的接口分为两个层次:一个是面向程序开发人员的JDBC API,另外一个是底层的JDBC Driver API。,10.3.1 使用JDBC访问数据库的过程,JDBC访问数据库可以分为连接数据库和操作数据库两个步骤。,1.JDBC连接数据库JDBC连接数据库分为加载驱动程序和建立连接两个步骤。String driverName=com.mysql.jdbc.Driver;Class.forName(driverName);,(2)建立连接DriverManager类的getConnection方法用于建立与某个数据源的连接,例如:String url=jdbc:mysql:/localhost/sql_test;Connection con=DriverManager.getConnection(url);,2.JDBC操作数据库JDBC连接数据库之后,就可以对数据库中的数据进行操作了。可按以下步骤进行。(1)执行SQL语句(2)检索结果(3)关闭连接,10.3.2 使用Statement执行SQL语句,java.sql包下有两个非常重要的接口 Statement与ResultSet.Statement与ResultSet类型对象在整个JSP网页当中所扮演的角色。,Statement对象的方法close()结束对象,释放占用资源addBatch(String sql)将要运行的SQL指令加到批处理指令中clearBatch()清除所有的SQL批处理运行指令executeBatch()运行SQL批处理指令execute(String sql)运行SQL一般指令executeQuery(String sql)运行SQL查询指令,如select指令executeUpdate(String sql)运行SQL更改指令,如insert、delete、updategetConnection()返回产生这个Statement对象的Connection对象setMaxRows(int max)设置ResultSet对象中可包含的最多数据笔数为maxgetMaxRows()返回ResultSet对象中可包含的最多数据笔数,1.executeQuery方法,方法executeQuery用于执行产生单个结果集的SQL语句,如Select语句。executeQuery方法在Statement接口中完整的声明如下:ResultSet executeQuery(String sql)throws SQLException;,2.executeUpdate方法,executeUpdate运行给定的 SQL 语句,可以是 INSERT、UPDATE 或 DELETE 语句;或不返回任何内容的 SQL 语句 executeUpdate方法在Statement接口中完整的声明如下:int executeUpdate(String sql)throws SQLException;,3.execute方法,Execute方法用于执行返回多个结果集、多个更新计数或二者组合的语句。executeUpdate方法在Statement接口中完整的声明如下:boolean execute(String sql)throws SQLException;,4.executeBatch方法,executeBatch方法用于成批的执行sql语句,但不能执行返回值是ResultSet结果集的sql语句,例如:select。executeBatch方法在Statement接口中完整的声明如下:int executeBatch(String sql)throws SQLException;为了配合该操作还有两个辅助方法:addBatch:向批处理中加入一个更新语句clearBatch:清空批处理中的更新语句,10.3.3 PreparedStatement接口,1.与Statement的异同PreparedStatement与Statement在两方面有所不同:PreparedStatement实例包含已编译的SQL语句,这就是使语句“准备好”。包含于PreparedStatement对象中的SQL语句可具有一个或多个IN参数。IN参数的值在SQL语句创建时未被指定。相反,该语句为每个IN参数保留一个问号“?”作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX方法来提供。,2.创建PreparedStatement对象,以下的代码段(其中con是Connection对象)创建包含带两个IN参数占位符的SQL语句的PreparedStatement对象。PreparedStatement pstmt=con.prepareStatement(UPDATE test SET a=?WHERE b=?);,3.传递IN参数,在执行PreparedStatement对象之前,必须设置每个问号“?”的参数值。可以通过调用setXXX方法来完成,其中XXX是与该参数对应的类型。,4.IN参数中数据类型的一致性,setXXX方法中的XXX是Java类型,它是一种隐含的JDBC类型(一般为SQL类型),因为驱动程序将把Java类型映射为相应的JDBC类型,并将该JDBC类型发送给数据库。,5.使用setObject,程序员可使用setObject方法显式地将输入参数转换为特定的JDBC类型。该方法可以接受第三个参数,用来指定目标JDBC类型。将JavaObject发送给数据库之前,驱动程序将把它转换为指定的JDBC类型。,6.将JDBC NULL作为IN参数发送,setNull方法允许程序员将JDBCNULL值作为IN参数发送给数据库。但要注意,仍然必须指定参数的JDBC类型。当把Java null值传递给setXXX方法时(如果它接受Java对象作为参数),也将同样把JDBC NULL发送到数据库。但仅当指定JDBC类型时,setObject方法才能接受null值。,7.发送大的IN参数,setBytes和setString方法能够发送无限量的数据。,10.3.4 CallableStatement对象,CallableStatement对象为所有的DBMS提供了一种以标准形式调用存储过程的方法。存储过程储存在数据库中。对存储过程的调用是CallableStatement对象所含的内容。这种调用是用一种换码语法来写的,有两种形式:一种形式带结果参数,另一种形式不带结果参数。结果参数是一种输出(OUT)参数,是存储过程的返回值。两种形式都可带有数量可变的输入(IN参数)、输出(OUT参数)或输入和输出(INOUT参数)的参数。问号将用作参数的占位符。,10.3.5 使用ResultSet处理结果集,ResultSet类型的对象由于是一个数据集合,因此必须考虑到指针的移动以便从该集合对象中取得所要的数据,所以在ResultSet接口中所定义的方法大都是用来控制指针移动的,当用任何一种statement来进行JDBC操作的时候 都可以用不同的参数来确定结果集返回的状态,包括可读可写和游标的指向类型.Statement语句:createStatement(intresultSetType,intresultSetConcurrency)PreparedStatement语句:preparedStatement(String sql,intresultSetType,intresultSetConcurrency)CallableStatement语句:preparedCall(String sql,intresultSetType,intresultSetConcurrency),参数说明:,resultSetType:ResultSet.TYPE_FORWARD_ONLY(结果集不可滚动)ResultSet.TYPE_SCROLL_INSENSITIVE(结果集可滚动,但对底层数据变化不敏感)ResultSet.TYPE_SCROLL_SENSITIVE(结果集可滚动,但对底层数据变化敏感)resultSetConcurrency:ResultSet.CONCUR_READ_ONLY(结果集不可更新)ResultSet.CONCUR_UPDATABLE(结果集可更新),10.4 Java与SQL的数据类型转换,Java和SQL各自有一套自己定义的数据类型(JSP的数据类型实际上就是Java的数据类型),要在JSP程序和数据库管理系统之间正确地交换数据,必然要将二者的数据类型进行转换。,10.5 使用JDBC连接不同的数据库,JDBC对各种数据库的访问,不同之处在于连接数据库。连接数据库之后的各种操作,基本上都是相同的。,10.5.1 连接Oracle数据库,JDBC使用thin模式连接Oracle数据库,连接代码如下:/载入驱动程序类别Class.forName(oracle.jdbc.driver.OracleDriver).newInstance();String url=jdbc:oracle:thin:localhost:1521:orcl;/orcl为数据库的SID/数据库用户名String user=test;/数据库密码String password=test;/获得Connection对象Connection dbConn=DriverManager.getConnection(url,user,password);,10.5.2 连接DB2数据库,JDBC连接DB2数据库的代码如下:/载入驱动程序类别Class.forName(com.ibm.db2.jdbc.app.DB2Driver).newInstance();String url=jdbc:db2:/localhost:5000/test;/test为数据库名/数据库用户名String user=admin;/数据库密码String password=123456;/获得Connection对象Connection dbConn=DriverManager.getConnection(url,user,password);,10.5.3 连接SQL Server数据库,JDBC连接SQL Server数据库的代码如下:/载入驱动程序类别Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).newInstance();String url=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=test;/test为数据库名/数据库用户名String user=sa;/数据库密码String password=123456;/获得Connection对象Connection dbConn=DriverManager.getConnection(url,user,password);,10.5.4 连接Sybase数据库,JDBC连接Sybase数据库的代码如下所示:Class.forName(com.sybase.jdbc.SybDriver).newInstance();String url=jdbc:sybase:Tds:localhost:5007/test;/test为数据库 Properties sysProps=System.getProperties();/数据库用户名SysProps.put(user,admin);/数据库密码SysProps.put(password,123456);/获得Connection对象Connection dbConn=DriverManager.getConnection(url,SysProps);,10.5.5 连接Access数据库,/载入驱动程序类别Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection dbConn=DriverManager.getConnection(jdbc:odbc:test);/test为数据源的名称,10.6 连接池,。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接,从而避免因为没有释放数据库连接而引起的数据库连接遗漏,这样可以显著提高对数据库操作的性能。,10.6.1 连接池的实现原理,(1)创建连接池(2)分配、释放策略(3)配置策略,10.6.2 在Tomcat上配置数据源与连接池,下面通过一个具体的实例来介绍如何配置Tomcat服务器的连接池。这里以Tomcat 5.5连接MySQL数据库为例,10.6.3 配置连接池时需要注意的问题,(1)最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费。(2)最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。(3)如果最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接,这些大于最小连接数的数据库连接在使用完之后不会马上被释放,而是被放到连接池中等待重复使用或是空闲超时后被释放。,10.7 存取二进制文件,在二进制文件内存储的是二进制数据流,它把数据在内存中存储的形式原样输出到磁盘上。,10.7.1 图像文件存取到数据库的过程,在JSP编程环境中解决办法很多,最常用的一种方法是在数据库中保存相应的图片资料的名称,然后在JSP中建立相应的数据源,利用数据库访问技术处理图片信息。但是如果图像是以二进制数据格式存储在数据库中时,就不能使用上面的方法来读取了。下面将介绍如何将图片以二进制数据格式存储到数据库中并将其读出。,10.7.2 声音文件存取到数据库的过程,有时候需要在数据库中存储声音文件,例如音乐网站需要在数据库内存储大量的声音文件。和存储图像类似,数据库中可以保存声音文件的URL地址,也可以直接将声音文件以二进制数据格式存储到数据库中。下面就介绍如何将声音文件以二进制数据格式保存到数据库中,并将其从数据库中读取出来。,10.7.3 视频文件存取到数据库的过程,现在很多网站都需要从数据库中存储、读取视频文件,如新闻网站需要在页面上播放新闻采访视频、一些电影网站需要存储和读取电影视频文件等,下面就介绍如何在数据库存储和读取视频文件。,使用的都是Windows media player 9,但是这里要注意设置播放器的大小要比声音文件的大一些,否则页面中看不到视频播放窗口,其相关代码如下。/设置播放的视频文件,10.8 实现分页显示,10.8.1 分页显示技术的优劣比较 1.使用游标定位,丢弃不属于页面的数据2使用缓存结果集,一次查询所有数据3使用数据库提供的定位集的sQL语句,返回特定行的数据,10.8.2 分页显示的JavaBean实现,1.SQL Server数据库的分页查询语句从数据库表中的第M条记录开始取N条记录,利用Top关键字进行查询。注意如果Select语句中既有top,又有order by,则是从排序好的结果集中选择。查询语句的语法如下:SELECT*FROM(SELECT Top N*FROM(SELECT Top(M+N-1)*FROM 表名称 Order by 主键 desc)t1)t2 Order by 主键 asc,2.Oracle数据库的分页语句,在Oracle数据库中,可以使用ROWNUM来限制结果集的大小和起始位置。从数据库表中第M条记录开始查询N条记录,查询语句的语法如下:SELECT*FROM(SELECT ROWNUM r,t1.*From 表名称 t1 where rownum=M,3.MySQL数据库的分页语句,MySQL数据库的分页查询语句最简单,它通过使用LIMIT函数实现,从数据表中第M条记录开始查询N条记录,查询语句的语法如下:SELECT*FROM 表名称 LIMIT M-1,N,10.9 小结,本章主要介绍了在动态网站中如何进行数据库的连接和访问,其中重点介绍了JDBC、JSP连接数据库的方法、数据库连接池的应用和一些数据库的基本类中的方法操作数据库包括statement、preparestatement、resultset等。接下来,介绍了如何将图像、声音、视频以及一些大文本文件存储到数据库中,并且从数据库中读取出来。最后,介绍了分页技术。,

    注意事项

    本文(应用JDBC进行数据库开发.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开