与数据库的连接及数据的基本操作_第1页
与数据库的连接及数据的基本操作_第2页
与数据库的连接及数据的基本操作_第3页
与数据库的连接及数据的基本操作_第4页
与数据库的连接及数据的基本操作_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1 模块6 Java数据库编程 2 6 1与数据库的连接及基本操作一 知识能力目标 1 了解JDBC的概念和使用JDBC的作用 2 熟悉与其它数据库建立连接的方法 3 掌握采用JDBC ODBC桥接 JDBC直连方式与SQL数据库连接的方法 4 掌握在Java中如何创建 执行JDBC语句以及处理结果 5 能编写与数据库连接的Java程序 3 二 项目42使用JDBC ODBC桥接实现与数据库的连接及查询数据表中的数据 在控制台显示pubs数据库中publishers表中全部记录 4 2 相关知识 JDBC的基本功能JavaDataBaseConnectivity Java数据库连接由一组用Java编程语言编写的类和接口组成 是一种可用于执行SQL语句的JavaAPI在java sql包中定义JDBCAPI中定义的主要类数据库驱动程序管理器类DriverManager在用户程序和数据库系统之间维护着与数据库驱动程序之间的连接实现驱动程序的装载创建与数据库系统连接的Connection类对象 Driver 每个驱动程序类必须实现的接口 类Connection用于管理到指定数据库的连接 8 Statement用于执行静态SQL语句并返回它所生成结果的对象resultSetType 结果集类型 包括 TYPE FORWARD ONLY1003指针只能向前移动TYPE SCROLL INSENSITIVE1004指针可滚动但通常不受其他的更改影响TYPE SCROLL SENSITIVE1005指针可滚动并且通常受其他的更改影响resultSetConcurrency 结果集的并发性 包括CONCUR READ ONLY1007不可以更新CONCUR UPDATABLE1008可以更新使用返回的Statement对象创建的结果集在默认情况下类型为TYPE FORWARD ONLY 并带有CONCUR READ ONLY并发级别 接口DatabaseMetaData 数据库元数据 关于数据库的整体综合信息 元数据 描述数据及其环境的数据能提供基于用户的信息能支持系统对数据的管理和维护 CallableStatement 用于执行SQL存储过程的接口PreparedStatement 表示预编译的SQL语句的对象 11 JDBC访问数据库的两种方式利用数据库产品的面向ODBC驱动程序 在JDBC和ODBC之间建立JDBC ODBC桥 在Java程序中基于JDBC ODBC桥的方式访问数据库基于特定数据库产品的JDBC驱动程序 在Java应用程序中利用JDBC数据驱动程序直接与数据库连接 建立数据库连接首先必须通过java lang Class类的forName 动态加载驱动程序类 加载驱动器的语句为 Class forName sun jdbc odbc JdbcOdbcDrvier 再向DriverManager注册JDBC驱动程序 用DriverManager类中的getConnection 方法建立与数据库的连接 Connectioncon DriverManager getConnection url 数据库的用户名 密码 url是由三部分组成 是提供识别数据库方式的串 例 如果数据源是MyDataSource 则url可以写成 jdbc odbc MyDataSource 创建数据源的步骤 WindowsXP 打开控制面版 性能和维护 管理工具 数据源 ODBC 在 用户DSN 中单击添加按钮 创建数据源的步骤 WindowsXP 选择SQLServer 点击完成按钮在名称栏内写上数据源的名字 如MyDataSource服务如果是用本机的话就直接写上 号就可以了 如果是用别的服务器 请单击下拉按钮选择 然后单击下一步 创建数据源的步骤 WindowsXP 可以选择使用用户输入登录的ID和密码的SQLServer验证 然后设置登录SQL的用户名和密码 如用户名为sa 密码为空 然后点下一步更改默认的数据库 你处理哪个数据库中的数据 就把对应的数据库更改为默认数据库 如pubs 然后点下一步 创建数据源的步骤 WindowsXP 直接点完成点击测试数据源 测试是否连接成功 至此数据源建立完毕 点击确定按钮退出此对话框 创建和执行JDBC语句Statement对象可将简单的查询发送到数据库 创建一个Statement对象将想要执行的SQL语句传递给适当的执行方法执行该Statement对象 如 Statementstat con createStatement 对于SELECT语句 使用的方法是executeQuery 对于创建 插入或更新表的语句 使用的方法是executeUpdate 如 stat executeUpdate sql sql字符串是一条SQL语句 处理结果 JDBC将结果集返回给ResultSet对象ResultSetrs stat executeQuery sql sql字符串是一条SQL语句ResultSet结果集对象所包含的常用方法如下 next 对象rs包含了结果集中显示的表 将光标移到下一行 光标初始定位于ResultSet对象第一行的上面第一次调用next 将光标移到第一行 使它成为当前行 接下来调用next 将使光标从上至下每次移动一行 getString 常用于检索CHAR和VARCHARSQL类型的数据也能检索其他基本SQL类型的数据例 如果用它检索numeric类型的数据 getString 将把numeric值转换成Java的String对象 这样一来 在数据要作为数字前就必须转换回numeric类型 getXXX 适当类型的getXXX方法可用于检索列中的数值 这里的XXX指列的数据类型检索VARCHARSQL类型数值的方法是getString 检索float类型数值的方法是getFloat while rs next 每次调用next 下一行就成为当前行 直到rs中再也没有可向前移动的行为止Strings rs getString strColumnName1 floatn rs getFloat strColumnName2 strColumnName1 strColumnName2都是sql字符串中的列名System out println s n JDBC使用两种方法标识getXXX方法检索数值的列指定列名指定列索引 列的序号 i表示第i列如 Strings rs getString 1 floatn rs getFloat 2 与数据库连接及数据基本操作的步骤创建数据源importjava sql 建立数据库连接Class forName sun jdbc odbc JdbcOdbcDrvier Connectioncon DriverManager getConnection url 数据库用户名 密码 创建和执行JDBC语句 Statementstat con createStatement 执行JDBC语句 得到处理结果ResultSetrs stat executeQuery sql while rs next 变量名 rs get 列名或列号 关闭连接 rs close stat close con close 应用扩展 如果要发送带参数的查询语句到数据库 可以使用PreparedStatement对象 它是包含一条预编译过的SQL语句 以下程序是带有输入参数的查询 使用预备语句Statement对象是可以将简单的查询发送到数据库发送带参数的查询语句到数据库 可以使用PreparedStatement对象包含一条预编译过的SQL语句DBMS不必编译就可直接运行PreparedStatement的SQL语句代替Statement对象一般会缩短执行时间PreparedStatement对象可用于不带参数的SQL语句 但在多数场合是用于带参数的SQL语句 相关知识 使用预备语句其用法如下 StringstrSql UPDATECOFFEESSETSALES WHERECOF NAMELIKE PreparedStatementstat con prepareStatement strSql stat setInt 1 75 给上面的SQL语句的第一个问号赋值stat setString 2 Colombian 给上面的SQL语句的第二个问号赋值stat executeUpdate 相当于执行UPDATECOFFEESSETSALES 75WHERECOF NAMELIKE Colombian 可用该对象制作成模板实现一次构造多条带参数的SQL语句 简化编码 executeUpdate方法的返回值executeQuery返回一个ResultSet对象executeUpdate返回的是一个整数值 指出了表中已更新的行数 如果executeUpdate的返回值为0表明执行的语句是一不影响任何行的更新语句执行的是一无返回内容的SQL语句 比如DLL数据定义语句SQL与Java的数据类型SQL数据类型与Java的数据类型不一致在使用Java类型的应用程序与使用SQL类型的数据库之间 需要某种读写类型转换机制ResultSet类的 get 系列方法Statement及其子类的 set 系列方法都有可能要用到数据转换 25 三 项目43使用纯JavaJDBC实现与数据库的连接及更新 使用纯JavaJDBC驱动在控制台显示titles表中书的名字 title id 书的类型 type 书的价格 price 26 JDBC ODBC桥将JDBC数据转换为ODBC数据源 然后用ODBC与数据连接 速度比较慢 纯JavaJDBC驱动程序用纯Java语言编写独立的JDBC驱动程序直接与数据连接与数据库进行通信的整个过程均由Java语言实现 而不通过桥接或中间件来存取数据库缺点 需要下载相应的类包不同数据库的连接代码可能不同 2 相关知识 27 使用纯JavaJDBC驱动程序连接数据库装载驱动程序在程序中 利用Class forName 方法加载指定的驱动程序Class forName com microsoft jdbc sqlserver SQLServerDriver 注意 连接不同的数据库时 加载的驱动程序有所不同 建立与数据库的连接1 首先创建指定数据库的URLjdbc subProtlcol subName hostname port DatabaseName XXXJdbc 表示当前通过Java数据库连接进行数据库访问subProtocal 表示某种驱动程序支持的数据库连接机制subName 表示在当前连接机制下的具体名称Hostname 表示主机名 port表示相应的连接端口DatabaseName 是要连接的数据库的名称 例如 Stringurl jdbc sqlserver localhost 1433 DatabaseName pubs pubs为数据库名Stringuser sa 用户名Stringpassword 密码Connectionconn DriverManager getConnection url user password 28 应用拓展 先创建存储过程 然后用CallableStatement接口实现JDBC调用存储过程 29 相关知识 创建存储过程CallableStatement对象为所有的DBMS提供了一种以标准形式调用已储存过程的方法下面的SQL语句可创建一个存储过程 createprocedurepublishers titlesasselectpub name titlefrompublishers titleswherepublishers pub id titles pub idorderbytitle 30 下面的代码将SQL语句放到一个字符串中 然后赋给变量createProcedure以备后用 StringcreateProcedure createprocedurepublishers titlesasselectpub name titlefrompublishers titleswherepublishers pub id titles pub idorderbytitle 下面的代码段使用Connection对象con来创建Statement对象 用于把创建存储过程的SQL语句发送给数据库 Statementstmt con createStatement stmt executeUpdate createProcedure 存储过程publishers titles将作为一个可调用的数据库对象在数据

温馨提示

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

评论

0/150

提交评论