已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JavaJDBC 本章相关词汇 本章目标 了解JDBC的概念和必要性了解JDBC驱动程序类型了解java sql包理解JDBC程序的结构使用JDBC进行数据库编程 关于DBMS DBMS DataBaseManagementSystem 是指数据库管理系统 目前DBMS的生产商众多 产品也不尽相同 如 Oracle公司的Oracle系列 Microsoft公司的Access系列和SQLServer系列 Microsoft公司早期的FoxPro IBM公司的DB2 Sybase公司的Sybase 还有自由开源的MySQL等等 这就意味着编程语言要针对不同的DBMS开发不同版本的应用程序 这将是一项非常枯燥的工作 ODBC ODBC OpenDataBaseConnectivity 指开放式数据库连接 是由Microsoft公司提供的应用程序接口 它负责连接各种不同产商和类型的DBMS 然后为各种不同的编程语言提供查询 插入 修改和删除数据的功能 如同在各种不同的DBMS和各种不同的编程语言之间架设了一座通用的桥梁 JDBC JDBC JavaDataBaseConnectivity 是由SunMicrosystem公司提供的API ApplicationProgrammingInterface应用程序编程接口 它为Java应用程序提供了一系列的类 使其能够快速高效地访问数据库 这些功能是由一系列的类和对象来完成的 我们只需使用相关的对象 即可完成对数据库的操作 JDBC工作方式示意图 JDBC驱动程序类型 使用JDBC连接数据库可以通过不同的驱动方式来实现 有4种驱动类型 JDBC ODBC桥驱动纯Java驱动本地API部分Java驱动JDBC网络纯Java驱动不论采用哪种驱动方式 在程序中对数据库的操作方式基本相同 只是加载不同的驱动程序即可 java sql包 java sql包也是Java内置的包 其中包含了一系列用于与数据库进行通信的类和接口 如果要使用到这些类和接口的话 则必须显式地声明如下语句 importjava sql java sql包中的一些接口 java sql包中的一些类 JDBC程序访问数据库步骤 步骤详解1 建立数据源 这里以JDBC ODBC桥驱动方式为例 逐步详细地讲解在Java程序中如何操作数据库 而对于其它驱动方式 只需更换驱动程序即可 其余不变 首先建立ODBC数据源 开始 设置 控制面板 管理工具 数据源 ODBC 新建数据源 名称可以任意 这里假设已经建立了一个名为myODBC的数据源 连接到SQLServer2000中的pubs数据库 步骤详解2 加载驱动程序 使用Class类的forName方法 将驱动程序类加载到JVM Java虚拟机 中 对于使用JDBC ODBC桥的驱动方式 应该加载 sun jdbc odbc JdbcOdbcDriver类如 Class forName sun jdbc odbc JdbcOdbcDriver 步骤详解3 获得连接对象 成功加载驱动后 必须使用DriverManager类的静态方法getConnection来获得连接对象 对于使用JDBC ODBC桥的连接方式 连接字符串的一般形式是 jdbc odbc 数据源名称 如 Connectioncon DriverManager getConnection jdbc odbc myODBC sa 步骤详解释4 创建语句对象 一旦成功连接到数据库 获得Connection对象后 必须通过Connection对象的createStatement方法来创建语句对象 才可以执行SQL语句 如 Statementsta con createStatement 步骤详解5 执行SQL语句 使用语句对象来执行SQL语句 有两种情况 一种是执行DELETE UPDATE和INSERT之类的数据库操作语句 DML 这样的语句没有数据结果返回 使用Statement对象的executeUpdate方法执行 如 sta executeUpdate INSERTINTOFriendsVALUES 田七 重庆 456712 2003 2 25 7500 步骤详解5 执行SQL语句 续 另一种是执行SELECT这样的数据查询语句 DQL 这样的语句将从数据库中获得所需的数据 使用Statement对象的executeQuery方法执行 如 ResultSetrs sta executeQuery SELECT FROMFriend 步骤详解6 关闭资源 当对数据库的操作结束后 应当将所有已经被打开的资源关闭 否则将会造成资源泄漏 Connection对象 Statement对象和ResultSet对象都有执行关闭的close方法 函数原型都是 voidclose throwsSQLException如 rs close 关闭ResultSet对象sta close 关闭Statement对象con close 关闭Connection对象有可能抛出SQLException异常 必须捕捉 请注意关闭的顺序 最后打开的资源最先关闭 最先打开的资源最后关闭 数据库操作示例 importjava sql 导入java sql包publicclassJDBCDemo publicstaticvoidmain String args StringstrCon jdbc odbc myODBC 连接字符串StringstrUser sa 数据库用户名StringstrPwd 口令System out println 正在连接数据库 try 监控异常Class forName sun jdbc odbc JdbcOdbcDriver 加载驱动程序Connectioncon 获得连接对象con DriverManager getConnection strCon strUser strPwd System out println 成功连接到数据库 Statementsta con createStatement 创建语句对象 执行SQL语句StringstrSql DELETEFROMFriendsWHERE Name 郑六 intcount sta executeUpdate strSql System out println 成功删除 count 行数据 sta close con close 关闭所有已经打开的资源 catch ClassNotFoundExceptioncnfe cnfe printStackTrace catch SQLExceptionsqle sqle printStackTrace 操作结果集 使用Statement对象的executeQuery方法成功执行SELECT语句后 将返回一个包含有结果数据的ResultSet对象 要从该对象中获取数据 将使用到如下方法 操作结果集示例 try StringstrCon jdbc odbc MyODBC System out println 正在连接数据库 Class forName sun jdbc odbc JdbcOdbcDriver Connectioncon con DriverManager getConnection strCon sa System out println 成功连接到数据库 Statementsta con createStatement ResultSetrs sta executeQuery SELECT FROMFriends System out println 查询到数据如下 while rs next 循环将结果集游标往下移动 到达末尾返回false 根据字段名称获得各个字段的值System out print rs getString Name t 获得字符串System out print rs getString Address t 获得字符串System out print rs getInt Telephone t 获得整数System out print rs getDate HireDate t 获得日期型数据System out println rs getFloat Salary 获得浮点型数据 rs close sta close con close catch ClassNotFoundExceptioncnfe cnfe printStackTrace catch SQLExceptionsqle sqle printStackTrace PreparedStatement接口1 如果要多次执行相似的SQL语句 可以使用PreparedStatemend 预编译语句对象 对象来执行 通过Connection对象的prepareStatement方法来创建预编译语句对象 PreparedStatement对象会将SQL语句预先编译 这样将会获得比Statement对象更高的执行效率 PreparedStatement接口2 包含在PreparedStatement对象中的SQL语句可以带有一个或多个参数 使用 作为占位符 如 PreparedStatementps con prepareStatement UPDATEFriendsSETAddress WHEREName 在执行SQL语句之前 必须使用PreparedStatement对象中的setX方法设置每个 位置的参数值 如 ps setString 1 长沙 ps setString 2 王五 PreparedStatement接口3 设置好每个参数的值之后 就可以使用PreparedStatement对象的executeUpdate和executeQuery方法来执行SQL语句 这一点和Statement对象很相似 PreparedStatement对象示例 StringstrCon jdbc odbc MyODBC System out println 正在连接数据库 Class forName sun jdbc odbc JdbcOdbcDriver Connectioncon con DriverManager getConnection strCon sa System out println 成功连接到数据库 PreparedStatementps 使用带参数的SQL语句创建PreparedStatement对象ps con prepareStatement UPDATEFriendsSETAddress WHEREName 设置SQL语句中的参数值ps setString 1 长沙 ps setString 2 王五 intcount ps executeUpdate 执行命令System out println 成功更新了 count 行数据 ps close 关闭资源con close 纯Java驱动方式连接数据库 使用JDBC ODBC桥方式连接数据库 其性能完全取决于数据源 ODBC 的性能 并且无法脱离Microsoft的平台 这样将带来不便 大部分DBMS产商都为自己的产品开发了纯Java的驱动程序 我们只需要加载相应的驱动 就可以直接连接到数据库 而无需通过ODBC桥连接 鉴于DBMS产品太多 这里只针对当今比较流行的SQLServer2000和Oracle9i进行介绍 下载驱动程序包 要使用纯Java驱动 首先必须获得相应数据库的驱动程序包 根据数据库的类型 登录对应产商的官方网站 一般都可以免费获得 下载后 复制到本地磁盘 并将完整路径设置到classpath环境变量中 如用开发工具开发程序 还需在开发环境中设置路径 纯Java驱动连接SQLServer 使用纯Java驱动连接到SQLServer2000数据库 加载驱动程序应改成如下语句 Class forName com microsoft jdbc sqlserver SQLServerDriver 连接字符串应如下格式 jdbc microsoft sqlserver 服务器名或IP 1433 databaseName 数据库名 如 Connectioncon DriverManager getConnection jdbc microsoft sqlserver 127 0 0 1 1433 databaseName pubs sa sqlserver2000下的连接串 DRIVER com microsoft jdbc sqlserver SQLServerDriver URL jdbc microsoft sqlserver 111 1 1 133 1433 databaseName ssoDemo user sa password 1 sqlserver2005下的连接串 DRIVER com microsoft sqlserver jdbc SQLServerDriver URL j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 承包家庭林场协议书
- 承包水泵使用协议书
- 承包的农田合同范本
- 承揽安装协议书范本
- 技术工聘请合同范本
- 市政合同协议书模板
- 注塑机吊装合同范本
- 投保协议格式化合同
- 投标报价委托协议书
- 投资入股股份协议书
- 2025年国元农业保险股份有限公司安徽分公司校园招聘40人笔试参考题库附带答案详解
- 幼儿园大班数学活动《学习解答口报减法应用题》课件
- 2025年河南省西学中考试试题及答案
- 侵权责任法自考试题及答案
- 2025秋形势与政策课件-践行多边主义完善全球治理
- 年轻干部数字化能力提升心得体会
- 景观灯防汛预案范文
- 学堂在线 大数据系统基础 章节测试答案
- 智慧应急管理系统创新创业项目商业计划书
- 矿山救护职业病防治课件
- 高乳酸血症诊断及治疗
评论
0/150
提交评论