




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库访问 夏汛 泸职院信息工程系 学习目标 能够使用JDBC访问数据库 JDBC驱动程序的类型 JDBC ODBC桥 访问access 只能通过JDBC ODBC桥 部分本地API 部分Java驱动程序JDBC网络纯Java驱动程序本地协议纯Java驱动程序 下载安装Mysql 下载和使用MysqlJDBC驱动 JDBCAPI 访问数据库的代码 Class forName com mysql jdbc Driver Connectionconn DriverManager getConnection jdbc mysql localhost 3306 DB root 123 Statementstmt conn createStatment ResultSetrs stmt executeQuery select fromemp JDBCAPI 加载与注册JDBC驱动 1 Driver接口java sql Driver是所有JDBC驱动程序需要实现的接口 这个接口主要是提供给数据库厂商使用 不同厂商该接口的类名是不同的 com microsoft jdbc sqlserver SQLServerDriversql2000的驱动类名com microsoft sqlserver SQLServerDriversql2005的驱动类名oracle jdbc driver OracleDriverOracle的JDBC驱动类名com mysql jdbc Drivermysql的驱动类名Driver接口中提供了一个Connect 方法 用来建立到数据库的连接Connectionconnect Stringurl propertiesinfo throwsSQLException JDBCAPI 加载与注册JDBC驱动 2 加载与注册JDBC驱动加载JDBC驱动是调用Class类的静态方法forName 向其传递要加载的JDBC驱动的类名 DriverManager类是驱动程序管理类 负责管理驱动程序 这个类中所有方法都是静态的 在DriverManager类中提供了registerDriver 方法来注册驱动程序类的实例 publicstaticvoidregisterDriver Driverdriver throwsSQLException通常不需要亲自去调用registerDriver 方法来注册驱动程序类的实例 因为实现Driver接口的驱动程序类都包含了静态代码块 在这个静态代码块中 会调用DriverManager registerDriver 方法来注册自身的一个实例 JDBCAPI 建立到数据库的连接 3 建立到数据库的连接在DriverManger类中提供了3个重载的getConnection 方法PublicstaticConnectiongetConnection Stringurl throwsSQLExceptionPublicstaticConnectiongetConnection Stringurl Stringuser Stringpassword throwsSQLExceptionPublicstaticConnectiongetConnection Stringurl Propertiesinfo throwsSQLExceptionMysql的URL jdbc mysql localhost 3306 databasename JDBCAPI 访问数据库 1 StaementStaementcreateStaement throwsSQLException该方法创建一个Staement对象 用于向数据库发送SQL语句 没有参数的SQL语句通常用Statement对象来执行Staement中定义了下列方法用于执行SQL语句ResultSetexeCuteQuery Stringsql throwsSQLException该方法执行参数sql指定的sql语句 返回一个ResultSet对象 ResultSet用于查看执行结果 intexecuteUpdate Stringsql throwsSQLException该方法执行参数sql指定的INSERT UPDATE或者DELETE语句 也可执行SQLDDL语句 如CREATETABLEbooleanexecute Stringsql throwsSQLException该方法执行返回多个结果集的SQL语句int executeBatch throwsSQLException该方法允许我们向数据库提交一批命令 然后一起执行 大量SQL语句的批量执行可以显著提高性能 如果所有命令都成功执行 返回值是一个更新行数的数组 数组中每一个int元素是按照加入命令的先后顺序来存储的 表示了相应命令的更新行数 可以使用addBatch 方法将SQL命令加入到命令列表中 JDBCAPI 访问数据库 2 ResultSetResultSet接口由数据库厂商实现 ResultSet对象维护了一个指向当前数据行的游标 初始的时候 游标在第一行之前 可以通过ResultSet对象的next 方法移动游标到下一行 booleannext throwsSQLExceptionResultSet接口中定义了很多方法来获取当前行中的数据 根据字段类型的不同用不同的方法来获取数据 方法略 每种方法 又提供了两种形式的调用 一种是以列的索引作为参数 索引从1开始 一种是以列的名字作为参数 如果不知道要获取的列数据类型 可以一律采用getString 方法来得到String类型的数据 JDBCAPI 访问数据库 3 PreparedStatement在程序中传递的SQL语句在执行前必须被预编译 包括语句分析 代码优化等 然后才能被数据库引擎执行 如果重复执行只有参数不同的SQL语句 是比较低效的 如果要用不同的参数来多次执行同一个SQL语句 可以使用PreparedStatement的对象 PreparedStatementpstmt conn preparedStatement insertemployeevalues pstmt setInt 1 1 pstmt setString 2 zhangsan pstmt setDate 3 java sql Date valueof 2011 2 25 pstmt executeUpdate 可滚动结果集 之前通过Statement对象所创建的结果集只能向前滚动 即只能调用next 方法向前得到数据行 无法向后滚动 如果要获得一个可滚动的结果集 需要在创建Statement或PreparedStatement对象时 调用Connection对象的另一个重载的createStatement 方法 Statementstmt conn createStatement type concurrency PreparedStatementpstmt conn preparedStatement type concurrency 其中type可取 ResultSet TYPE FORWARD ONLY 结果集不能滚动ResultSet TYPE SCROLL INSENSITIVE 结果集可以滚动 但是对数据库变化不敏感 数据库查询生成结果集后发生了变化 结果集不发生变化 ResultSet TYPE SCROLL SENSITIVE 结果集可以滚动 但是对数据库变化敏感 例如通过查询返回了10行数据 如果另一个程序删除了其中的2行 那么这个结果集中就只有8行了 Concurrency可取 ResultSet CONCUR READ ONLY结果集不能用于更新数据库ResultSet CONCUR UPDATABLE结果集可以用于更新数据库 ResultSet接口为可滚动结果集提供的方法 booleanisBeforeFirst throwsSQLExceptionbooleanisAfterLast throwsSQLExceptionbooleanisFirst throwsSQLExceptionbooleanisLast throwsSQLException以上4种方法分别用于判断游标是否位于第一行之前 最后一行之后 第一行和最后一行 voidbeforeFirst throwsSQLException该方法移动游标到结果集第一行之前voidafterLast throwsSQLException该方法移动游标到结果集最后一行之后booleanfirst throwsSQLException该方法移动游标到结果集的第一行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力电子变压器网络化与智能化拓扑结构优化-洞察及研究
- 建筑冬季保暖措施方案设计(3篇)
- 肾上腺酮类物质的光稳定性研究-洞察及研究
- 多模态交互设计原则-洞察及研究
- 第22课世界多极化与经济全球化教学设计-2023-2024学年统编版(2019)高中历史必修中外历史纲要下册
- 《葛覃》的注释和赏析
- 3.3 三角比的诱导公式说课稿-2025-2026学年中职基础课-上册-劳保版(第七版)-(数学)-51
- 《废旧物的新生命》(教学设计)-2024-2025学年人教版(2012)美术六年级上册
- Python科学计算与数据分析开发基础说课稿-2025-2026学年中职专业课-程序设计基础-计算机类-电子与信息大类
- 志愿服务时间管理与效果评估
- 仓库管理5管理制度
- 2025至2030中国建筑劳务行业发展分析及产业运行态势及投资规划深度研究报告
- 新解读《DL-T 5100 - 1999水工混凝土外加剂技术规程》新解读
- 光伏电站入股分红协议书
- 【行星齿轮的强度校核计算过程案例】1800字
- 政采云合同协议书
- 轻度认知障碍 - 教学课件
- 十大国企面试题目及答案
- 二手医疗器械市场的现状与发展趋势
- 氧气安全培训
- 江苏省镇江市京口区2025年小升初模拟数学测试卷含解析
评论
0/150
提交评论