Java语言程序设计第10章.ppt_第1页
Java语言程序设计第10章.ppt_第2页
Java语言程序设计第10章.ppt_第3页
Java语言程序设计第10章.ppt_第4页
Java语言程序设计第10章.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

第10章 数据的存储与管理 郑 莉 JAVA语言程序设计 本章内容 l数据库基础知识 l通过JDBC 访问数据库 设置环境 访问数据库 对数据库进行操作 lPointBase关系式数据库 lSun ONE Studio 4 JDBC Form Wizard 数据库简介 l数据库 数据的集合 lDBMS 数据库管理系统 存储和组织数据 lSQL 如今大多数数据库是关系式数据库 结构化查询语言广泛用于关系式数据库 数据库简介 lRDBMS 关系式数据库管理系统 l关系式数据库 由表组成 l表具有行、列,每行称为一个记录 主关键字 l每行中具有唯一数据的列 关系式数据库 NumberNameDepartmentSalaryLocation 23603Jones4131100New Jersey 24568Kerwin4132000New Jersey 34589Larson6421800Los Angeles 35761Myers6111400Orlando 47132Neumann4139000New Jersey 78321Stephens6118500Orlando Row ColumnPrimary key SQL关键字 常用SQL语句SELECT 从指定表中取出指定的数据 SELECT select_list INTO new_table FROM table_source WHERE search_condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression ASC | DESC 常用SQL语句 Insert Into l插入一行数据 INSERT INTO table_name VALUES (value1, value2,) l插入一行数据在指定的字段上 INSERT INTO table_name (column1, column2,.) VALUES (value1, value2,) 常用SQL语句Update l更新表中原有数据 UPDATE table_name SET column_name = new_value WHERE column_name = some_value 常用SQL语句Delete l删除表中的数据 DELETE FROM table_name WHERE column_name = some_value 数据库接口ODBC lOpenDatabaseConnectivity的缩写 l是由微软公司提出的一个用于访问数据库 的统一界面标准 l用C语言实现的标准应用程序数据接口。 l用于在数据库管理系统(DBMS)中存取 数据。 l通过ODBCAPI,应用程序可以存取保存在 多种不同数据库管理系统(DBMS)中的 数据,而不论每个DBMS使用了何种数据 存储格式和编程接口。 数据库接口ODBC lODBC的结构: 应用程序(Application) :本身不直接与数据库打交 道,主要负责处理并调用ODBC函数,发送对数据 库的SQL请求及取得结果 驱动器管理器(ODBC manager) :为应用程序装载 数据库驱动器。 数据库驱动器(ODBC Drivers) :实现ODBC的函 数调用,提供对特定数据源的SQL请求。 数据源(Data Sources,数据库) :由用户想要存取 的数据以及与它相关的操作系统、DBMS和用于访 问DBMS的网络平台组成。 l访问数据库的模式 你的程序 ODBC管理器 ODBC驱动程序 数据库 ODBC之不足 lODBC是一个C语言实现的API,并不适合在Java 中直接使用。从Java程序调用本地的C程序会带来 一系列类似安全性、完整性、健壮性的缺点。 l其次,完全精确地实现从C代码ODBC到JavaAPI 写的ODBC的翻译也并不令人满意。比如,Java 没有指针,而ODBC中大量地使用了指针,包括极 易出错的空指针“void”。 lODBC并不容易学习,它将简单特性和复杂特性混 杂在一起,甚至对非常简单的查询都有复杂的选项 。而JDBC刚好相反,它保持了简单事物的简单性 ,但又允许复杂的特性。 什么是JDBC lJDBC(Java DataBase Connectivity)是用 于执行SQL语句的Java应用程序接口,由 一组用Java语言编写的类与接口组成,是 一种底层API ,使开发人员可以用纯Java 语言编写完整的数据库应用程序。 l用JDBC写的程序能够自动地将SQL语句传 送给几乎任何一种数据库管理系统( DBMS)。 lJDBC是一种规范,它让各数据库厂商为 Java程序员提供标准的数据库访问类和接 口,这样就使得独立于DBMS的Java应用 开发工具和产品成为可能。 JDBC的任务 l同一个数据库建立连接; l向数据库发送SQL语句; l处理数据库返回的结果。 JDBC体系结构 通过JDBC访问数据库 应用程序 (Java) Java JDBC驱动程序 (Java类) Sun JDBC/ODBC桥 (本地) ODBC驱动程序 (本地) 数据库客户机 数 据 库 100%纯Java解决方案 Java/本地代码混合解决方案 通过JDBC-ODBC桥访问数据库 开始 l安装 Java 和 JDBC API 安装JDK的同时就自动安装了 l安装数据库驱动程序 安装JDK的同时就自动安装了安装JDBC- ODBC桥驱动程序 l安装 DBMS l建立一个数据库 加载驱动程序 lClass.forName( “sun.jdbc.odbc.JdbcOdbcDriver“); lClass类 提供关于Java类的信息 静态方法ForName() l以完整的Java类名为字符串,装载此类, 并返回一个Class对象描述此类。 l确保类已经在CLASSPATH中正确配置。 l数据库驱动程序类在被装载时会向 DriverManager类注册 建立连接 lDriverManager负责跟踪在一个系统 中所有可用的JDBC驱动器。 lConnection是一个接口,表示与指定 数据库的连接。 l连接数据库 Connection con = DriverManager.getConnection(url, “myLogin“, “myPassword“); url举例:“jdbc:odbc:example11“ 建立表 lSQL 语句 CREATE TABLE COFFEES(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, SALES INTEGER, TOTAL INTEGER) l构造 JDBC 语句创建Statement对象 String createTableCoffees = “CREATE TABLE COFFEES “ + “(COF_NAME VARCHAR(32), SUP_ID INTEGER, PRICE FLOAT, “ + “SALES INTEGER, TOTAL INTEGER)“; Statement stmt = con.createStatement(); l用Statement对象执行语句 stmt.executeUpdate(createTableCoffees); 向表中输入数据 Statement stmt = con.createStatement(); stmt.executeUpdate( “INSERT INTO COFFEES “ + “VALUES (Colombian, 101, 7.99, 0, 0)“); stmt.executeUpdate( “INSERT INTO COFFEES “ + “VALUES (French_Roast, 49, 8.99, 0, 0)“); 从表中获取数据 l选择整个表: SELECT * FROM COFFEES l获取咖啡和各自单价的列表: SELECT COF_NAME, PRICE FROM COFFEES l选择价格低于每磅 $9.00 的咖啡: SELECT COF_NAME, PRICE FROM COFFEES WHERE PRICE 9.00 结果集 lJDBC将执行SQL语句的检索结果存 放在ResultSet 对象中 可以象迭代器那样访问与查询所有行 l用getResultSetMetaData()方法可以 得到ResultSetMetaData对象 存有结果集的列属性 可以通过列索引或列名获取元素 从结果集中提取值 l使用 next方法和getXXX方法提取值 使用列名提取 String query = “SELECT COF_NAME, PRICE FROM COFFEES“; ResultSet rs = stmt.executeQuery(query); while (rs.next() String s = rs.getString(“COF_NAME“); float n = rs.getFloat(“PRICE“); System.out.println(s + “ “ + n); 使用列序号提取,用getString方法可以提取任 何SQL基本类型的数据 String s = rs.getString(1); float n = rs.getFloat(2); 更新表 l更新一个列 String updateString = “UPDATE COFFEES “ + “SET TOTAL = TOTAL + 75 “ + “WHERE COF_NAME LIKE Colombian“; stmt.executeUpdate(updateString); String query = “SELECT COF_NAME, TOTAL FROM COFFEES “ + “WHERE COF_NAME LIKE Colombian“; ResultSet rs = stmt.executeQuery(query); while (rs.next() String s = rs.getString(1); int n = rs.getInt(2); System.out.println(n + “ pounds of “ + s + “ sold to date.“); 举例 lexample10_1.java PointBase关系式数据库 lPointBase是一个100%纯Java关系 式数据库管理系统 l完全支持JDBC 1.x l支持JDBC 2.0 API的一个子集 l支持JDBC 3.0 API的一个子集 PointBase JDBC 驱动程序 l提供对PointBase RDBMS的访问 l使Java程序可以直接通过JDBC调用 访问PointBase RDBMS 使用嵌入式PointBase 使用PointBase服务器 建立PointBase数据库 l启动PointBase l启动PointBase Console l创建一个新数据库example10_2 连接到PointBase l加载PointBase JDBC Driver String l_driver = “com.pointbase.jdbc.jdbcUniversalDriver“; Class.forName(l_driver); l连接到PointBase String l_URL = “jdbc:pointbase:/localhost:9092/example11_2“; String l_UID = “zhengli“; String

温馨提示

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

评论

0/150

提交评论