摘要 【扩展信息:CSDNBlog的个人主页功能】
free acrobat reader 本文分析了java database connectivity (jdbc),一个在 java 中以面向对象的方法来连接数据库的技术.它是对 odbc api 进行的一种面向对象的封装与重新设计,它易于学习与使用,并且它能够使您编写不依赖供应商的代码,用以查询与操纵数据库.jdbc 提供了一些相当低层的方法来存取数据库,同时也在相当高层提供了功能强大的对象来处理数据库.什么是数据库?
数据库是以某种文件结构存储的一系列信息表,这种文件结构使您能够访问这些表.选择表中的列.对表进行排序以及根据各种标准选择行.数据库通常有多个 索引与这些表中的许多列相关联,所以我们能尽可能快地访问这些表.在进行计算时,数据库比其它类型的结构更常用.您会发现在员工记录与薪资系统中数据库处于核心地位,在旅行计划系统中以及在产品生产与销售的整个过程中都可以发现数据库.
以员工记录为例,您可以设想一个含有员工姓名.地址.工资.扣税以及津贴等内容的表.让我们考虑一下这些内容可能如何组织在一起.您可以设想一个表包含员工姓名.地址与电话号码.您希望保存的其它信息可能包括工资.工资范围.上次加薪时间.下次加薪时间.员工业绩评定等内容.
这些内容是否应保存在一个表格中?几乎可以肯定不应该如此.不同类别的员工的工资范围可能没有区别;这样,您可以仅将员工类型储存在员工记录表中,而将工资范围储存在另一个表中,通过类型编号与这个表关联.考虑以下情况:
key lastname salarytype salarytype min max 1 adams 2 1 30000 45000 2 johnson 1 2 45000 60000 3 smyth 3 3 60000 75000 4 tully 1 5 wolff 2salarytype 列中的数据引用第二个表.我们可以想象出许多种这样的表,如用于存储居住城市与每个城市的税值.健康计划扣除金额等的表.每个表都有一个主键列(如上面两个表中最左边的列)与若干数据列.在数据库中建立表格既是一门艺术,也是一门科学.这些表的结构由它们的 范式指出.我们通常说表属于第一.第二或第三范式,简称为 1nf.2nf 或 3nf.
第一范式:表中的每个表元应该只有一个值(永远不可能是一个数组).(1nf)
第二范式:满足 1nf,并且每一个副键列完全依赖于主键列.这表示主键与该行中的剩余表元之间是 1 对 1 的关系.(2nf)
第三范式:满足 2nf,并且所有副键列是互相独立的.任何一个数据列中包含的值都不能从其他列的数据计算得到.(3nf)
现在,几乎所有的数据库都是基于“第三范式 (3nf)”创建的.这意味着通常都有相当多的表,每个表中的信息列都相对较少.
从数据库中获取数据
假设我们希望生成一个包含员工及其工资范围的表,在我们设计的一个练习中将使用这个表.这个表格不是直接存在在数据库中,但可以通过向数据库发出一个查询来构建它.我们希望得到如下所示的一个表: name min max adams $45,000.00 $60,000.00 johnson $30,000.00 $45,000.00 smyth $60,000.00 $75,000.00 tully $30,000.00 $45,000.00 wolff $45,000.00 $60,000.00或者,按照工资递增的顺序排序
name min max tully $30,000.00 $45,000.00 johnson $30,000.00 $45,000.00 wolff $45,000.00 $60,000.00 adams $45,000.00 $60,000.00 smyth $60,000.00 $75,000.00我们发现,获得这些表的查询形式如下所示
select distinctrow employees.name, salaryranges.min, salaryranges.max from employees inner join salaryranges on employees.salarykey = salaryranges.salarykey order by salaryranges.min; 这种语言称为结构化查询语言,即 sql(一般读作 "sequel"),而且它是几乎目前所有数据库都可以使用的一种语言.这几年已颁布了若于 sql 标准,而且大多数 pc 数据库支持大部分 ansi 标准.sql-92 标准被认为是一种基础标准,而且已更新多次.然而,没有一种数据库可以完美地支持后来的 sql 版本,而且大多数数据库都提供了多种 sql 扩展,以支持他们数据库独有的性能.数据库的种类
由于 pc 已成为主要的办公工具,因此,已开发出在 pc 上的大量流行的数据库,这些数据库都是可以自管理的.它们包括初级数据库,如 microsoft works,还包括更为复杂的数据库,如 approach. dbase.borland paradox.microsoft access 与 foxbase.另一类 pc 数据库包括那些可由许多 pc 客户机通过服务器访问的数据库.其中包括 ibm db/2.microsoft sql server. oracle.sybase.sqlbase 与 xdb.所有这些数据库产品都支持多种相对类似的 sql 方言,因此,所有数据库最初看起来好象可以互换.当然,它们 不能互换的原因是每种数据库都有不同的性能特征,而且每一种都有不同的用户界面与编程接口.您可能会想,既然它们都支持 sql,对它们进行的编程也应该相似,但这是绝对错误的,因为每种数据库都使用其自己方式接收 sql 查询,并使用其自己的方式返回结果.这就自然引出了一种新一代的标准:odbc
odbc
如果我们能够以某种方式编写不依赖于特定厂商的数据库的代码,并且能够不改变自己的调用程序即可从这些数据库中得到相同的结果,那将是一件很好的事.... 下一页