第九章 数据库编程.ppt_第1页
第九章 数据库编程.ppt_第2页
第九章 数据库编程.ppt_第3页
第九章 数据库编程.ppt_第4页
第九章 数据库编程.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章 数据库编程 大多数单位将有价值的数据保存在关系数据库中 这就要求所开发的应用程序具有对数据库的访问能力 数据库编程 客户机 服务器应用程序 问题1 应用程序中的SQL语句如何传到数据库中执行 数据库 发送SQL语句 检索查询结果 问题2 数据库的执行结果如何返回到应用程序中 JDBC JDBC JavaDataBaseConnectivity java数据库连接 是Sun公司提供的一种实现对数据库访问的JavaAPI 它可以为多种关系数据库提供统一访问 它的功能是由一系列的类和接口来完成的 开发者只需要使用相应的对象 即可以完成对数据库的操作 JDBC简介 JDBC的框架结构 JDBCAPI供程序员调用的接口与类 集成在java sql包中 如 DriverManager类Connection接口Statement接口ResultSet接口DriverManager载入各种不同的JDBC驱动JDBC驱动负责连接各种不同的数据库 SqlServer MySQL JDBCAPI JDBC驱动程序管理器 JDBC驱动 JDBC驱动 Java应用程序 JDBC应用模型 在数据库应用程序当中 最常见的系统结构是两层或三层模型 换句话说 Java应用程序即可以直接访问数据库 也可以将其作为中间层服务器应用程序 Java应用程序 JDBC JDBC JSP Servlet 客户端 数据库服务器 应用服务器 数据库服务器 客户端 java sql包 访问数据库的步骤 Connection DriverManager Statement ResultSet 1 加载JDBC驱动程序2 创建数据库连接 生成Connection对象3 创建Statement对象 执行SQL语句4 使用ResultSet对象接收结果集 处理结果集5 关闭上述对象 客户端 数据库服务器 1 2 3 4 确定数据库类型 加载与数据库相匹配的驱动程序 通常有2种方式 在个人开发与测试中 可以使用JDBC ODBC桥连方式 在生产型开发中 推荐使用纯Java驱动方式 不论采用哪种驱动方式 在程序中对数据库的操作方式基本相同 只是加载不同的驱动程序即可 加载JDBC驱动程序 DBServer DBServer JDBCAPI JDBCDriverManager 纯Java驱动 JDBC ODBC桥 Java应用程序 ODBC 在控制面板 ODBC数据源 系统DSN中配置数据源 编程 使用Class forName 进行装载 向驱动管理器注册 使用JDBC ODBC桥接 Class forName sun jdbc odbc JdbcOdbcDriver 演示 配置ODBC数据源 JDBC ODBC桥驱动类的完全限定类名 由JDBC驱动程序直接访问数据库 可以避免桥接方式的缺陷 其中 纯JAVA驱动程序由数据库厂商提供 开发者在应用程序中只需通过调用JDBCAPI建立应用程序到数据库的连接 优点 匹配性能更好 快速而且可跨平台 缺陷 访问不同的数据库需要下载专用的JDBC驱动 纯Java驱动程序 纯JAVA驱动程序加载步骤 下载数据库厂商提供的驱动程序包将驱动程序包引入到环境变量中编程 加载驱动程序 Class forName com microsoft jdbc sqlserver SQLServerDriver sqlserver数据库驱动类的完全限定类名 Class forName org gjt mm mysql Driver MySQL数据库驱动类的完全限定类名 创建数据库的连接 首先要获得数据库的JDBCURL地址 JDBC使用和网络URL类似的语法来描述数据库 JDBCURL的格式如下 jdbc 子协议 数据源名称利用JDBC ODBC桥访问ODBC数据库 JDBCURL如下 jdbc odbc 学生库访问SQLServer数据库 JDBCURL如下 jdbc microsoft sqlserver localhost 1433 databaseName 学生库访问MySQL数据库 JDBCURL如下 jdbc mysql localhost 3306 学生库 创建数据库连接 获得JDBCURL地址后 必须使用DriverManager类的静态方法getConnection来获得连接对象 Connectionconn DriverManager getConnection DBURL root 123 Connectionconn DriverManager getConnection DBURL 连接成功后 通过Connection对象的createStatement方法来创建语句对象 才可以执行SQL语句 有三种Statement对象 Statement对象用于执行不带参数的简单SQL语句 PreparedStatement对象用于执行带或不带参数的预编译SQL语句CallableStatement对象用于执行对数据库存储过程的调用 Statement对象提供了三种执行SQL语句的方法 executeQuery 用于产生单个结果集的sql 如select语句executeUpdate 用于执行insert delete update createtable droptable等execute 用于执行返回多个结果集 多个更新计数或二者组合的语句 多数程序员不会需要该高级功能 创建语句对象 Statementstmt con createStatement StringSQL select from学生信息表 ResultSetrs stmt executeQuery SQL 处理结果集 JDBC通过ResultSet对象接收结果集 ResultSet对象包含了执行SQL语句后返回的结果集 结果集类似于数据库中的表 因此需要一个指针逐行读取数据 这个指针被称为游标 在刚创建的ResultSet对象中 游标指向第一行数据前 ResultSetrs stmt executeQuery SQL while rs next System out println rs getString 学号 System out println rs getString 姓名 System out println rs getInt 年龄 System out println rs getString 系别 前面的结果集只可以依次向下读取数据 如果想要读取结果集中任意一行 则必须创建一个可滚动显示的结果集 代码如下 创建可滚动的结果集后 就可以调用下面的方法来获取结果集中任意一行的数据 first last beforefirst afterlast previous absolute introw relative 创建滚动结果集 Statementstmt con createStatement ResultSet TYPE SCROLL SENSITIVE ResultSet CONCUR READ ONLY 当对数据库的操作结束后 应当将所有已经被打开的资源关闭 Connection对象 Statement对象和ResultSet对象都有执行关闭的close方法 方法原型都是 voidclose throwsSQLException 如 rs close 关闭ResultSet对象sta close 关闭Statement对象con close 关闭Connection对象有可能抛出SQLException异常 必须捕捉 注意关闭的顺序 最后打开的资源最先关闭 最先打开的资源最后关闭 关闭资源 数据库操作示例 JDBC程序的工作模板 try Class forName JDBC驱动类 catch ClassNotFoundExceptione System out println 无法找到驱动类 try Connectioncon DriverManager getConnection JDBCURL 数据库用户名 密码 Statementstmt con createStatement ResultSetrs stmt executeQuery SELECTa b cFROMTable1 while rs next intx rs getInt a Strings rs getString b floatf rs getFloat c con close catch SQLExceptione e printStackTrace 获得数据库连接 发送Sql语句 处理结果 注册JDBC驱动 JDBCURL用来标识数据库 必须处理的异常 释放资源 必须处理的异常 更新数据库可通过两种方法实现 一种是通过调用Statement对象的executeUpdate 方法 一种是创建可更新的结果集 通过SQL语句更新 如下所示 通过结果集更新 首先要创建一个可更新的结果集 更新数据库 StringSQL insertinto学生信息表 学号 姓名 年龄 系别 values 1202 杨东平 20 计算机 introwCount stmt executeUpdate SQL Statementstmt con createStatement ResultSet TYPE SCROLL SENSITIVE ResultSet CONCUR UPDATABLE 可更新的结果集对象具有一个与其关联的特殊行 插入行 该行用于构建要插入行的暂存区 插入行的操作修改行的操作删除行的操作 1 用moveToInsertRow定位游标 将游标定位到插入行2 调用updateXXX方法更新插入行的每一列3 调用updataRow将修改保存到数据库 1 将游标定位到修改的行2 调用updateXXX方法修改该行的每一列3 调用updataRow将修改保存到数据库 1 将游标定位到删除的行2 调用deleteRow方法将该行从数据库和ResultSet删除 如果要多次执行相似的SQL语句 可以使用PreparedStatemend 预编译语句对象 对象来执行 通过Connection对象的prepareStatement方法来创建预编译语句对象 PreparedStatement对象会将SQL语句预先编译 这样将会获得比Statement对象更高的执行效率 使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论