利用JDBC实现Java程序与数据库的连接.ppt_第1页
利用JDBC实现Java程序与数据库的连接.ppt_第2页
利用JDBC实现Java程序与数据库的连接.ppt_第3页
利用JDBC实现Java程序与数据库的连接.ppt_第4页
利用JDBC实现Java程序与数据库的连接.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

第16章利用JDBC实现Java程序与数据库的连接 16 1JDBC概述16 2JDBC驱动程序16 3JDBC常用类与方法16 4数据库访问过程 本章要点 了解JDBC的基本概念了解JDBC的几种常用驱动程序了解JDBC的常用类与方法 掌握在与数据库连接经常使用的类与法掌握JDBC访问数据库的基本方法 16 1JDBC概述 Java定义了一个通用的SQL数据库存取框架 在各种各样的数据库连接模块上提供统一的界面 使与数据库无关的Java工具和产品成为可能 使得数据库连接的开发者可以提供各种各样的连方案 这一通用的SQL数据库存取框架就是JDBC JDBC的设计者以X openSQLCallLevelInterface 调用层接口 做为API的基础 它也是Microsoft sODBC 开放数据库互连 的基础 16 2JDBC应用 与数据库建立连接 发送SQL语句 处理结果 Connectioncon DriverManager getConnection jdbc odbc wombat login password Statementstmt con createStatement ResultSetrs stmt executeQuery SELECTa b cFROMTable1 while rs next System out println rs getString a rs getString b rs getString c JDBC是一种低级API 是高级API的基础 16 3两层模型和三层模型 JDBCAPI既支持数据库访问的两层模型 同时也支持三层模型 在两层模型中 Javaapplet或应用程序将直接与数据库进行对话 这将需要一个JDBC驱动程序来与所访问的特定数据库管理系统进行通讯 用户的SQL语句被送往数据库中 而其结果将被送回给用户 数据库可以位于另一台计算机上 用户通过网络连接到上面 这就叫做客户机 服务器配置 其中用户的计算机为客户机 提供数据库的计算机为服务器 网络可以是Intranet 它可将公司职员连接起来 也可以是Internet 在三层模型中 命令先是被发送到服务的 中间层 然后由它将SQL语句发送给数据库 数据库对SQL语句进行处理并将结果送回到中间层 中间层再将结果送回给用户 MIS主管们都发现三层模型很吸引人 因为可用中间层来控制对公司数据的访问和可作的的更新的种类 中间层的另一个好处是 用户可以利用易于使用的高级API 而中间层将把它转换为相应的低级调用 最后 许多情况下三层结构可提供一些性能上的好处 16 2 3JDBC产品 有关最新的信息 请查阅JDBC的网站 可通过从以下URL开始浏览找到 1JavaSoft框架JavaSoft提供三种JDBC产品组件 它们是Java开发工具包 JDK 的组成部份 JDBC驱动程序管理器 JDBC驱动程序测试工具包 和JDBC ODBC桥 2JDBC驱动程序的类型JDBC ODBC桥加ODBC驱动程序 JavaSoft桥产品利用ODBC驱动程序提供JDBC访问 本地API 部份用Java来编写的驱动程序JDBC网络纯Java驱动程序本地协议纯Java驱动程序 16 3JDBC常用类与方法之一 1 DriverManager类 负责管理JDBC驱动程序 使用JDBC驱动程序之前 必须先将驱动程序加载并向DriverManager注册后才可以使用 同时提供方法来建立与数据库的连接 方法 A Class forName Stringdriver 加载注册驱动程序B StaticConnectiongetConnection Stringurl Stringuser Stringpassword throwsSQLException 取得对数据库的连接C StaticDrivergetDriver Stringurl throwsSQLExcetion 在已经向DriverManager注册的驱动程序中寻找一个能够打开url所指定的数据库的驱动程序 16 3JDBC常用类与方法之二 2 Connection类负责维护JSP JAVA数据库程序和数据库之间的联机 可以建立三个非常有用的类对象 方法 A StatementcreateStatement throwsSQLException 建立Statement类对象StatementcreateStatement intresultSetType intresultSetConcurrency throwsSQLException 建立Statement类对象resultSetType值TYPE FORWARD ONLY结果集不可滚动TYPE SCROLL INSENSITIVE结果集可滚动 不反映数据库的变化TYPE SCROLL SENSITIVE结果集可滚动 反映数据库的变化resultSetConcurrency值CONCUR READ ONLY不能用结果集更新数据CONCUR UPDATABLE能用结果集更新数据JDBC2 0中才支持滚动的结果集 而且可以对数据进行更新B DatabaseMetaDatagetMetaData throwsSQLException 建立DatabaseMetaData类对象C PreparedStatementprepareStatement Stringsql throwsSQLException 建立PreparedStatement类对象D booleangetAutoCommit throwsSQLException 返回Connection类对象的AutoCommit状态E voidsetAutoCommit booleanautoCommit throwsSQLException 设定Connection类对象的AutoCommit状态F voidcommit throwsSQLException 确定执行对数据库新增 删除或修改记录的操作G voidrollback throwsSQLException 取消执行对数据库新增 删除或修改记录的操作H voidclose throwsSQLException 结束Connection对象对数据库的联机I booleanisClosed throwsSQLException 测试是否已经关闭Connection类对象对数据库的联机 16 3JDBC常用类与方法之三 3 Statement类通过Statement类所提供的方法 可以利用标准的SQL命令 对数据库直接新增 删除或修改操作方法 A ResultSetexecuteQuery Stringsql throwsSQLException 使用SELECT命令对数据库进行查询B intexecuteUpdate Stringsql throwsSQLException 使用INSERT DELETE UPDATE对数据库进行新增 删除和修改操作 C voidclose throwsSQLException 结束Statement类对象对数据库的联机 16 3JDBC常用类与方法之四 4 PreparedStatement类PreparedStatement类和Statement类的不同之处在于PreparedStatement类对象会将传入的SQL命令事先编好等待使用 当有单一的SQL指令比多次执行时 用PreparedStatement类会比Statement类有效率方法 A ResultSetexecuteQuery throwsSQLException 使用SELECT命令对数据库进行查询B intexecuteUpdate throwsSQLException 使用INSERT DELETE UPDATE对数据库进行新增 删除和修改操作 C ResultSetMetaDatagetMetaData throwsSQLException 取得ResultSet类对象有关字段的相关信息D voidsetInt intparameterIndex intx throwsSQLException 设定整数类型数值给PreparedStatement类对象的IN参数E voidsetFloat intparameterIndex floatx throwsSQLException 设定浮点数类型数值给PreparedStatement类对象的IN参数F voidsetNull intparameterIndex intsqlType throwsSQLException 设定NULL类型数值给PreparedStatement类对象的IN参数G voidsetString intparameterIndex Stringx throwsSQLException 设定字符串类型数值给PreparedStatement类对象的IN参数H voidsetDate intparameterIndex Datex throwsSQLException 设定日期类型数值给PreparedStatement类对象的IN参数I voidsetTime intparameterIndex Timex throwsSQLException 设定时间类型数值给PreparedStatement类对象的IN参数 16 3JDBC常用类与方法之五 5 DatabaseMetaData类DatabaseMetaData类保存了数据库的所有特性 并且提供许多方法来取得这些信息 方法 A StringgetDatabaseProductName throwsSQLException 取得数据库名称B StringgetDatabaseProductVersion throwsSQLException 取得数据库版本代号C StringgetDriverName throwsSQLException 取得JDBC驱动程序的名称D StringgetDriverVersion throwsSQLException 取得JDBC驱动程序的版本代号E StringgetURL throwsSQLException 取得连接数据库的JDBCURLF StringgetUserName throwsSQLException 取得登录数据库的使用者帐号 16 3JDBC常用类与方法之六 6 ResultSet类负责存储查询数据库的结果 并提供一系列的方法对数据库进行新增 删除和修改操作 也负责维护一个记录指针 Cursor 记录指针指向数据表中的某个记录 通过适当的移动记录指针 可以随心所欲的存取数据库 加强程序的效率 方法 A booleanabsolute introw throwsSQLException 移动记录指针到指定的记录B voidbeforeFirst throwsSQLException 移动记录指针到第一笔记录之前C voidafterLast throwsSQLException 移动记录指针到最后一笔记录之后D booleanfirst throwsSQLException 移动记录指针到第一笔记录E booleanlast throwsSQLException 移动记录指针到最后一笔记录F booleannext throwsSQLException 移动记录指针到下一笔记录G booleanprevious throwsSQLException 移动记录指针到上一笔记录H voiddeleteRow throwsSQLException 删除记录指针指向的记录I voidmoveToInsertRow throwsSQLException 移动记录指针以新增一笔记录J voidmoveToCurrentRow throwsSQLException 移动记录指针到被记忆的记录K voidinsertRow throwsSQLException 新增一笔记录到数据库中L voidupdateRow throwsSQLException 修改数据库中的一笔记录M voidupdate类型 intcolumnIndex 类型x throwsSQLException 修改指定字段的值N intget类型 intcolumnIndex throwsSQLException 取得指定字段的值O ResultSetMetaDatagetMetaData throwsSQLException 取得ResultSetMetaData类对象 16 3JDBC常用类与方法之七 7 ResultSetMetaData类ResultSetMetaData类对象保存了所有ResultSet类对象中关于字段的信息 提供许多方法来取得这些信息 方法 A intgetColumnCount throwsSQLException 取得ResultSet类对象的字段个数B intgetColumnDisplaySize throwsSQLException 取得ResultSet类对象的字段长度C StringgetColumnName intcolumn throwsSQLException 取得ResultSet类对象的字段名称D StringgetColumnTypeName intcolumn throwsSQLException 取得ResultSet类对象的字段类型名称E StringgetTableName intcolumn throwsSQLException 取得ResultSet类对象的字段所属数据表的名称F booleanisCaseSensitive intcolumn throwsSQLException 测试ResultSet类对象的字段是否区分大小写G booleanisReadOnly intcolumn throwsSQLException 测试ResultSet类对象的字段是否为只读 16 4数据库访问过程 16 4 1JDBCODBC访问的流程JDBCDriverMannager JDBCODBC桥 ODBC 数据库客户机驱动库 数据库服务器 返回查询结果 在这种访问中值的我们注意的是虽然JAVA是 WriteOnce RunAnywhere 但是如果通过这种访问的话 需要客户端必须设置ODBC和有相应的数据库客户机的驱动 由于不是所有的数据库服务器提供商都提供JDBC驱动程序 给JDBC访问提供相应的接口 所以就有了JDBCODBCBridge 16 4数据库访问过程之二 16 4 2JDBC驱动返回查询结果JDBCDriverMannager 局部JDBC驱动 客户端数据库 数据库服务JDBC驱动返回查询结果器 返回查询结果 这种访问事实上是转换JDBC调用为相应的数据库 Oracle Sybase Informix DB2 和其他的数据库数据库管理系统 的客户端API调用 这种方式的访问需要相应的数据库提供商提供相应的JDBC驱动程序 但是有一种好处 可以独立于odbc用于可以随处可Run的客户端的浏览器中的Applet程序 16 4 3JDBC连接举例 以连接一个SQLSever数据库为例设置odbc 打开odbc数据源 选择系统dsn Click加新的dsn 接下来输入选择数据库类型 输入dsn名 选择服务器 连接数据库的方式 输入数据库的登陆用户和密码 测试连接 如果测试成功的话 那么dsn就建立好了 假定dsn名为Sqlserver 使用的是sqlserver2000 以 sa 登陆 密码为空 16 4 3JDBC连接举例 续一 importjava sql 加载java数据连接包 java基本所有的数据库的调用的都在这个东西里面publicclassInsertCoffees publicstaticvoidmain Stringargs Stringurl jdbc odbc sqlserver 取得连接的url名 注意sqlserver是dsn名Connectioncon 实例化一个Connection对象Statementstmt Stringquery select fromcol link 选择所有的Col link表中的数据输出 16 4 3JDBC连接举例 续二 try Class forName sun jdbc odbc JdbcOdbcDriver 加载jdbc odbc桥驱动 catch java lang ClassNotFoundExceptione System err print ClassNotFoundException 加载jdbc odbc桥错误System err println e getMessage 其他错误 try con DriverManager getConnection url sa 数据库连接 16 4 3JDBC连接举例 续三 stmt con createStatement Create一个声明stmt executeUpdate CREATETABLEcol link sitenamevarchar 20 NULL siteurlvarchar 50 NULL 执行了一个sq

温馨提示

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

评论

0/150

提交评论